通过SSH隧道的OpenVPN

胡连科

我正在尝试使用OpenVPN连接到我的家庭网络。我的路由器在ISP的路由器后面,所以我遇到双重NAT问题(我的路由器的WAN端口上的IP地址是10.x.x.x)。ISP无法直接为我提供公共IP地址,因为它们没有这种选择,因此无法进行传入连接。

我的网络配置

我想从Internet访问我的家庭网络中的计算机。

我想做的是从运行OpenVPN服务器的家庭服务器到具有公共IP的VPS创建ssh隧道,例如

autossh -M 10984 -i /root/.ssh/pubkey -R 1194:localhost:1194 me@myvps

然后配置OpenVPN服务器/客户端使用tcpudp,并连接到myvps:1194

所以我的问题是:

  1. 有一个更好的方法吗?
  2. 这种解决方案对安全性/性能有何影响?
用户名

这种解决方案对安全性/性能有何影响?

您有两层加密(SSH和OpenVPN),这可能会降低性能-更高的CPU使用率和更低的吞吐量,尤其是如果所涉及的三台设备之一没有硬件加密加速功能时。(即使那样,SSH软件也很少能提供最佳性能。)

你也有3个嵌套的TCP流量控制(你的正常交通,OpenVPN的层里面,SSH层内)的层。这可能无法正常工作。

最后,仅通过隧道开销(SSH和OpenVPN数据包报头会吞噬可用的基线1500字节MTU)就会降低吞吐量。当然,VPN不可避免地会出现一层,但将其增加一倍可能会很明显。

direct: IPv4 <20> |                                                    | TCP <20> | application
vpn:    IPv4 <20> | UDP <8>                 | OpenVPN <41> | IPv4 <20> | TCP <20> | application
yours:  IPv4 <20> | TCP <20> | SSH <~20–40> | OpenVPN <41> | IPv4 <20> | TCP <20> | application

有一个更好的方法吗?

当您已经拥有VPS时,请将OpenVPN服务器放在此处–并使您的家庭系统“输出”到VPS,而不是反向连接。(是的,OpenVPN服务器将在您的“家庭”和“漫游”客户端之间转发数据,而不会出现问题。)

这样,您只要在客户端中启用定期ping或以其他方式保持隧道上的频繁通信,就可以使用UDP而不会出现与NAT相关的任何问题。

如果您使用的是tun -mode VPN,则服务器只需要通过即可为您的LAN子网提供内核路由tun0,然后通过家庭VPN客户端的地址为同一子网提供OpenVPN iroute(使用tap- mode VPN,它只是将两者结合在一起的单个内核路由。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章