Mac-Osx

埠 80:連接被拒絕。如何在 Mac OSX 上修復?

  • December 13, 2015

我注意到兩台 Mac 上的 Apache 虛擬主機存在一些問題,否則它們具有相同類型的設置(在 httpd.conf、vhost、主機等方面)。在一台 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
Сканирование портов завершено…

為 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
Сканирование портов завершено…

所以在“好”機器上列出了埠 80,而在“壞”機器上則沒有。

在兩台機器上,我都有 apache 監聽 *:80 等,正確設置虛擬主機,主機文件中的適當條目等。兩台 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

我有點茫然,因為我不知道如何解決這個問題。為什麼埠 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)

提前謝謝了。

萬事如意,騰

編輯:我被要求證明為什麼這不是關於連接被拒絕的更一般問題的重複問題。這不是因為我的問題是針對 Mac OSX 的,而對我有用的解決方案(見下文)需要編輯 pf.conf 並使用 pfctl ,而假設的重複問題中根本沒有提到。

為了確保埠 80 在所有介面上都為 TCP 打開,我添加了

pass in proto tcp from any to any port 80

/etc/pf.conf. 重新載入 pfctl 並沒有完全解決問題,但重新啟動可以。現在,埠在埠掃描中顯示為打開,並且我的虛擬主機已按應有的方式提供服務。

引用自:https://serverfault.com/questions/742364