我希望我正确地表述这个问题。我有一个用于测试的SSH服务器,上面运行2个Internet连接。LAN连接始终处于打开状态,但USB连接间歇性处于打开状态。是否可以限制隧道,使其仅使用USB连接的IP地址浏览互联网?
这是我目前正在使用的:
ssh -v -D 3456 [email protected];
很好,但是并不能告诉我服务器的辅助USB连接是否发生了变化。据我所知,USB连接的IP(出于参数目的199.90.09.78),我希望可以将隧道限制为仅使用USB,如果USB断开,则断开连接。我一直在玩以下游戏:
ssh -v -D *:3456 -R *:3456:199.90.09.78:80 [email protected];
但是我认为我使用-R错误。有没有更好的方法来实现这一目标?
我不知道可以实现此目的的ssh选项,这似乎是一个路由问题。您希望作为策略通过USB连接路由SSH守护程序的所有通信。通过策略路由,您可以通过USB连接在不同的路径上路由数据包。您将需要ip
设置策略并为该策略iptables
标记数据包。
一个(未试用的)示例,该示例通过网关通过接口路由所有流量10.1.2.3
:
iptables -t mangle -A OUTPUT -m owner --uid-owner yourusername -j MARK --set-mark 2
ip rule add fwmark 2 table 3
ip route add default via 10.1.2.3 table 3
ip route flush cache
来自用户的所有数据包yourusername
都将标记为ID 2
。然后,一条规则指出此标记2
必须遵循3
将数据包带到gateway的路由表10.1.2.3
。最后,清除路由缓存,以便拾取新路由(如果之前已计算过该路由)。
这假定SSH用户yourusername
仅用于SOCKS隧道,并且您通过USB连接连接到它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句