在虚拟机安装centOs时,防火墙只有22端口是打开的,在我们在访问mysql的3306,redis的6379,tomcat的8080是不可以的,所以我们要在防洪墙的配置文件中打开3306,6379,8080等这些端口。
在命令行输入 :vi /etc/sysconfig/iptables
会看到以下的信息:
-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 FORWARD -j REJECT --reject-with icmp-host-prohibited
在配置信息中加入以下
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT
务必要将这些新加入的端口信息放在
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited 的前面来配置。
配置完以后,对防火墙进行重启。
/etc/init.d/iptables restart
这样就可以了。
iptables所有规则翻译
:INPUT ACCEPT [0:0] # 该规则表示INPUT表默认策略是ACCEPT
:FORWARD ACCEPT [0:0] # 该规则表示FORWARD表默认策略是ACCEPT
:OUTPUT ACCEPT [0:0] # 该规则表示OUTPUT表默认策略是ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 意思是允许进入的数据包只能是刚刚我发出去的数据包的回应,ESTABLISHED:已建立的链接状态。RELATED:该数据包与本机发出的数据包有关。
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited # 这两条的意思是在INPUT表和FORWARD表中拒绝所有其他不符合上述任何一条规则的数据包。并且发送一条host prohibited的消息给被拒绝的主机。