質問: Linux で、TCP 接続に (というか IP パケットに) 何も手を加えずただ指定のアドレスに中継・橋渡しするだけのプロキシを作る方法について、楽な方法は何があるでしょうか? iptables で DNAT と MASQUERADE を組み合わせればできるかなと思い、試しに iptables -t nat -A PREROUTING -p tcp -d (自分のIP) -j DNAT --to (転送したい宛先アドレス) iptables -t nat -A POSTROUTING -p tcp -d (転送したい宛先アドレス) -j MASQUERADE としてみましたが、期待通りに働きませんでした。(クライアントから接続をかけようとするとタイムアウトする) iptables の使い方が間違っているでしょうか? それとも iptables では不可能で、簡単なデーモンを用意しないと無理でしょうか? その場合、そのような汎用中継デーモンは既に何か存在するでしょうか? お知恵を貸していただけると助かります。
回答: sshのポートフォワーディングを使えばプロトコルに関係なく、プロキシーできます。 ``` 接続元のPC -- 中継Linux -- 目的サーバー ``` という状態の場合、ポートがTCPの1234番だった場合 接続元PCから、 ``` ssh -N -g -L 1234:目的サーバーのIP:1234 ユーザ名@中継Linux ``` と実行すると、接続元PCの1234に接続すると、中継Linuxを介して、目的サーバーの1234番に接続できます。 中継Linuxから、 ``` ssh -N -g -L 1234:localhost:1234 ユーザ名@目的サーバー ``` と実行すると、中継Linuxの1234に接続すると、目的サーバーの1234番に接続できます。 これを使えば、外出先から、自宅のLinuxを介して自宅LAN内のWindowsにVNCで接続もできます。 アイデア次第でいろいろ遊べると思います。