4
2

More than 1 year has passed since last update.

sshでお手軽SOCKS Proxy[ダイナミックポートフォワーディング]

Posted at

はじめに

proxyを使う場合はたくさんあると思います。

  • IPバレしたくない
  • 特定ネットワーク内からのアクセスとして振る舞いたい
  • 地域やアクセス回数による制限の回避

上記の場合、候補に上がるのはHTTP ProxyかSOCKS Proxyです。

HTTP Proxy

その名の通りHTTP通信に用いることができるProxyです。
OSI参照モデルの第七層アプリケーション層で動作しています。

SOCKS Proxy

SOCKS ProxyはHTTP通信だけではなく、FTPやSSHにも対応しています。
HTTP Proxyよりも汎用的だといえます。
OSI参照モデルでは第五層セッション層で動作しています。

構築手段

HTTP Proxyを時前で用意する場合、Squidなどを使っての構築が必要ですが、
Socks ProxyではSSHの設定が済んでいれば、追加での作業は不要です。
Danteを使ったSOCKS Proxyの構築方法もあります。

ダイナミックポートフォワーディング

クライアントの指定したportから出る通信がSOCKSサーバーから出たものとしてアクセス先に到達します。
SOCKSサーバーのどのポートから出るのかは動的に決まるため、ダイナミックポートフォワーディングと呼称します。

使用方法

いつものsshコマンドに -f -N -D ローカルのポート番号を追加して実行します。

$ ssh -f -N -D 55557 ユーザー名@サーバーのIPアドレス[ドメイン]
  • -f: バックグラウンドで実行します
  • -N: サーバーでコマンドを実行しません
  • -D: クライアント[ローカルPC]のポート番号を指定します

ポートフォワーディングできているか確かめます

$ curl ifconfig.me -x "socks5h://localhost:55557"

サーバーのIPが出力されれば成功です。

おまけ

下記の記事でターミナルからGoogle Chromeを起動する方法を紹介しています。

起動オプションに--proxy-server="socks5://localhost:55557"と指定することで
Google Chromeの通信をすべてポートフォワーディングできます。

$ google-chrome --proxy-server="socks5://localhost:55557"
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2