我在Windows 7电脑上安装了Apache服务器。 我能够通过在浏览器的地址栏中inputhttp:// localhost /来显示默认的index.php。
但是,我仍然无法通过键入我的电脑的IP地址(本地(从同一台计算机)没有全局(从另一台计算机连接到Internet))来看到此页。
我被告知我需要打开80端口。我做了(按照这里描述的方式),但没有解决问题。
首先我想检查哪些端口是打开的,哪些不是。 例如,我不确定我的端口80在我试图打开之前是否closures。 我也不确定打开后是否打开。
我试图运行一个用Python编写的非常简单的Web服务器。 为此,我使用了端口81,它的工作! 而我没有试图打开端口81.所以,它默认打开。 所以,如果81默认打开,为什么80不是? 或者它是?
附加信息:
1.在我的httpd.conf文件中,我有“Listen 80”。
2. 这个网站告诉我,我的电脑上的80端口是打开的。
3.如果我尝试使用http:// myip:80和http:// myip:81,我会得到不同的回复。 在最后一种情况下,浏览器(Chrome)写道,链接已损坏。 在第一种情况下,我得到:禁止您没有权限访问/在此服务器上。
4. IE写道:“网站拒绝显示这个网页”。
如果你只是从外面检查你的端口。 使用这个工具:
http://www.yougetsignal.com/tools/open-ports/
它会尝试连接到您的IP地址,在特定的端口,并让你知道,如果它是开放或封闭的外部世界。
当地的问题呢? 听起来像Windows 7防火墙正在切断你。 在本教程中添加一个exception…
http://www.sevenforums.com/tutorials/542-windows-firewall-add-remove-exception.html
从命令提示符运行netstat -a -n或ss -a -n将显示所有打开的networking连接以及机器上的监听端口。 0.0.0.0:80将意味着它正在监听所有IP地址(本地主机和您的公共/私有IP地址)的80端口,其中127.0.0.1:80意味着它只能在本地主机上侦听。 您可以将-b添加到命令中,它将显示哪个可执行文件正在使用该端口。 您可以使用Windows 7中的资源监视器在“networking”选项卡的“侦听端口”部分下获取相同的信息。
如果你想看看它是否从另一台服务器打开,你可以telnet serverName 80 ,看看会话是否打开。 如果没有,则服务器不在监听,或端口被防火墙阻止。
如果它打开,然后立即closures,至lessWindows 2003,那么软件(如Exchange)可能没有configuration为侦听特定的接口或IP,但它正在侦听其他端口。 我已经看到IIS这样做,因为它是愚蠢的,Apache可能不会。
你写了:
在第一种情况下,我得到:禁止您没有权限访问/在此服务器上。
虽然这可能听起来很奇怪,但实际上,打开端口(但使用Apacheconfiguration) 没有问题。
该“禁止”消息来自您的Apache服务器; 这意味着您的networking服务器可以从互联网上访问。
您需要configurationApache以允许向所有主机提供服务,否则他们将获得“禁止访问”页面。 IIRC,Apache最初设置只允许来自本地计算机的请求。
在你的Apacheconfiguration中,可能有这样的一个部分(实际的目录可能不同):
<Directory "/home/piskvor/www"> Allow from 127.0.0.1 Deny from all (...)
如果您希望允许任何计算机查看您的页面,则需要将Deny from all更改为Allow from all 。 有关更多信息,请参阅访问模块文档 。
要查看打开的端口,你应该使用nmap他们有一个Windows版本: http : //nmap.org/dist/nmap-5.21-setup.exe
如果你看到你的端口80从本地主机打开是不够的 – 如果你从其他地方尝试,也许有些东西阻碍你,所以我推荐nmap
从客户端input:nmap ip-of-your-server
如果你想在你的本地networking上进行testing,请下载nmap如果你想查看天气情况,外部世界可以访问该端口,请运行https://www.grc.com/x/ne.dll?bh0bkyd2
服务器端口可以绑定到单个IP地址或每个可用的IP地址。 这听起来像你的Apache安装设置为只绑定到127.0.0.1,你需要设置它绑定到*。 在你的httpd.conf中(在Apache的conf目录下),找一条类似Listen localhost:80 ,把它改为Listen 80 。
telnet <host> <port>是你的朋友。 它具有安装在世界上几乎所有计算机上的优点。
重读这个问题后编辑:
这里有一些有用的诊断技巧
如果您可以通过本地主机访问站点,但不能通过您networking上其他主机的站点本地IP(192.168。*)访问该站点,则可能是Windows防火墙问题。
如果您可以从其他站点本地计算机访问站点,但不能从Internet访问您的公共IP,则是路由器/端口转发configuration问题。
从命令提示符下键入:
netstat -ano, look for 0.0.0.0:80
…或你的IP:80。 这会告诉你,如果端口80在你的机器上打开。 现在,如果你想检查你是否可以从networking外部访问它,将决定你是否有防火墙。 如果你这样做,你将需要转发端口80到您的Web服务器。
如果你在Windows上,使用SysInternals TCPView 。 它可以告诉你哪个程序正在使用哪个端口。

在DOS命令中:
C:\Windows\system32>netstat -a -b使用中連線協定 本機位址 外部位址 狀態TCP 0.0.0.0:80 801781-N1:0 LISTENING [Skype.exe] TCP 0.0.0.0:135 801781-N1:0 LISTENING RpcSs [svchost.exe] TCP 0.0.0.0:443 801781-N1:0 LISTENING [Skype.exe] ...