我尝试作为虚拟主机打开端口 81。设置 apache 后,我可以从本地计算机 CURL localhost:81 并获取响应(是的,它正在侦听端口 81)。但是,当从远程浏览器访问同一地址时,浏览器总是显示 TIME OUT 错误。
我认为这可能是由于防火墙或selinux造成的,所以我将它们都禁用并重试,但仍然失败。我用来禁用selinux和防火墙的命令如下:
禁用selinux:
打开 /etc/selinux/config 并更改 SELINUX=disabled,然后重新启动。我使用 sestatus 命令来检查并输出显示它已被禁用。
关闭 iptables:
service iptables stop
chkconfig iptables off
我关闭 ip6tables:
service ip6tables stop
chkconfig ip6tables off
我使用的是 CentOS 6.3。除了selinux和iptables之外还有其他我没有注意到的安全问题吗?
添加更多信息
我直接使用IP地址,例如123.123.123.123:81。我不认为这是由于 apache conf,因为我可以通过 和 获得本地服务器计算机的
curl locahlost:81
响应curl 123.123.123.123:81
。
网络统计结果
运行 netstat 命令后,我得到了
tcp 0 0 :::80 :::* LISTEN 1809/httpd
tcp 0 0 :::81 :::* LISTEN 1809/httpd
看来 80 和 81 都可以工作。
如果配置
这是ifconfig -a
结果:
eth0 Link encap:Ethernet HWaddr 00:50:56:9B:24:D6
inet addr:101.251.235.162 Bcast:101.251.235.163 Mask:255.255.255.252
inet6 addr: fe80::250:56ff:fe9b:24d6/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16046 errors:0 dropped:0 overruns:0 frame:0
TX packets:15092 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3370807 (3.2 MiB) TX bytes:2352380 (2.2 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:70 errors:0 dropped:0 overruns:0 frame:0
TX packets:70 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:19119 (18.6 KiB) TX bytes:19119 (18.6 KiB)
答案1
首先检查以确保您的服务器正在监听您想要的端口,而不仅仅是本地主机
netstat -plnt
应该给你类似这样的输出:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN -
tcp 0 0 10.0.3.1:53 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:6680 0.0.0.0:* LISTEN -
检查该Local Address
列以确保您的服务器正在侦听*:81
orip.ad.dr.ess:81
而不仅仅是localhost:81
or127.0.0.1:81
如果是这种情况,请检查httpd.conf
并确保服务器已设置为Listen *:81
而不是Listen localhost:81
如果没httpd.conf
问题,请检查您的虚拟主机配置,以确保您正在收听所有内容
<VirtualHost *:81>