我们的服务器配置了内部 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.Z
为Listen 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 测试页面仅从本地网络显示。
答案1
2.X.Y.Z
是不是绑定到eth1
接口,但是172.20.54.10
,要么注释掉Listen 2.X.Y.Z:80
行,要么替换2.X.Y.Z
为172.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