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上打开socks
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.
我有来自两个不同 ISP 的两个 Internet 连接,我想在每个连接上打开一个 proxy/socks5。我认为将每个接口与端口号相关联是有意义的,以便我们可以管理连接。
我为每个设备(和)创建了两个路由表(myusb0
和),然后根据端口号标记流量(例如,在端口上我将其标记为 1),并将该标记上的流量路由到特定表()。然后我尝试在该IP上打开socks5并在本地尝试,但由于某些原因它不起作用。myusb1
usb1
usb0
8080
myusb0
一旦我让它在本地工作,我想我应该以相反的方式打开袜子,以便我可以将其提供给需要使用它的远程服务器。
知道为什么它目前不起作用以及我应该如何修复它吗?由于某些原因,我认为袜子连接正在尝试主表中未设置的默认网关,而是遵循端口8080
标记规则并尝试 myusb0 表。我正在使用 Ubuntu(最新版本)。
应该提到的是,两个 ISP 都提供动态 IP
编辑
正如我怀疑的那样,到端口 8080 的流量似乎没有被路由(不用担心袜子问题),但我不知道为什么
curl portquiz.net:8080
curl: (7) Couldn't connect to server