やりたいこと
- IP制限のかかったサイトに接続するProxyをMac上で立てる
- IP制限がかかっているサイトにアクセスすることが目的
イメージとしては下の図のような感じ
ただ、今回の場合は踏み台サーバーを経由して多段SSHでの接続を行うため、実際はこんな感じのをやりたい。
手順
単純な自端末 -> GCEへのProxy
1つだけサーバーを経由する場合はシンプルに通常のSSHにオプション加えるだけ。
ssh -i 秘密鍵 ユーザー名@サーバーIP -N -D 10080
このコマンドでバックグラウンドでProxyが立ち上がる。
以下のコマンドでProxy経由と通常の通信の検証が行える
# 通常の通信
curl https://api.ip2geo.pl/json/
# Proxy経由の通信
curl --proxy socks5://localhost:10080 https://api.ip2geo.pl/json/
それぞれ繋ぎ先にもよるがロケーションなどが変わった結果が返ってくることでProxyが正常に立ち上がっていることが確認できる。
ブラウザなどを経由してアクセスする場合はNetworkの設定にProxyを挟む必要がある。
ネットワークのAdvanceの設定からProxiesを選択し、 SOCKS Proxy
にチェックをつけてSSHのオプションで指定したポートを経由するようにする。
これでSSHで接続するサーバー経由で全ての通信が行われるようになる。
多段SSH 自端末 -> GCE -> EC2へのProxy
踏み台サーバーが増えても基本的にやることは同じ。
多段SSHの接続方法を知っていたら同様にオプションを最後に付与してあげるだけ。
ssh -i [EC2の秘密鍵] -o ProxyCommand='ssh -i [GCEの秘密鍵] GCEユーザー@GCEのIPアドレス -W %h:%p' EC2のユーザー@EC2のIPアドレス -N -D 10080