如何使用 OpenVPN 将所有端口从 Debian 转发到 Windows

如何使用 OpenVPN 将所有端口从 Debian 转发到 Windows

我的设置
Debian 10来自 Azure
Windows 10来自 Azure

Debian 10是 Azure 的一个干净的新服务器,只安装并设置了 OpenVPN,使用的脚本如下存储库

Windows 10充满了程序并运行着 Xampp,我可以使用 OpenVPN 和 SSH 从 Windows 10 连接到 Debian 10。

问题:
我不想泄露我的 Windows 10 IP 地址,但我希望人们使用 Debian 10 IP 访问 Xampp 上的网站。

目标:
我可以通过 OpenVPN 将对 Debian IP TCP 端口(80、443、3000、8080)的所有请求转发或隧道传输到 Windows 10 端口,或者可以使用 SSH 来完成。

进步:
我已经使用以下脚本在 Debian 上设置了 OpenVPN这里并且成功了,我的 Windows 10 连接到了 OpenVPN。

Windows 10 防火墙已禁用。

我尝试使用 C2S 和 Bitverse SSH 来转发端口,但它只能在本地工作。

OpenVPN 论坛上有一个主题尝试执行此操作,但不够全面。这是关联

如果有人能将所有端口或特定端口从 Linux 转发到 Windows,无论使用何种方法,请告诉我该怎么做。提前谢谢您。

答案1

如果您的所有端口都提供 http/s 内容,那么设置 nginx 或其他反向代理可能是最好的选择。如果您需要其他非 http/s 数据流来工作,我建议使用 iptables,如下例所示:https://my.esecuredata.com/index.php?/knowledgebase/article/49/how-to-redirect-an-incoming-connection-to-a-different-ip-address-on-a-specific-port-using-iptables/

根据您的设置,您可以轻松修改该链接中给出的示例以适合您的设置:

iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination Windows10-ip:443
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination Windows10-ip:80
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination Windows10-ip:8080
iptables -t nat -A PREROUTING -p tcp --dport 3000 -j DNAT --to-destination Windows10-ip:3000
iptables -t nat -A POSTROUTING -j MASQUERADE

如果需要,此设置也可以通过 VPN 隧道工作。只需使用 Windows 10 计算机的 VPN IP 地址即可。

需要注意的是:XAMPP 的开箱即用设置并不十分安全,不适用于生产用途,而适用于开发。因此,除非您已采取必要措施保护 XAMPP 安装,或者仅临时使用此设置,否则最好将您的网站/Web 应用程序迁移到更强大的 LAMPP 堆栈或类似堆栈。

相关内容