curl:プロキシを介したデータ転送
curlは、HTTPプロキシとSOCKSの両方を完全にサポートしています。
テストのために、フリーリスト( socks-sockslist.netおよびHTTPプロキシ-proxyhttp.net )からプロキシサーバーを使用できます。 IPアドレスの確認は、 check-host.netリソースを使用して行われます
# HTTP proxy curl --proxy 11.22.33.44:5555 check-host.net/ip # , HTTP proxy curl --proxy 11.22.33.44:5555 -U username:password check-host.net/ip # socks4 curl --socks4 11.22.33.44:5555 check-host.net/ip # socks5 curl --socks5 11.22.33.44:5555 check-host.net/ip # , SOCKS # ( "DNS proxy") curl --socks5-hostname 11.22.33.44:5555 check-host.net/ip
一部のcurlパラメーターは〜/ .curlrcファイルに書き込むことができます 。
socks5 = 11.22.33.44:5555 proxy-user = username:password user-agent = "Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"
時間とカールを使用して、サーバーの応答時間も測定できます。
# proxy: time curl check-host.net/ip # proxy: time curl --socks5 11.22.33.44:5555 check-host.net/ip # : time curl habrahabr.ru
結果は次のようになります。
real 0m0.307s user 0m0.000s sys 0m0.004s
wget:プロキシ経由でファイルをアップロードします
wgetには組み込みのプロキシサポートがあります。 唯一の欠点は、HTTPプロキシのみがサポートされることです。 SOCKSと組み合わせて使用する場合は、 danteソックスを使用することをお勧めします。
# proxy: http_proxy="http://33.22.44.44:8080" wget http://www.google.com/favicon.ico , HTTPS https_proxy="http://33.22.44.44:8080" wget https://www.google.com/favicon.ico # proxy http_proxy="http://33.22.44.44:8080" wget --proxy-user=user --proxy-password=password http://www.google.com/favicon.ico
常に--proxy-userと--proxy-passwordを指定しないようにするには、それらを〜/ .wgetrcファイルに登録できます :
proxy-user = username proxy-password = password user-agent = Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
ssh:サーバーアクセス
sshおよびプロキシ経由でサーバーにアクセスするには、 dante sockifierを使用することをお勧めします。
ソキシファイアーダンテ
インストール:
apt-get install dante-client # Debian-based
使用法:
# ssh SOCKS_PASSWORD="" SOCKS_SERVER="11.22.33.44:1080" socksify ssh myserver # , SOCKS_USERNAME="user" SOCKS_PASSWORD="password" SOCKS_SERVER="11.22.33.44:1080" socksify ssh myserver # IRC - irssi SOCKS_PASSWORD="" SOCKS_SERVER="11.22.33.44:1080" socksify irssi # , HTTP proxy CONNECT HTTP_CONNECT_PROXY="http://11.22.33.44:8080" socksify irssi
socksifyを使用すると、コンソールアプリケーションだけでなく、ほぼすべてのアプリケーションをプロキシ経由でルーティングできます。
常にプロキシデータを入力しないようにするには、ファイル/etc/socks.confを作成できます
SOCKSの例:
route { from: 0.0.0.0/0 to: 0.0.0.0/0 via: 11.22.33.44 port = 55555 protocol: tcp udp proxyprotocol: socks_v4 socks_v5 method: none }
許可付きのHTTPプロキシの例:
route { from: 0.0.0.0/0 to: 0.0.0.0/0 via: 11.22.33.44 port = 8080 command: connect proxyprotocol: http method: username }
また、SOCKSまたはHTTPプロキシに認証が必要な場合は、変数SOCKS_USERNAMEおよびSOCKS_PASSWORDをエクスポートします。
export SOCKS_USERNAME="username" export SOCKS_PASSWORD="password"
プロキシを介したDNSクエリ
多くの場合、プロキシを介した名前変換も必要です。 danteを使用する場合、名前解決要求はプロキシと/etc/resolv.confで指定されたネームサーバーの両方を介して送信されます。 1つではなく2つの同一のリクエストがある理由を理解することはできませんでした。 したがって、次の2つのオプションを提供できます。
1) /etc/resolv.confファイル内のネームサーバーをコメントアウトし 、名前の変換がプロキシ経由でのみ行えるようにします。 これはシステム全体に影響します。
2) /etc/resolv.confを変更し、必要な国のネームサーバー、または単にプロバイダーのサーバーとは異なるネームサーバーを設定します。 たとえば、Googleサーバーをインストールします。
nameserver 8.8.8.8 nameserver 8.8.4.4
プロバイダーのネームサーバーによってデータが上書きされるのを防ぐため(再接続時)、ネームサーバーのリストがネットワークマネージャー(NetworkManager / wicd)またはDHCPクライアントによって更新されるのを防ぐことができます(調整についてはergilに感謝します)。
または、「大まかな」方法を使用します-/ etc/resolv.confファイルへの変更を禁止します。
sudo chattr +i /etc/resolv.conf
追加がある場合は、書いてください。見つけて適用すると便利です。
追加情報:
man socks.conf
男靴下
男のカール