Ten*_*nch 6 port mac-osx localhost virtualhost apache-2.4
我注意到两台 Mac 上的 Apache 虚拟主机存在一些问题,否则它们具有相同类型的设置(就 httpd.conf、vhosts、主机等而言)。在一台 Mac 上,虚拟主机可以正常运行,而在另一台 Mac 上,我在端口 80 上连接被拒绝。
我认为这似乎不是 Apache 配置的问题,而是与端口有关。
即,无法在 80 上为虚拟主机 test.dev 提供服务的机器在端口扫描时向我显示了这一点:
???????????? ???????????????????...
Port Scanning host: 127.0.0.1
Open TCP Port: 88 kerberos
Open TCP Port: 445 microsoft-ds
Open TCP Port: 548 afpovertcp
Open TCP Port: 631 ipp
???????????? ?????? ?????????…
Run Code Online (Sandbox Code Playgroud)
为 test.dev 提供服务的机器显示:
Port Scanning host: 127.0.0.1
Open TCP Port: 22 ssh
Open TCP Port: 53 domain
Open TCP Port: 80 http
Open TCP Port: 88 kerberos
Open TCP Port: 445 microsoft-ds
Open TCP Port: 548 afpovertcp
Open TCP Port: 631 ipp
???????????? ?????? ?????????…
Run Code Online (Sandbox Code Playgroud)
因此,在“好”机器上,会列出端口 80,而在“坏”机器上则没有。
在两台机器上,我都有 apache 监听 *:80 等,正确设置 vhosts,主机文件中的适当条目等。两台 Mac 都运行 El Capitan,在同一网络上等。
在好的 mac 上,提供了 test.dev,在坏的 mac 上,我得到了这个:
? curl -I -L test.dev 15:51:01
curl: (7) Failed to connect to test.dev port 80: Connection refused
Run Code Online (Sandbox Code Playgroud)
我有点不知所措,因为我不知道如何解决这个问题。为什么端口 80 没有出现在坏 Mac 的端口扫描中(使用 Network Utility 应用程序),但sudo lsof -i -P | grep -i "80"给了我:
httpd 4482 root 5u IPv6 0xfe89d5ee2c7da24b 0t0 TCP *:80 (LISTEN)
httpd 4484 daemon 5u IPv6 0xfe89d5ee2c7da24b 0t0 TCP *:80 (LISTEN)
httpd 4485 daemon 5u IPv6 0xfe89d5ee2c7da24b 0t0 TCP *:80 (LISTEN)
httpd 4486 daemon 5u IPv6 0xfe89d5ee2c7da24b 0t0 TCP *:80 (LISTEN)
httpd 4487 daemon 5u IPv6 0xfe89d5ee2c7da24b 0t0 TCP *:80 (LISTEN)
httpd 4488 daemon 5u IPv6 0xfe89d5ee2c7da24b 0t0 TCP *:80 (LISTEN)
Run Code Online (Sandbox Code Playgroud)
提前谢谢了。
一切顺利,丁奇
编辑:我被要求证明为什么这不是关于拒绝连接的更一般问题的重复问题。这不是因为我的问题是特定于 Mac OSX 的,而对我有用的解决方案(见下文)需要编辑 pf.conf 并使用 pfctl,这在假定的重复问题中根本没有提到。
为了确保端口 80 对所有接口上的 TCP 开放,我添加了
pass in proto tcp from any to any port 80
Run Code Online (Sandbox Code Playgroud)
到/etc/pf.conf。重新加载 pfctl 并不能完全解决问题,但重新启动可以。现在,端口在端口扫描中显示为打开状态,并且我的虚拟主机已按应有的方式提供服务。
| 归档时间: |
|
| 查看次数: |
33274 次 |
| 最近记录: |