我无法从外部访问我的Web服务器(在Windows XP上运行Apache 2.4)。
我已经从路由器转发了端口80:
我还从Windows防火墙打开了端口80,并为其添加了一个例外:
我找到了路由解决方案here。这有用吗?
但是,我只能从我的网络中访问我的网站。当我连接到其他网络时,我无法访问我的网站。
答案 0 :(得分:0)
我假设你正在使用住宅互联网连接。根据您的ISP,例如Cox(我的心爱的 ISP),他们可能会选择block your public http port作为激励,让您升级到昂贵的商业互联网连接。
您可以通过运行network map进行检查。安装完成后,从网络外的某个地方运行命令:
nmap -Pn -p 80 192.168.0.1
并将192.168.0.1 IP更改为your public IP。幸运的话,你会得到一个像这样的开放式扫描:
Starting Nmap 6.40 ( http://nmap.org ) at 2016-03-22 22:17 CDT
Nmap scan report for 192.168.0.1
Host is up (0.0028s latency).
PORT STATE SERVICE
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
否则,您将获得如下过滤扫描:
Starting Nmap 6.40 ( http://nmap.org ) at 2016-03-22 22:19 CDT
Nmap scan report for 192.168.0.1
Host is up.
PORT STATE SERVICE
80/tcp filtered http
Nmap done: 1 IP address (1 host up) scanned in 2.58 seconds
在这种情况下,其他人仍然可以通过非阻塞端口与您联系。 8080是一个受欢迎的选择。您需要调整路由器中的设置以将您的传入外部端口8080端口转发到您服务器内部 IP的内部端口80。
编辑:我从屏幕截图中看到,您无法将一个端口转发到其他端口,至少在此屏幕上。检查您的其他屏幕,并搜索如何使用您的路由器型号。这个路由器可能无法实现 - 我曾经拥有一台不支持该基本功能的廉价Netgear路由器。在这种情况下,您需要更改或添加apache侦听的端口,documentation is here。
正确完成设置后,全世界将能够http://192.168.0.1:8080
访问您的网站,再次确保使用公开 IP,而不是192.168。