アプリケーション開発ポータルサイト
ServerNote.NET
カテゴリー【DebianFreeBSD
【Linux】socatコマンドで簡易プロキシサーバ/ポート転送
POSTED BY
2023-10-12

自分のサーバーの任意のポートへの接続を待ち受けて、そのまま別サーバーの別ポートへ転送する=ポートフォワード=にはstoneというソフトが定番?であったがもう古いもので、最新のOpenSSLライブラリではコンパイルできなくなってしまった(当方環境では)ので困っていたが現在ではsocatというコマンドで代用するらしいのでメモ。

インストール

apt install socat

実行例

ローカルの8443ポートをexample1155.jpの443ポート(https)に転送する

socat TCP4-LISTEN:8443,fork TCP4:example1155.jp:443

バックグランドで実行するには&をつける

socat TCP4-LISTEN:8443,fork TCP4:example1155.jp:443 &

このローカルマシンのIPが192.168.1.55であるとすると、ブラウザで

https://192.168.1.55:8443/

と叩くアクセスは、証明書エラーを無視すれば、https://example1155.jp/にアクセスした内容が返る。

AWSのようなクラウドサービスで仮想マシンから外へ出ていく場合デフォルトゲートのIPから出ていくが、何らかの事情によりこのIPが外からNG扱いされた場合、緊急でグローバルIPを持つマシンを立ててそこでsocatを上記のようにポートフォワード用途で立てて、仮想マシンはそれを使って外のデータを取るようにする応急措置に使ったりする。

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

【キーワード検索】