温馨提示×

ubuntu iptables怎么限制端口

小樊
48
2026-09-16 02:03:41
栏目: 智能运维

在 Ubuntu 下使用 iptables 限制(开放/关闭/限速)端口,常见做法如下:


一、基本前提

查看当前规则:

sudo iptables -L -n -v

保存规则(Ubuntu 一般用):

sudo apt install iptables-persistent
sudo netfilter-persistent save

二、限制端口的常见场景

1️⃣ 禁止某个端口(如 8080)

sudo iptables -A INPUT -p tcp --dport 8080 -j DROP

或拒绝并回包:

sudo iptables -A INPUT -p tcp --dport 8080 -j REJECT

2️⃣ 只允许某个 IP 访问端口(如 22)

sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

3️⃣ 限制端口只对内网开放

sudo iptables -A INPUT -p tcp --dport 3306 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 3306 -j DROP

4️⃣ 限制端口连接速率(防暴力破解)

例如限制 SSH(22)每秒最多 3 个新连接:

sudo iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/s -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

5️⃣ 限制单个 IP 并发连接数

限制 80 端口单 IP 最多 10 个连接:

sudo iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 10 -j DROP

6️⃣ 开放端口(默认 DROP 策略时)

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

三、示例:只开放必要端口

sudo iptables -P INPUT DROP
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

四、注意事项

  • Ubuntu 18.04+ 可能默认用 nftables
  • 云服务器还要注意 安全组
  • 修改 SSH 规则前务必保留当前连接

如果你有具体端口 + 使用场景(如 Docker、Web、数据库),我可以给你更精确的命令。

0 踩