iptables -A PREROUTING -i usb0 -t mangle -p tcp --dport 8080 -j MARK --set-mark 1
iptables-L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
// 1 とマークされたトラフィックを myusb0 テーブルにルーティングします。
ip rule add fwmark 1 table myusb0
IP ルート ls
192.168.0.0/24 dev usb1 proto kernel scope link src 192.168.0.136 metric 1
192.168.3.0/24 dev usb0 proto kernel scope link src 192.168.3.182 metric 1
IPルールls
0: from all lookup local
32762: from all fwmark 0x1 lookup myusb0
32763: from 192.168.3.0/24 lookup myusb0
32764: from 192.168.0.1/24 lookup myusb1
32766: from all lookup main
32767: from all lookup default
IPルーティングlsテーブルmyusb0
default via 192.168.3.2 dev usb0
IPルーティングlsテーブルmyusb1
default via 192.168.0.1 dev usb1
//ポート8080のソックスを開く
ssh -f -N -D 0.0.0.0:8080 [email protected]
//有効であることを確認
カール --socks5 192.168.3.182:8080 ip.appspot.com
channel 1: open failed: administratively prohibited: open failed
curl: (7) Failed to receive SOCKS5 connect request ack.
2つの異なるISPに2つのインターネット接続があり、各接続でプロキシ/ socks5を開きたいです。接続を管理できるように、各インターフェイスをポート番号に関連付けることが合理的だと思います。
各デバイス(および)に対して2つのルーティングテーブル(および)を作成し、myusb0
ポート番号に基づいてトラフィックを表示し(たとえば、1とマークされたポートで)、そのマークのトラフィックを特定のテーブル()にルーティングしました。 。その後、そのIPでソックス5を開いてローカルで試しましたが、何らかの理由で機能しませんでした。myusb1
usb1
usb0
8080
myusb0
ローカルで動作すると、ソックスを反対方向に開いてソックスを使用する必要があるリモートサーバーに提供できると考えました。
現在機能していない理由と解決策をご存知ですか?何らかの理由で、sock接続がポート8080
タグの規則に従い、myusb0テーブルを試すのではなく、デフォルトテーブルに設定されていないデフォルトゲートウェイを試していると思います。私はUbuntu(最新バージョン)を使用しています。
どちらのISPも動的IPを提供することに注意する必要があります。
編集する
予想通り、ポート8080へのトラフィックがルーティングされていないようです(心配するソックスなし)。しかし、理由がわからない。
curl portquiz.net:8080
curl: (7) Couldn't connect to server