1、Centos防火墙相关
网络安全
- 开启防火墙
systemctl start firewalld.service
- 放行指定端口
firewall-cmd --zone=public --add-port=端口号/tcp --permanent
- 重启防火墙
systemctl restart firewalld.service
- 查看所有端口号
firewall-cmd --list-ports
或
netstat -ntlp #此命令如果无法运行请先安装:yum install net-tools -y
- 查看指定端口是否被占用
lsof -i tcp:6666 #查看所有6666端口使用情况
或
netstat -ntulp |grep 6666 #查看所有6666端口使用情况,此命令也可以查出占用端口的进程
- 查看&关闭占用进程
查看进程详细信息:ps 11111 #11111为进程的PID
杀掉进程:kill -9 11111
- 禁止开机启动
systemctl disable firewalld.service
- 开启开机启动
systemctl enable firewalld.service
- 查看防火墙状态
systemctl status firewalld.service
- 关闭防火墙
临时停止防火墙:systemctl stop firewalld.service
永久关闭防火墙:systemctl disable firewalld.service
2、Debian&Ubuntu防火墙相关
网络安全
- 安装防火墙(有两种防火墙,可自由选择,当然在后面的命令中需要选择对应的命令方可执行,一般系统会自带方案二,方案一可能需要安装,自己可以先试)
方案一:
apt-get update
apt-get install iptables-persistent
方案二:
apt-get update
apt-get install ufw
- 开启防火墙
service iptables start #方案一选择此命令
ufw enable #方案二选择此命令
- 放行指定端口
iptables -A INPUT -p tcp --dport 端口号 -j ACCEPT
方案二选择以下:
放行tcp或者udp端口:ufw allow 端口号/tcp
放行tcp与udp端口:ufw allow 端口号
删除指定端口:ufw delete allow 端口号
- 重启防火墙
service iptables restart #方案一选择此命令
ufw reload #方案二选择此命令
- 查看防火墙现有规则
iptables -L -n -v #方案一选择此命令
ufw status #方案二选择此命令
ufw show added #查看刚添加的规则,方案二可用此命令
- 查看所有端口号
netstat -ntlp #此命令如果无法运行请先安装:apt-get install net-tools -y
- 查看指定端口是否被占用
lsof -i tcp:6666 #查看所有6666端口使用情况
或
netstat -ntulp |grep 6666 #查看所有6666端口使用情况,此命令也可以查出占用端口的进程
- 查看&关闭占用进程
kill -9 PID
- 禁止开机启动
service iptables stop #方案一选择此命令
ufw disable #方案二选择此命令
- 开启开机启动
service iptables save #方案一选择此命令
ufw enable #方案二选择此命令
- 查看防火墙状态
service iptables status #方案一选择此命令
ufw status verbose #方案二选择此命令
- 关闭防火墙
service iptables stop #方案一选择此命令
ufw disable #方案二选择此命令
- 重置防火墙配置
ufw reset
使用 iptables 进阶限速(更专业、更灵活)
由于 UFW 只是 iptables 的外壳,提供了一个非常简单的 limit 命令,但它的功能非常有限:它只能限制 每 30 秒内 6 次连接尝试,且主要针对 TCP。
sudo ufw limit 443/udp
你可以直接通过 iptables 调用 recent 模块,设置更精细的限速策略。例如,限制每个 IP 每秒最多只能发送 10 个 UDP 包:
# 记录并检查最近的连接
sudo iptables -I INPUT -p udp --dport 443 -m state --state NEW -m recent --set
sudo iptables -I INPUT -p udp --dport 443 -m state --state NEW -m recent --update --seconds 1 --hitcount 10 -j DROP
- 解释:这段代码的意思是:如果一个 IP 在 1 秒内发起的 UDP 443 新请求超过 10 个,则直接丢弃。
在 Caddy 层面进行限速(应用层监控)
既然你前端使用了 Caddy,在应用层处理限速通常比在内核防火墙层更智能,因为它能识别具体的请求内容。
你可以安装 Caddy 的 rate-limit 插件,或者利用 Caddy 的 request_header 限制。不过,对于 UDP 443 (QUIC),Caddy 默认就会处理拥塞控制。