![在家庭网络中,如何从客户端通过 ssh 连接到连接到 VPN 的主机?](https://linux22.com/image/201641/%E5%9C%A8%E5%AE%B6%E5%BA%AD%E7%BD%91%E7%BB%9C%E4%B8%AD%EF%BC%8C%E5%A6%82%E4%BD%95%E4%BB%8E%E5%AE%A2%E6%88%B7%E7%AB%AF%E9%80%9A%E8%BF%87%20ssh%20%E8%BF%9E%E6%8E%A5%E5%88%B0%E8%BF%9E%E6%8E%A5%E5%88%B0%20VPN%20%E7%9A%84%E4%B8%BB%E6%9C%BA%EF%BC%9F.png)
我的家庭网络上有一个 Debian 11 盒子,我可以通过 ssh 进入它并使用 vnc 像普通桌面一样访问它。我在主机上安装了 VPN,但是当我连接到主机上的 VPN 然后注销 ssh 会话时,当我从客户端重新登录时,VPN 已断开连接。我猜想 VPN 客户端(在本例中为 protonvpn)会在注销时关闭,无论如何,如果主机具有不同的 IP 地址(VPN 可以分配的众多 IP 地址之一),我将如何重新登录?
如何将主机设置为通过 VPN 访问互联网,并且仍然可以从家庭网络上的客户端通过 ssh 访问它?请注意,客户端在登录主机且运行 Mint 20.3 时未连接到 VPN。
答案1
问题似乎出在 VPN 客户端软件(在本例中)protonvpn-cli
以及相关的 GUI 应用程序上 - 一旦您出于某种原因注销 ssh 会话,它就会终止。
简而言之,解决方案是通过网络管理器使用 OpenVPN 手动连接到 VPN,而不是使用protonvpn-cli
或 GUI。注销 ssh 会话后,连接将持续存在。
删除protonvpn-cli
和 gui 软件并确保/etc/NetworkManager/system-connections/pvpn-ipv6leak-protection
删除 Killswitch 配置文件 ( ),否则会出现问题,有关该问题的更多信息,请访问这个链接。登录 protonvpn 网站并下载您想要导入 OpenVPN 的网络配置文件。请务必使用帐户中提供的 OpenVPN 凭据,而不是常用的登录电子邮件和密码,因为这不适用于 OpenVPN。在网络管理器中,单击加号图标,然后单击“导入已保存的 VPN 配置”。输入登录凭据然后连接。
在此示例中,我的本地计算机是运行 Mint Una 和 Gnome 桌面的“mint”,本地网络上的远程计算机是运行 debian 11 和 xfce4 桌面的“debian”。一切都可以通过本地 mint 机器的 ssh 访问进行配置。
在 mint 上,通过 ssh 进入远程机器:
ssh -L 5901:localhost:5901 debian@ip-address
在 debian 上启动 vncserver:
vncserver
VNC 进入 debian(使用 vinagre 应用程序)
vinagre localhost:1
通过远程桌面,我可以如上所述删除 protonvpn,设置手动连接,连接然后注销。当我重新登录时,它仍然连接到 VPN :) 快乐的日子!