【问题标题】:Access SimpleHTTPServer from outside Network从外部网络访问 SimpleHTTPServer
【发布时间】:2015-07-30 02:24:55
【问题描述】:

可以通过以下方式从 ouside Network 设置和访问 Apache 服务器: http://lifehacker.com/124212/geek-to-live--how-to-set-up-a-personal-home-web-server 我想用 python SimpleHTTPServer 实现类似的功能。 这怎么可能?

【问题讨论】:

  • 您是在问如何制作服务器,还是已经编写了一个服务器并希望从网络外部访问它?

标签: python networking simplehttpserver


【解决方案1】:

第 1 步:运行此命令“python -m SimpleHTTPServer”。请注意,python -m SimpleHTTPServer 仅适用于 python 2。对于 python 3,您应该使用:python -m http.server

第 2 步:编辑路由器的配置,将端口 8000 转发到运行 python 命令的计算机。

第 3 步:确定您的家庭网络的 IP 地址,例如 203.0.113.47

确定您的家庭网络 IP 地址的一种便捷方法是查询任何我的 ip 信息网站,例如 https://www.whatismyip.com/

第 4 步:从您的网络外部访问(例如)http://203.0.113.47:8000/

【讨论】:

  • 考虑到 SimpleHTTPServer 没有实现所有的安全特性,例如。阿帕奇。文档说它提供相对于实际目录的页面 - 我怀疑它有很多防止访问私人文件的保护措施。我怀疑公开使用它是一个好主意。我可能错了。
  • 家庭的IP地址是指我在whatismyip.com或ifconfig命令中获得的IP地址?
  • 请注意,python -m SimpleHTTPServer 仅适用于 python 2。对于 python 3,您应该使用:python -m http.server
  • @Sylhare - 谢谢。
  • 可能值得一提的是,如果不禁用运行服务器的 PC 上的防火墙,它将无法工作。否则,与 IP 和端口的连接似乎会永远加载
【解决方案2】:

如果您的防火墙阻止了端口 8000,您必须打开它。

例如,在 RHEL/CentOS/Fedora 上,如下图所示打开 8000 端口。

#firewall-cmd --permanent --add-port=8000/tcp

#firewall-cmd --reload

在 Debian、Ubuntu 上,您可以允许如下所示的端口。

$ sudo ufw allow 8000

【讨论】:

    【解决方案3】:

    您可以将您的路由器端口转发到特定端口,并使用动态 DNS 服务(例如 no-ip)访问您的服务器。

    或者您可以使用localtunnel.mengrok 之类的隧道软件将您的端口转发到唯一的URL。

    如果您拥有 AWS 或 DigitalOcean 等云服务器,您也可以创建反向代理或 VPN 服务器。

    【讨论】:

      【解决方案4】:

      是的,localtunnel 可以帮助您在外部访问 python http.server。 这里的外部访问意味着 - 从网络外部访问您的 http.server(假设您在德里运行 python http.server 并希望您在班加罗尔的朋友看到​​目录内容)。

      要求:

      1. nvm(用于安装本地隧道)

      2. 在特定端口上使用“lt”(CLI 工具)(但请记住,为了在您的 python http.server 上进行外部访问,您需要同时运行 python -m http.server)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-20
        • 2019-05-26
        • 2020-01-31
        • 1970-01-01
        相关资源
        最近更新 更多