NAT の裏側のサーバーたちへ ssh したい
NAT なネットワーク構成になっている仮想マシンたちに外から ssh したい。 でも、ホスト上で各仮想マシンごとに port redirect の設定をするのは面倒くさい。
ということで、ホスト上に SOCKS proxy 置いてみた。
Twisted が SOCKS proxy plugin を持っているので:
$ twistd --nodaemon socks --interface=0.0.0.0
のようにして proxy を立ち上げる。
後は client PC 上で ssh -o 'ProxyCommand socat - SOCKS4A:vm-host:%h:%p' vm
といったように接続する。
SOCKS proxy は色々出来過ぎちゃって危なっかしいので、 ホストも LAN の中に置いてあるような場合しか使えないけど。