iptables使用简介

如果服务器某个端口无法访问,比如连接不到对应数据库,除了要排查selinux和firewall之外,还需要查看iptables是否开启。

iptables -I INPUT -p tcp --dport 1234 -j ACCEPT

这个是打开1234 tcp端口的进,也就是可以访问这个端口了。-I的意思是input,就是在INPUT规则前面插入一条规则,ACCEPT就是接收打开端口。

除了-I还有一个-A(append),就是在规则后面追加。

iptables的规则是有顺序的,-I的内容会覆盖-A的内容,就是插入到前面的规则生效,添加规则中并不会删除规则,而是不断添加。

iptables -L是查看所有添加的规则

iptables -L -n --line-number查看所有规则,并且列出对应的序号。这个一般是与iptables -D INPUT 1一起使用,表示删除某一个规则,序号就是iptables -L -n --line-number列出的,比如这条语句就是删除INPUT规则的序号是1的规则。这里需要注意,如果连续删除多个规则,每次操作完需要重新查看一下序号,因为删除后序号会变。

telnet: connect to address : No route to host

当telnet或者wget测试http的时候,如果提示这个错误,有可能是iptables中的一个配置导致的问题
iptables的规则是从上到下执行,会不断覆盖,比如上面写的禁止80端口,下面又打开80端口,那么最后是打开80端口,但是这个配置-A INPUT -j REJECT --reject-with icmp-host-prohibited一旦出现,就会直接退出规则列表,如果你配置的打开tcp 80端口写在了这一条的后面,有可能是不起作用的,就会出现浏览器无法访问,wget提示No route to host。
需要编辑/etc/sysconfig/iptables把这一条规则放到INPUT的最后面。

posted @ 2022-09-21 16:57  秋来叶黄  阅读(650)  评论(0编辑  收藏  举报