想定読者
- 自宅のIPアドレスが頻繁に変わってAPIリクエストの制限に引っかかり、都度IP許可していてめんどくさいという方
- sshサーバー・socksproxy経由でリモートサーバーにアクセスしようとしたが、グローバルIPアドレス が変わらずアクセスできないよという方
ConoHa VPSでIPアドレスを固定し、ssh接続・socks proxy経由でリモートサーバー(APIサーバー)にアクセスする手順
1. ConoHa VPSを契約、固定のIPアドレスを取得
2. .ssh/configにConoHa VPSの情報を追加
configファイルがなければ作る
.ssh/config
Host conoha
HostName XXX.XXX.XXX.XXX // ConoHa VPSのIPアドレス
Port 22
User root
IdentityFile ~/.ssh/some.pem
3. .ssh/にConoHaVPS契約時に取得した秘密鍵ファイル(some.pem)を置く
ssh接続時にエラーが発生することがあるため、秘密鍵ファイルのパーミッションが適切に設定されていることを確認する。
不適切な場合は次を実行。
chmod 400 ~/.ssh/some.pem
4. ssh接続
ssh -D 10080 conoha
を実行
5. socks proxy経由でアクセスする
システム設定 > Wi-Fi > 接続中のWi-Fiの詳細 > プロキシ > SOCKSプロキシをONしてポートを10080に設定 > OK
これでIPアドレスを確認すると、ConoHaVPSのIPアドレスに変わるはずだった。
けど変わらなかった。
グローバルIPアドレスが変わらなかった原因
- 起きていたこと
ChromeでIPアドレスを確認すると、ConoHaVPSのIPアドレスではなく自宅のIPアドレスのままだった。しかし、safariでアクセスするとConoHaVPSのIPアドレスになっていた。 - 何が原因だったか
おそらく、Chromeブラウザがsocksプロキシを使用してアクセスしない設定になっていたこと。
Chromeのプロファイルを作り直すことで解決した。
解決まで導いてくださった大先輩に感謝🙏🙏🙏
試したけどダメだったことも一応載せておく
- socks proxyの設定をコマンドから
sudo networksetup -setsocksfirewallproxy Wi-fi localhost 10080
sudo networksetup -setsocksfirewallproxystate Wi-fi on
- chromeのキャッシュ削除
chrome://net-internals/#dnsにアクセスして、- DNSのClear host Cacheを押す
- ProxyのClear Bad proxiesを押す
なぜsshサーバーを踏み台・socks proxy経由で接続する必要があるのか
sshはリモートコンピューターに安全に接続するため。ネットワーク上でデータを暗号化することにより、セキュリティを確保しながらリモートマシンへのログインやファイル転送を可能にする。
SOCKSプロキシ経由で接続すると次のメリットがある。
- セキュリティ強化: SOCKSプロキシを使用すると、クライアントとサーバー間の通信がプロキシサーバーを経由するため、直接的な接続が行われず他者から攻撃されにくくなる。
- ファイアウォールやNATの回避: 企業や学校などのネットワークでは、ファイアウォールやNATによってインターネットへのアクセスが制限されている場合がある。これらの制約を回避して接続することができる。
- 匿名性の向上: SOCKSプロキシを介して通信することで、実際のIPアドレスを隠し、匿名性を高めることが可能。
参考にさせていただいた記事🙏
https://qiita.com/YumaInaura/items/7e4c9335e0f07b64319d
https://qiita.com/YumaInaura/items/7e1fcf9c23e7ba15e25b