我有一个部署在 Linode 服务器上的 OpenVPN 服务器。我的计算机正在运行为客户端连接打开端口 8089 的软件。我的电脑没有公共IP,因此计算机将VPN连接到OpenVPN服务器,以便客户端与VPN服务器的公共IP地址连接。
如何为我的计算机设置端口转发?我的意思是客户端如何通过openvpn服务器的公共IP连接到我的计算机上运行的端口8089的软件?
我的 linode 服务器:Debian 9 使用 ufw 配置防火墙。我遵循本教程中的设置指南https://www.cyberciti.biz/faq/how-to-install-and-configure-an-openvpn-server-on-debian-9-in-5-minutes/
答案1
在开始此操作之前,首先确保您的 VPN 客户端具有固定的 VPN IP 地址。OpenVPN 指南描述了如何完成此操作。确保从该文档的表中为客户端/服务器选择一个 IP 对。
现在确保您的 Linode 服务器可以访问客户端上的应用程序。 IE
telnet <Fixed VPN IP of your client machine> 8089
然后,为了连接外部世界,假设您的应用程序是基于 HTTP 的,我建议在 Linode 机器上安装反向代理。
在 Linode 服务器上安装反向代理,该代理将位于来自外部世界的连接之间,然后转发到您的应用程序。有很多可用的,例如 Nginx、Apache、HAProxy、TinyProxy。如果您有简单的需求,TinyProxy 可能是一个不错的起点。安装后,确保配置中包含以下行:
ConnectPort 8089
ReversePath "/" "http://<fixed IP of your VPN client>:8089"
ReverseOnly yes
ReverseMagic yes
您需要确保 Linode 服务器上的防火墙接受来自外部世界的传入连接。要允许不受限制的访问,请使用 UFW:
sudo ufw allow 8089/tcp
或者,如果您只想允许特定客户端访问您的应用程序:
sudo ufw delete allow 8089/tcp
然后对于每个应该能够访问的客户端:
sudo ufw allow from <external client IP> to 8089/tcp
如果您还在 VPN 客户端计算机上运行防火墙,则还需要确保有一条规则允许 Linode 服务器连接到端口 8089。您将需要虚拟专用网IP您的服务器的。对于固定 IP,根据我引用的 Open VPN 文档,您可以选择一对 IP 供 VPN 服务器和客户端使用:
sudo ufw allow from <Linode VPN Server IP> to 8089/tcp
您还可以调整配置,以便通过更改反向代理中的“连接”参数并更新 Linode 服务器防火墙规则来匹配,您的 Linode 服务器侦听完全不同的端口(例如 80),同时您的应用程序仍保留在 8089 上。