我在家里的电脑上运行 Django 开发服务器0.0.0.0:80。
我也正在运行SSH港口服务22我已经为我的路由器(Virgin Media Superhub 2)配置了外部 IP80.80.80.80) 以便
- 我的服务器已配置了插槽192.168.0.13
- 我已经转发了端口 80 和 22,以便任何外部请求都指向 192.168.0.13:80/22。
我已经配置了 no-ip 增强文本,服务器正在动态更新 no-ip url,foo.no-ip.biz。我还配置了一个Godaddy域名,foo.com对于来自以下来源的所有流量,CNAME DNS 条目指向 foo.no-ip.biz:bar.foo.com。
当我尝试访问bar.foo.com或者foo.no-ip.biz或者80.80.80.80或者192.168.0.13通过局域网中一台使用 Google Chrome 的笔记本电脑,我可以正常访问所有内容,并查看我的网站。
但是,当我尝试从外部我的 LAN,连接超时。这种情况发生在上述所有地址上,192... 分钟。
我可以使用任意地址进行 SSH,并且我还可以看到端口 22 和 80 均已打开,使用http://www.yougetsignal.com/tools/open-ports/那么可能是什么问题?如果您遇到很多这样的问题,我很抱歉,但我见过的大多数示例都有不同的情况,即它们没有转发端口或类似的东西。有人能帮忙吗?
答案1
您需要在路由器上添加端口转发并将其设置为端口 80 指向正确的 IP 地址和端口 80。请注意,如果您在端口 80 上也启用了路由器的外部管理,则必须禁用此功能。
如果您有多个路由器/调制解调器可以进行端口转发,请确保在每个设备上都设置了端口转发。此外,如果您的外部 IP 发生变化,您需要执行 ipconfig /flushdns 来获取新的 IP 地址。
如果外部无法正常工作,请确保您可以 ping 该地址并获得正确的 IP 地址。
答案2
Telnet 到以下端口 80:
cpc20-acto3-2-0-cust165.4-2.cable.virginm.net (the name your ISP gives your IP address)
我应该得到一个连接响应,但我只得到:
Trying 81.101.5.166...
telnet: connect to address 81.101.5.166: Network is unreachable
telnet: Unable to connect to remote host
这告诉我端口未打开。虽然看起来转发正常,但可能有一个防火墙设置关闭了端口。找到并打开它,您就可以开始工作了。