我有两个网络接口:
$ ip route
default via 192.168.43.1 dev wlp0s20f3 proto dhcp metric 600
default via 192.168.55.1 dev wlx00e020306060 proto dhcp metric 601
169.254.0.0/16 dev wlp0s20f3 scope link metric 1000
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.18.0.0/16 dev br-7c842c08107b proto kernel scope link src 172.18.0.1 linkdown
192.168.43.0/24 dev wlp0s20f3 proto kernel scope link src 192.168.43.143 metric 600
对于所有任务,我想使用 192.168.43.1 作为网关。但是,对于该deluge
程序,我想使用 192.168.55.1。
我怎样才能做到这一点?
答案1
试试这个(#
意味着升级权限):
# ip route add default via 192.168.55.1 dev wlx00e020306060 table deluge
# ip rule add fwmark 1 table deluge
# iptables -t mangle -A OUTPUT -p tcp --dport 8112 -j MARK --set-mark 1
# ip route flush cache
这将创建一个名为 的新路由表deluge
,设置一条规则以使用该表来标记值为 的数据包1
,并使用 iptables 来标记发送到 deluge 端口 (8112) 的数据包的值为1
。
要删除规则:
# ip route delete default via 192.168.55.1 dev wlx00e020306060 table deluge
# ip rule del fwmark 1 table deluge
# iptables -t mangle -D OUTPUT -p tcp --dport 8112 -j MARK --set-mark 1
# ip route flush cache