我正在尝试使用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服务器/客户端使用tcp
过udp
,并连接到myvps:1194
所以我的问题是:
这种解决方案对安全性/性能有何影响?
您有两层加密(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] 删除。
我来说两句