在ssh隧道上打开VPN


0

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

我的网络配置

我想通过互联网访问家庭网络上的计算机。

我认为要做的是从我的家庭服务器创建ssh隧道,运行OpenVPN服务器到我的VPS,它有公共IP,类似于

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

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

所以我的问题是:

  1. 有一个更好的方法吗?
  2. 这种解决方案的安全/性能影响是什么?

Answers:


0

这种解决方案的安全/性能影响是什么?

您有两层加密(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服务器将在您的“主页”和“漫游”客户端之间转发数据而没有任何问题。)

这样,您甚至可以在没有任何NAT相关问题的情况下使用UDP,只要您在客户端启用定期ping或以其他方式保持隧道上的频繁流量。

如果您正在使用TUN -模式VPN,服务器只需要一个内核路线,通过你的局域网子网tun0,然后一个OpenVPN iroute为通过家庭VPN客户端的地址在同一个子网。(使用tap -mode VPN,它只是一个结合两者的内核路由。)


感谢您的回答!如果我配置我的家用路由器(它有OpenVPN支持)连接到我的VPS,然后从家庭网络外部连接到相同的VPS(例如使用带有3g的手机),我将能够通过其DNS名称访问我的家庭服务器在路由器上配置(使用dnsmasq)或者我需要做一些额外的路由?
hurlenko
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.