TL;DR:简单的 HTTP 服务器可在本地访问,但如何使其可在远程访问,以便从网络上的另一台计算机查看所提供的文件?
我正在使用零配置命令行 HTTP 服务器来提供网站(包含文件的目录index.html
)。
我使用python -m SimpleHTTPServer
或node.js http-server
(从安装npm
)。
在本地访问该网站没有问题。如果我在端口 8090 上提供该网站,那么我就可以localhost:8090
按预期看到它。
但我无法远程访问它,这就是我的问题所在。我希望该网站可以在我的网络上访问。(我必须使用 VPN 才能访问服务器。)
如果我尝试 telnet 到该端口,我会得到telnet: connect to address 192.168.122.215: Connection refused
。
顺便说一句,端口 8080 已被 Jenkins 使用,这就是我使用 8090 的原因(不确定这是否有任何区别)。
我见过https://stackoverflow.com/questions/14469267/node-js-on-mac-access-a-node-js-web-server-from-another-computer,但这没有帮助。当我运行命令时,http-server . -p 8090
我得到了Starting up http-server, serving . on: http://0.0.0.0:8090
,我相信这意味着它应该可以远程访问。
我对网络/端口等不太熟悉,所以非常感谢任何指导。我认为这与端口未打开或某些防火墙设置有关,但这对我来说很陌生。
我尝试做的事情可行吗?有人能帮我让这个网站在网络上远程访问吗?谢谢阅读!
答案1
运行
netstat -lpn
并验证您要使用的 Web 服务器端口确实在 0.0.0.0 而不是 localhost 上运行。如果不是,那么我们需要编辑配置以监听“*”,然后重新启动 Web 服务器守护程序。如果您的机器上有防火墙,请花几分钟时间进行故障排除,将其完全关闭,以便我们能够消除它作为问题的根源。如果我们发现防火墙是问题所在,我们可以确保您正在使用的端口的规则正确。