【问题标题】:How to expose python web server using VPN如何使用 VPN 暴露 Python Web 服务器
【发布时间】:2019-07-27 14:01:13
【问题描述】:

我刚刚开始学习使用 python 进行 Web 开发。现在我的 Web 服务器在我的开发机器上使用端口 80 运行良好。但是,当我想从 LAN 网络外部访问我的 Web 时,我发现我的 ISP 阻止了所有端口。为了解决这个问题,我使用了 vpnbook.com (openVPN 2.4) 提供的免费 VPN。当我使用 CanYouSeeMe.org 网站时,它告诉我端口 80 已打开,但我不知道如何连接到我的 Web 服务器。分配的 IP 10.12.x.x:80 和远程 IP 51.68.x.x:80 都不起作用。

非常感谢任何帮助。

我在 windows 10 上使用烧瓶框架。以下是从vpnbook.com下载的openVPN配置:

client
dev tun3
proto tcp
remote 51.68.180.4 80
remote de4.vpnbook.com 80
resolv-retry infinite
nobind
persist-key
persist-tun
auth-user-pass
comp-lzo
verb 3
cipher AES-128-CBC
fast-io
pull
route-delay 2
redirect-gateway

【问题讨论】:

    标签: python router vpn portforwarding nat


    【解决方案1】:

    成为 VPN 的一部分不会让您暴露于世界。换句话说,一旦您连接到它,它就不会将来自 WWW 的流量转发到您机器上的任何端口。这就像用您无权定义forwarded ports 的更大的路由器替换您的家用路由器一样。 “最坏”的情况是同一个 VPN 中的其他机器能够联系到您,但这通常不是公共 VPN 中的设置。

    您可以使用的解决方案是 SSH 远程转发。你可以阅读它here(预计会眩晕),但要点是你使用 SSH 连接到你拥有的云服务器,并告诉它使用相同的 SSH 连接来转发连接到你的连接(即 WWW -> cloud_machine:端口-> your_machine:端口)。因为您拥有这台云机器,所以您可以控制它的安全性并可以向世界开放监听端口。

    ssh -R 80:localhost:80 public.example.com
    
    

    再说一次,如果你愿意走这么远,不妨在这台机器上部署你的应用程序!

    【讨论】:

    • 感谢您的回答。但是,VPN提供商(vpnbook.com)说他们转发端口80、443和其他端口,而我上面发布的配置是转发端口80,这就是为什么CanYouSeeMe.org告诉我端口80是开放的。有什么建议吗?
    • 使用 VPN 是否可以暴露我的网络服务器?
    • @froten 理论上,是的。我从来没有做过,也不知道为什么使用你的供应商会失败。您可以使用旧的 netcat(大多数 Linux 发行版上的 nc)开始调试问题,这是一个有用的网络工具。将另一个 VM 连接到同一个 VPN,并使用 nc 在两台机器之间进行通信。一个在听,nc -v -l 80(需要root),另一个尝试连接nc -v {ip} 80
    猜你喜欢
    • 2016-02-11
    • 2020-10-21
    • 1970-01-01
    • 2019-07-22
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    相关资源
    最近更新 更多