2つのインターフェイスに2つのパブリックIPアドレスを持つコンピュータがあります。このマシンは実行中ですsshd
。 SOCKSインターフェイス(たとえば)を使用してトンネルを作成するときに発信-D
接続に使用するインターフェイスを指定する方法はありますか?
ベストアンサー1
厳密に言えば、sshの-bオプション(mgjk提案)とルーティングを組み合わせて問題を解決できます。サイト8.8.8.7(単に設定した例)のトンネルを構築しようとしており、接続がeth1を通過したいとし、次のコマンドを実行します。
sudo route add -host 8.8.8.7 dev eth1
正しいパスが追加され、すべてがうまくいくでしょう。
ただし、これは「ポリシールーティング」の適用の完全な例でもあります。トンネルが設定されたマシンでルーティングテーブルを設定する必要があります(つまり命令がある場所SSH -D ...発行) ただ2つのインターフェースが存在する唯一のインターフェースだからです。
David Schwartzは簡潔で十分な説明を提供します。このウェブサイトから。唯一の重要な詳細は次のとおりです。 eth0が192.168.1.2で、eth1が10.0.0.2であると仮定すると、次のように言えます。
ip rule add from 10.0.0.2 table <NAME1>
ip rule add from 192.168.1.2 table <NAME2>
この時点で -b を介して ssh 接続を eth1 アドレスにバインドすると、操作は完了します。