如何在IPTables防火墙上添加新的规则?
美国、香港服务器
如何在IPTables防火墙上添加新的规则?
06-29 来源:
一、基础语法
bash
运行
iptables -A 链名 匹配条件 -j 动作
-A:Append,在链末尾追加一条规则(最常用)
-I:Insert,在链开头插入一条规则(优先级最高)
链:INPUT(别人访问本机)、OUTPUT、FORWARD
-j ACCEPT:放行;-j DROP:丢弃;-j REJECT:拒绝并返回提示
二、常用添加规则示例
1. 放行单个 TCP 端口(比如 SSH 2222)
bash
运行
iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
2. 放行多个连续端口
放行 10000-20000 TCP 端口:
bash
运行
iptables -A INPUT -p tcp --dport 10000:20000 -j ACCEPT
3. 放行多个离散端口
bash
运行
iptables -A INPUT -p tcp -m multiport --dports 80,443,8080 -j ACCEPT
4. 放行 UDP 端口
bash
运行
iptables -A INPUT -p udp --dport 3390 -j ACCEPT
5. IP 白名单:仅指定公网 IP 访问某个端口(最安全)
只允许 112.123.1.1 访问 2222 端口:
bash
运行
iptables -A INPUT -s 112.123.1.1/32 -p tcp --dport 2222 -j ACCEPT
6. 放行整个内网网段
bash
运行
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
7. 拒绝某个 IP 所有访问本机
bash
运行
iptables -A INPUT -s 103.20.30.40 -j DROP
8. 只允许已建立的连接回包(必须提前配置)
bash
运行
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
9. 本地回环网卡必须放行(127.0.0.1)
bash
运行
iptables -A INPUT -i lo -j ACCEPT
三、插入规则到最前面(高优先级)
用 -I,拦截 / 白名单规则建议放最顶部:
bash
运行
# 第一条就拒绝恶意IP
iptables -I INPUT -s 103.20.30.40 -j DROP
四、查看规则(确认是否添加成功)
bash
运行
# 带行号查看
iptables -nL --line-numbers
五、删除错误规则
先看行号
根据行号删除
bash
运行
iptables -D INPUT 5
六、保存规则(关键,防止重启失效)
CentOS Stream9
bash
运行
service iptables save
# 配置文件路径:/etc/sysconfig/iptables
Ubuntu 24.04
bash
运行
# 导出规则
iptables-save > /etc/iptables/rules.v4
# 或者用工具保存
netfilter-persistent save
通用保存恢复方式:
bash
运行
# 备份规则
iptables-save > /etc/iptables.bak
# 重启后恢复规则
iptables-restore < /etc/iptables.bak
七、最简安全初始化模板(可直接执行)
bash
运行
# 清空旧规则
iptables -F
iptables -X
# 默认入站拒绝,出站允许
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# 放行本地回环
iptables -A INPUT -i lo -j ACCEPT
# 放行已有连接
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# 放行你的运维IP SSH
iptables -A INPUT -s 你的公网IP/32 -p tcp --dport 2222 -j ACCEPT
# 放行网站
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快