简单地说:膝上型电脑运行ssh并连接到vpn。我该怎么做?
我通过google搜索获得外部ip,我的路由器在笔记本上转发端口22,当openvpn不运行时,我可以成功地连接。在我看来,当我在ssh应用程序上输入外部ip时,它将尝试vpn服务器上的ssh连接,而不是回到我的机器上。
我需要一些澄清,请不要苛刻。
以下是打开the启动后的路由表。
default via 10.247.202.221 dev tun0 proto static metric 50
default via 192.168.1.1 dev wlp2s0 proto static metric 600
10.247.200.1 via 10.247.202.221 dev tun0 proto static metric 50
10.247.202.221 dev tun0 proto kernel scope link src 10.247.202.222 metric 50
154.16.48.155 via 192.168.1.1 dev wlp2s0 proto static metric 600
169.254.0.0/16 dev wlp2s0 scope link metric 1000
192.168.1.0/24 dev wlp2s0 proto kernel scope link src 192.168.1.14 metric 600
192.168.1.1 dev wlp2s0 proto static scope link metric 600
default via 192.168.1.1 dev wlp2s0
192.168.1.0/24 dev wlp2s0 scope link 发布于 2018-09-15 18:47:26
如果您的OpenVPN不使用端口22,那么问题很可能是OpenVPN更改了默认路由。
你可以通过VPN找到笔记本电脑。
如果您想在VPN设置默认路由时通过其正常地址访问膝上型计算机,这是有点棘手的,但使用基于策略的路由是可能的。如果您想这样做,请留下评论,我可以描述如何做到这一点。
基于
通常,您有一个路由表,用于所有传出数据包的查询。使用基于策略的路由,您可以使用用于不同类型数据包的不同表。
在您的示例中,VPN将创建到VPN的默认路由,您希望在大多数连接中使用该路由。问题不在于到达计算机的数据包,而是返回到VPN的数据包,而不是发送给发起人的数据包。
您首先需要一个规则来匹配来自本地接口的数据包。
ip rule add from 192.168.1.0/24 table 200200有些任意性,请参阅/etc/iproute2/rt_tables,不要使用任何预定义值253-255。还可以向该文件中添加数字和名称,然后按名称引用表。这将导致192.168.1.0/24中具有源地址的所有数据包使用table 200而不是默认路由表。现在我们必须在这个表中添加规则。我将假设您的普通表只包含本地网络和路由器网关的条目。
ip route add 192.168.1.0/24 dev wlp2s0 table 200
ip route add default via 192.168.1.1 table 200必须将路由添加到192.168.1.0/24,尽管它已经存在于默认路由表中。
现在,所有传入数据包到您的地址192.168.1.14的响应应该通过wlp2s0发送到您的路由器,而对所有传入数据包的响应应该返回到VPN地址。
如果不起作用,请使用tcpdump -i any port 22查看接收和发送哪些数据包。如果需要端口22连接到外部服务器进行测试,那么将路由器中的不同端口转发到膝上型计算机,并使用该端口进行测试。对于这个测试,您的笔记本上的端口是否打开甚至都无关紧要。如果看到响应,请运行tcpdump -i wlp2s0 port 22,然后重试。如果你不知道如何解释结果,就把它们附加到你的问题上。
https://serverfault.com/questions/931077
复制相似问题