iptables常用命令
以下命令需要以root的权限执行
> 是 > 代码显示或许有些bug
展示所有的规则:
iptables -vnL --line-numbers
如果比较特殊的,比如nat,那就需要指定类型,其他命令也一样:
iptables -t nat -vnL --line-numbers
删除规则:
iptables -D 类型 对应的序号num
这样可以删掉INPUT规则的第一条:
iptables -D INPUT 1
这样可以删掉nat中PREROUTING规则的第一条:
iptables -t nat -D PREROUTING 1
开放端口(INPUT):
开80:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
开22:
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
本地的端口转发(REDIRECT):
80转到8080:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
可以指定固定访问客户端ip实现对端口的复用:
iptables -t nat -I PREROUTING -p tcp -s 223.6.6.6 --dport 8080 -j REDIRECT --to-ports 22
远程的端口转发(DNAT):
这里配置相对比较麻烦,如果是做一下跳板简单用一下的,我推荐:showArgvSocket
开启ip路由转发功能:
临时:
echo 1 > /proc/sys/net/ipv4/ip_forward
永久:
编辑 /etc/sysctl.conf 添加到最后:
net.ipv4.ip_forward = 1
或者找到被注释的这行删掉最前面的#注释并把0改成1
应用设置:
sysctl -p
添加转发:
80转发到1.1.1.1的80:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 1.1.1.1:80
可以指定固定访问客户端ip实现对端口的复用:
iptables -t nat -I PREROUTING -p tcp -s 223.6.6.6 --dport 443 -j DNAT --to-destination 1.1.1.1:80
其他:
转发时使用 -d 可以指定服务端监听ip,这在多ip服务器上很有用,或是监听127.0.0.1仅允许本地访问
查看状态:
/etc/init.d/iptables status
启动:
/etc/init.d/iptables start
停止:
/etc/init.d/iptables stop
保存:
centos大概可以这样操作:
service iptables save
比较通用的打开姿势(以下任意一条):
iptables-save > /etc/iptables.rules
iptables-save > /etc/network/iptables.up.rules
iptables-save > /etc/iptables/rules.v4
如果咩咩的文章对你有帮助,您可以 请我喝牛奶