平时搞开发基本不开防火墙。但是为了测试弱网情况下软件的稳定性,所以尝试配置了一下防火墙。

安装防火墙并开启

yum install iptables-services -y
systemctl start iptables

配置防火墙

首先将所有的配置都放开(注意线上环境不要这么搞)

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

查询一下还有没有被限制的端口

iptables -L -n --line-number

凡是写了reject的,都删掉(假设你要删除的行号是7)

# iptables -D INPUT 7

配置限流

配置方法

# 设置根
tc qdisc add dev ens32 root handle 1: htb

# 设置允许的速度为1Kbps,突发最大流量为1Kbps,优先级为1
tc class add dev ens32 parent 1: classid 1:5 htb rate 1Kbps ceil 1Mbps prio 1

# 设置防火墙id与规则id对应关系,id 1:5对应防火墙标记id为5
tc filter add dev ens32 parent 1:0 protocol ip handle 5 fw flowid 1:5

# 关联到防火墙上
#设置端口6800流量标记为5,应用流量限制规则到7500端口
iptables -A OUTPUT -t mangle -p tcp --sport 6800 -j MARK --set-mark 5

TC限速字段的解释

1.rate – 您可以设置允许的带宽。
2.ceil – 您可以设置的突发带宽时,允许桶。
3.prio – 您可以设置额外的带宽优先级。 prios较低的类所提供的带宽。例如,您可以给DNS流量和HTTP下载PRIO较低。
4.iptables和TC:你需要使用iptables和TC如下:控制出站HTTP流量。

常用的操作方法

清空所有的关联的防火墙规则

iptables -t mangle -F

清空规则

tc qdisc del dev em1 root
tc -s qdisc ls dev em1

查看tc规则

tc qdisc ls dev em1
tc -s qdisc ls dev em1
tc class ls dev em1
tc -s class ls dev em1

查看防火墙

iptables -t mangle -n -v -L

防火墙限制端口

# 限制一个
iptables -A OUTPUT -p tcp --sport 6800 -j ACCEPT
# 限制多个
iptables -A OUTPUT -p tcp --sport 6800,6801 -j ACCEPT
# 限制一段
iptables -A OUTPUT -p tcp --sport 5000:9000 -j ACCEPT

配置文件所在位置

vim /etc/sysconfig/iptables
vim /etc/sysconfig/iptables-config 

保存配置的命令

service iptables save

参考网址:
https://www.cnblogs.com/cainiaoit/p/8582322.html
http://www.fx114.net/qa-178-108967.aspx
http://professor.blog.51cto.com/996189/1569481/
http://blog.csdn.net/x_i_y_u_e/article/details/43016053
http://bbs.itzmx.com/forum.php?mod=viewthread&tid=10669&page=1

posted on 2020-05-30 14:17  步孤天  阅读(477)  评论(0编辑  收藏  举报