iptables配置中新增允许公网访问的端口
编辑本文章用于记录iptables配置中新增允许公网访问的端口,取自与deepseek的问答,写成文章以做备忘
root@rbm-GJHCEmOw:~# iptables -L INPUT -n -v --line-numbers
Chain INPUT (policy DROP 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 135 62756 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
2 241 23414 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
3 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
4 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:2718
5 4 256 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:23333
6 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:24444
7 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpts:31000:31008
8 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:7500
9 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:7501
10 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:7000
11 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:7001
12 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 match-set china src
13 1 60 GEO_BLOCK all -- * * 0.0.0.0/0 0.0.0.0/0
root@rbm-GJHCEmOw:~#
我按照你说的设置好了(如上所示),请告诉我,后续我要新增端口(TCP或者UDP)允许公网访问应该怎么做
要在现有 iptables
配置中新增允许公网访问的端口(TCP/UDP),需要确保规则插入到正确的位置,避免被后续的 GEO_BLOCK
或 ACCEPT china
规则覆盖。以下是具体步骤:
1. 新增端口的规则插入位置
根据你的当前规则顺序:
1-11: 允许指定端口(如22、2718等)
12: 允许中国IP(match-set china)
13: GEO_BLOCK
关键原则:新增的端口规则必须插入在 规则12(允许中国IP)之前,否则非中国IP的流量会被
GEO_BLOCK
拦截,导致新端口无法公网访问。
2. 操作步骤(以新增 TCP 端口 12345
和 UDP 端口 54321
为例)
2.1 插入 TCP 端口规则
iptables -I INPUT 12 -p tcp --dport 12345 -j ACCEPT
-I INPUT 12
:将规则插入到第12条的位置(原规则12及后续规则会自动后移)。-p tcp --dport 12345
:匹配 TCP 端口 12345。
2.2 插入 UDP 端口规则
iptables -I INPUT 12 -p udp --dport 54321 -j ACCEPT
-p udp --dport 54321
:匹配 UDP 端口 54321。
3. 验证规则顺序
执行以下命令查看插入后的规则顺序:
iptables -L INPUT -n -v --line-numbers
输出应类似:
...
11 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:7001
12 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:12345 <-- 新增的TCP端口
13 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:54321 <-- 新增的UDP端口
14 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 match-set china src
15 GEO_BLOCK all -- 0.0.0.0/0 0.0.0.0/0
...
4. 保存规则
确保规则永久生效:
iptables-save > /etc/iptables/rules.v4
5. 测试端口连通性
从外网使用 nmap
或 telnet
测试新增端口:
nmap -p 12345 你的服务器IP
6. 其他注意事项
同时开放 TCP 和 UDP
如果某个服务需要同时使用 TCP 和 UDP(如 DNS、游戏服务器),需分别添加两条规则:iptables -I INPUT 12 -p tcp --dport 12345 -j ACCEPT iptables -I INPUT 12 -p udp --dport 12345 -j ACCEPT
删除旧规则
若需要删除旧规则,先查看编号:iptables -L INPUT --line-numbers
然后删除指定编号的规则:
iptables -D INPUT 12
调整默认策略
确保INPUT
链的默认策略为DROP
,否则可能绕过规则:iptables -P INPUT DROP
通过以上步骤,你可以安全地新增允许公网访问的端口,同时保留原有的 IP 地域过滤逻辑。
- 0
- 0
-
分享