我最近安装了 centos 服务器。我已经配置了 apache 和所有 mysql 包。
我还有一个实时 IP。当我在 centos web 服务器本身上使用实时 IP 运行 web 服务器时,一切看起来都很好。但是当我尝试通过另一个 IP 进行远程访问时,它显示“无法连接”。
我也设置了 iptables。但我无法访问服务器 - 请问有人能帮忙吗?这是我的 iptable 文件:
# Generated by iptables-save v1.4.7 on Sat Mar 16 21:12:18 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [20928:2320365]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Sat Mar 16 21:12:18 201
下面是输出netstat
:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2109/mysqld
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1575/rpcbind
tcp 0 0 0.0.0.0:54354 0.0.0.0:* LISTEN 1770/rpc.statd
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1971/vsftpd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1828/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2205/master
tcp 0 0 :::51272 :::* LISTEN 1770/rpc.statd
tcp 0 0 :::111 :::* LISTEN 1575/rpcbind
tcp 0 0 :::80 :::* LISTEN 3026/httpd
tcp 0 0 ::1:631 :::* LISTEN 1828/cupsd
udp 0 0 0.0.0.0:43728 0.0.0.0:* 1770/rpc.statd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 1751/avahi-daemon
udp 0 0 0.0.0.0:111 0.0.0.0:* 1575/rpcbind
udp 0 0 0.0.0.0:631 0.0.0.0:* 1828/cupsd
udp 0 0 0.0.0.0:902 0.0.0.0:* 1575/rpcbind
udp 0 0 0.0.0.0:674 0.0.0.0:* 1770/rpc.statd
udp 0 0 0.0.0.0:39847 0.0.0.0:* 1751/avahi-daemon
udp 0 0 :::33127 :::* 1770/rpc.statd
udp 0 0 :::111 :::* 1575/rpcbind
udp 0 0 :::902 :::* 1575/rpcbind
我也正在监听端口 80。
答案1
你的 iptables 规则顺序错误,这个规则
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
应该在此之前
-A INPUT -j REJECT --reject-with icmp-host-prohibited
您可能所做的是使用 iptables 命令的 -A 选项。这会将规则添加到链的末尾。iptables 中的规则从上到下执行,第一个匹配的规则获胜。在您的设置中,在端口 80 上允许之前将执行全面拒绝。
解决这个问题最直接的方法是保存当前配置
service iptables save
然后编辑 /etc/sysconfig/iptables 文件并交换规则的位置,然后重新启动 iptables
service iptables restart.