![在网络上公开 VPN 连接](https://linux22.com/image/801793/%E5%9C%A8%E7%BD%91%E7%BB%9C%E4%B8%8A%E5%85%AC%E5%BC%80%20VPN%20%E8%BF%9E%E6%8E%A5.png)
我通过 VPN 连接从家里的桌面连接到工作网络。
我想要实现的是将此连接公开到通过 3G 网络连接到互联网的手机 (Android) 上。我公司使用的原始 VPN 供应商没有移动客户端。
我想,我需要在我的桌面上设置一个 VPN 服务器(例如具有移动客户端的 OpenVPN),它将连接的 VPN 网络暴露给我的工作。
有人能告诉我如何实现这一目标吗?
答案1
为了使其正常工作,当您的家用电脑连接到 VPN 时,它仍然必须可以通过其自己的 LAN 访问 - 某些 VPN 不允许您这样做。
如果满足此条件,并且如果你的家用电脑是 Linux 机,我认为最简单的方法是通过SSH。这就是我对我自己的家用电脑所做的。
首先,这不是强制性的,但我总是将 SSH 配置为只接受通过 RSA 证书进行的身份验证 - 这样,通过暴力破解密码来入侵您的 PC 就不那么容易了,因为不会接受任何密码。将它与拒绝 DNS(设置起来非常容易)结合起来,将您的 SSH 服务暴露给互联网就会相当安全。
你必须NAT防火墙上的 SSH 端口指向您的 Linux 机器(默认22
,但您可以更改它,我通常这样做...虽然模糊但安全,好吧,但我更喜欢这种方式:))。
然后,如果您家中的互联网连接具有动态分配的 IP,您可以注册动态 DNS 服务,例如 dyndns.com 的服务。许多现代调制解调器/路由器本身都支持这些服务,因此可以非常轻松地配置您的调制解调器/路由器,以便每次更改时将您自己分配的公共 IP 发送给动态 DNS 服务提供商。这样,您就可以通过互联网从任何地方连接到您的 PC。
要使用 Android 连接到 SSH,我使用名为 Connectbot 的应用程序,它是免费的开源应用程序,对我来说非常好用。您必须创建 RSA 密钥,这非常简单。为了更加谨慎,您可能希望使用密码保护密钥。将公钥签名添加到 SSH 服务器接受的签名中(在我的 Ubuntu 上,我只需将其复制到文件中即可~/.ssh/authorized_keys
)。
然后,最后一个技巧是使用SSH 隧道将您想要的端口从您的移动设备通过家用 PC 重定向到 VPN 另一端的目的地。我以前这样做过,而且很有效。显然 YMMV...
如果您需要有关这些步骤的更详细说明,请告诉我。
我希望这有帮助!