Centos6

啟動 httpd 時沒有可用的偵聽套接字

  • June 16, 2016

我們的伺服器配置了內部 IP。然後在防火牆中,管理員映射了一個有效的 IP 地址 (2.XYZ)。所以,ipconfig命令顯示

eth1      Link encap:Ethernet  HWaddr 00:E0:61:36:D5:34
         inet addr:172.20.54.10  Bcast:172.20.54.255  Mask:255.255.255.0
         inet6 addr: fe80::270:81ef:fec6:d534/64 Scope:Link

但是,我們使用ssh 2.X.Y.Z. 現在,我想設置 apache web 伺服器,以便在 web 瀏覽器中輸入 2.XYZ。所以,我打開/etc/httpd/conf/httpd.conf並修改

Listen 2.X.Y.Z:80
Listen 80

我用數字替換了 XYZ。問題是,當我重新啟動 httpd 時,出現此錯誤

Starting httpd: (99)Cannot assign requested address: make_sock: could not bind to address 2.X.Y.Z:80
no listening sockets available, shutting down
Unable to open logs
                                                      [FAILED]

更新 1:

如果我替換Listen 2.X.Y.ZListen 172.20.54.10,那麼我會收到此錯誤

Starting httpd: (98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
                                                      [FAILED]

如果我評論該行,服務將啟動。但是,在瀏覽器中,有效的 IP 2.XYZ 不起作用。相反,內部 IP172.20.54.10有效。換句話說,apache 測試頁面僅從本地網路顯示。

2.X.Y.Z

沒有綁定eth1介面,但是172.20.54.10,註釋掉Listen 2.X.Y.Z:80行或替換2.X.Y.Z172.20.54.10然後嘗試啟動您的httpd.


啟動 httpd: (98) 地址已在使用中:make_sock: 無法綁定到地址

$$ :: $$:80(98)地址已在使用:make_sock:無法綁定到地址 0.0.0.0:80

這意味著有另一個程序已經綁定到埠 80,這就是 httpd 無法啟動的原因。

如果我評論該行,服務將啟動。但是,在瀏覽器中,有效的 IP 2.XYZ 不起作用。相反,內部 IP 172.20.54.10 有效。換句話說,apache 測試頁面僅從本地網路顯示。

2.X.Y.Z由於路由/防火牆未到期,可能無法正常工作httpd

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