我已经在我的 Windows 7 计算机上安装了 Apache 服务器。我可以通过在浏览器的地址行中键入http://localhost/来显示默认的 index.php 。
但是,我仍然无法通过键入我的计算机的 IP 地址来查看此页面(既不是本地的(来自同一台计算机)也不是全局的(来自连接到 Internet 的另一台计算机))。
有人告诉我我需要打开端口 80。我做到了(以此处描述的方式)但它没有解决问题。
首先,我想检查哪些端口已打开,哪些未打开。例如,我不确定我的端口 80 在我尝试打开之前是否已关闭。在我尝试打开它之后,我也不确定它是否被打开。
我尝试运行一个用 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 防火墙正在阻止您。在本教程中添加一个例外...
http://www.sevenforums.com/tutorials/542-windows-firewall-add-remove-exception.html
运行
netstat -a -n
或ss -a -n
从命令提示符运行将显示所有打开的网络连接和计算机上的侦听端口。0.0.0.0:80
这意味着它正在侦听80
所有 IP 地址(本地主机和您的公共/私有 IP 地址)的端口,127.0.0.1:80
这意味着它只在本地主机上侦听。您可以添加-b
到命令中,它将显示哪个可执行文件正在使用该端口。您可以使用 Windows 7 中“网络”选项卡的“侦听端口”部分下的“资源监视器”获得相同的信息。如果您想查看它是否从另一台服务器打开,您可以
telnet serverName 80
查看会话是否打开。如果没有,则服务器未在侦听,或者端口被防火墙阻止。如果它打开然后立即关闭,至少是 windows 2003,那么软件(例如 Exchange)可能未配置为侦听该特定接口或 IP,但它正在侦听其他端口。我已经看到 IIS 这样做是因为它很愚蠢,而 Apache 可能不会。
你写了:
虽然这听起来很奇怪,但实际上您对开放端口没有问题(但使用 Apache 配置)。
该“禁止”消息来自您的 Apache 服务器;这意味着您的网络服务器可以从 Internet 访问。
您需要配置 Apache 以允许为所有主机提供服务 - 否则他们将获得“禁止”页面。IIRC,Apache 最初设置为仅允许来自本地计算机的请求。
在您的 Apache 配置中的某处,可能有这样的部分(实际目录可能不同):
如果您想允许任何计算机查看您的页面,您需要
Deny from all
将Allow from all
. 有关详细信息,请参阅访问模块文档。要查看打开的端口,您可能应该使用 nmap 他们有一个 Windows 版本: http: //nmap.org/dist/nmap-5.21-setup.exe
如果您看到从 localhost 打开的端口 80 是不够的 - 如果您从其他地方尝试它,可能会有阻碍,这就是我推荐 nmap 的原因
从您键入的客户端:nmap ip-of-your-server
如果您想在本地网络上进行测试,请下载nmap如果您想查看外部世界可以访问端口的天气,请在 https://www.grc.com/x/ne.dll?bh0bkyd2运行扫描
如果您使用的是 Windows,请使用SysInternals TCPView。它可以告诉您哪个程序正在使用哪个端口。
服务器端口既可以绑定到单个 IP 地址,也可以绑定到每个可用的 IP 地址。听起来您的 Apache 安装设置为仅绑定到 127.0.0.1,您需要将其设置为绑定到 *. 在您的 httpd.conf(在 Apache 的 conf 目录中)中,查找类似的行
Listen localhost:80
并将其更改为Listen 80
.telnet <host> <port>
是你的朋友。它具有安装在世界上几乎每台计算机上的优点。重新阅读问题后的编辑:
这里有一些有用的诊断提示
如果您可以通过 localhost 访问该站点,但不能通过网络上其他主机的站点本地 IP (192.168.*) 访问,则可能是 Windows 防火墙问题。
如果您可以从其他站点本地计算机访问该站点,但不能从 Internet 访问您的公共 IP,则这是路由器/端口转发配置问题。
从命令提示符键入:
...或您的 IP:80。这将告诉您机器上的端口 80 是否打开。现在,如果您想检查是否可以从网络外部访问它,将确定您是否有某种防火墙。如果这样做,您需要将端口 80 转发到您的 Web 服务器。