次のホストを想定します。
remoteserverへのSudo
アクセス権がないため、rootユーザーで変更を加えることができません。
質問は:private.remoteserverのポートにremoteserverからアクセスできますか?単一のコマンドで?
私は幸運のないSSHトンネルで少し遊んだことがあります。 private.remoteserverへのSSHエイリアスを この記事で説明 として作成します。
たとえば、localhostから実行したいとします。
curl http://private.remoteserver:8080/
private.remoteserverのポート8080に接続します。これは可能ですか?
これまでに試したことは示していませんが、これでうまくいくはずです。
ssh -L 8080:private.remoteserver:8080 remoteserver
これで実行できます:
curl http://localhost:8080/
...これは、先ほど設定したポート転送により、実際に8080
のポートprivate.remoteserver
に接続します。
クライアントからhttp://private.remoteserver:8080/
に直接アクセスできるようにするには、(a)ある種のプロキシを設定し、(b)curl(または他のソフトウェア)を設定してプロキシを使用する必要があります。 SOCKS5
オプションを使用して、ssh
で-D
プロキシを設定できます。
ssh -D 1080 remoteserver
そして次のことができます:
curl --socks5-hostname http://private.remoteserver:8080/
ほとんどのWebブラウザー(Firefox、Chrome)は、SOCKS5
プロキシーで動作するように構成することもできます。 「ssh dynamic forwarding」を検索すると、 buntuからのこの記事 を含む多くの優れたドキュメントが見つかります。
実際、私は sshuttle で私の問題を解決しました:
sshuttle --dns -HN -r user@remoteserver
他のプロキシ構成は必要ありません。プライベートIPの任意のポートにアクセスできます。
curl http://private:8080/