系统:Ubuntu 20.04
iptables生效的顺序:排在前面的会覆盖掉后面的。比如先增加一条REJECT规则,又增加了一个ACCEPT规则,如果这两个规则是对同一个条件设置的,那么后者会覆盖前者。
1.给filter表增加一条drop规则:
# -t表示table,默认是filter表,因此这里可以省略掉-t这个参数
# -A表示Add,-j表示操作类型,-p表示协议,--dport表示目的端口
# 如果本地收到一个tcp数据包,数据包的访问端口是8081的话,那么直接丢弃掉
iptables -t filter -A INPUT -j DROP -p tcp --dport 8081
2.查看规则:
# 不加INPUT表示查看所有
iptables -t filter -L INPUT
3.删除:
iptables -t filter -D INPUT 1
4.配置OUTPUT链:
# 本机发往192.168.1.10地址的tcp包,自动扔掉
iptables -t filter -A OUTPUT -j DROP -p tcp -d 192.168.1.10
5.nat表示:
# 如果访问本机的tcp包指向7788端口,那么就转发到192.168.1.10的7799端口上
iptables -t nat -A PREROUTING -p tcp --dport 7788 -j DNAT --to 192.168.1.10:7799
# 上面的规则可以实现转发,但无法实现响应,因此需要增加下面的规则
iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.10 --dport 7799 -j SNAT --to 192.168.1.11