简介:嗨,我一直在尝试让 VPN 和 ssh 命令协同工作。我已经成功到可以使用ssh user@hostname
. 但是当 VPN 处于活动状态时,我所有的互联网都会通过该 VPN。
目标:除了 SSH 连接之外,我想使用我自己的互联网连接。
选项中断 SSH > VPN: 我注意到“编辑 VPN” - “IPv4 设置”选项卡 - “路由...”按钮中有一个选项“仅将此连接用于其网络上的资源”。这似乎是解决方案,但如果我启用它,我将无法再使用“ssh user@hostname”命令进行连接,它会挂起直到超时。
想法:到目前为止,我的想法是它不起作用,因为主机名(来自 ssh username@hostname)和网关(来自 VPN 设置)不同。但是我对 ssh 或 VPN 的了解还不够多。
想法?ssh 中是否有我忽略的选项?我试过了,ssh -b gatewayFromVPN username@hostname
但这似乎不起作用(我怀疑它应该)。或者 VPN 设置中是否有选项或可以解决此问题的选项?
提前致谢。
概括
“仅将此连接用于其网络上的资源”中断 SSH > VPN
我过去也想做类似的事情。我有两个想法:根据端口拆分事物和根据进程所有者拆分事物。事实证明,Linux 的网络系统可以处理这两种情况。
我在 Unix.SE 上问了两个问题。我还没有特别好地跟进其中任何一个,所以如果你确实玩过,请告诉我什么对你有用。
我敢说这两种技术之间有一些重叠,这就是我在这里提到它们的原因。我还为第二个提供了一些可靠的例子。我认为在用户之间拆分网络连接可能对我们双方来说都是最有用的场景。
编辑:我刚刚谷歌了一下iptables owner
,发现了这个。这似乎表明一些脏的 iptables 行可以解决这个问题。我仍在测试,但看起来非常简单......
假设您有eth0
连接eth1
,并且您希望用户bob
使用eth1
且仅使用eth1
,并强制执行其他所有操作eth0
。这应该可以做到...
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -o eth0 -m owner --uid-owner bob -j DROP
iptables -A OUTPUT -o eth1 -m owner --uid-owner bob -j ACCEPT
iptables -A OUTPUT -o eth1 -j DROP
iptables -A OUTPUT -o eth0 -j ALLOW
Run Code Online (Sandbox Code Playgroud)
我假设您可以将 our 替换eth1
为您的 VPN 连接名称,并bob
替换为您将创建的新用户,以通过 via: 运行您的 ssh 连接su -c ssh username@host bob
。
目前,我已经通过在 Windows 7 中虚拟运行 Ubuntu 实现了我想要的目标。(当前在 Ubuntu 12.04 上运行 VMware Player)这样我在 Ubuntu 上的整个互联网都通过 VPN,但我可以在没有 VPN 的 Windows 7 中使用浏览器等。
虽然这不是我的目标,但现在必须这样做。
也许我可以在 Ubuntu 中虚拟地运行 Ubuntu 或者其他东西,这样我将来就不需要 Windows 了......
归档时间: |
|
查看次数: |
2063 次 |
最近记录: |