はじめに
IP制限が掛かっているAPIやサイトに特定サーバからだとアクセスできるけど
localのマシンからだとIP制限でアクセスできない、ってことありますよね。
先日、その悩みを解消したので備忘録として残します。
解決方法1 VPN(今回は使いません)
エンジニアが使いそうなVPNだと以下があります。
基本従量課金なんで今回は使わなかったです。
解決方法2 sshポートフォワーディング
本記事ではsshポートフォワーディングについての説明はせずに粛々とhow toだけ書いていきます。
例として、ssh接続先のvps.jp経由で、APIのエンドポイント(https://httpbin.org/ip)にアクセスできるようにしていきます。
※ https://httpbin.org/ipはIPが確認できるサイトです。
vps.jpのssh接続設定
host vps
user hoge
hostname vps.jp
Identityfile /hoge/.ssh/hoge
port 22
ssh vps
で接続できることを確認した上で下記を追記します。
host tunnel-vps
user hoge
hostname vps.jp
Identityfile /hoge/.ssh/hoge
LocalForward 8000 httpbin.org:443
port 22
追記が終わったら、ssh tunnel-vps
でsshができることを確認して下さい。
ssh接続をしたままの状態で
localhost:8000へアクセスするとア〜ラ不思議☆
httpbin.orgにはアクセスできません
なんで?
僕はずっと
サーバ側(ssh)がDNS解決出来てないんだなってサーバ側の/etc/hosts
を書き換えるってアホなことやってたんですが、永井大先生(身内ネタすいません)がご教授くれたんでなぜ駄目だったかと解決方法を書きます。
まず、なぜ駄目だったかの理由から
至極かんたんな理由でしてhttpbin.orgのサーバへlocalhostというドメインでアクセスしていた為、サーバ側のvirtual hostがどこへ振り分けていいかわからないという状況となっていました。
解決方法
localマシン(MAC)の/etc/hostsに下記を追記します。
127.0.0.1 httpbin.org
超初歩的。
この状態でhttps://httpbin.org:8000/ipへアクセスするとア〜ラ不思議☆
ssh接続先のglobal IPがちゃんと返ってきます!
スバラ!!!