温馨提示×

ubuntu iptables怎样配置

小樊
41
2026-10-15 15:45:02
栏目: 智能运维

下面给你一个Ubuntu 下 iptables 的配置入门指南,从安装、基础规则到持久化保存,适合服务器防火墙配置。


一、查看与安装

1. 查看 iptables 是否已安装

sudo iptables -L -n -v

2. 安装 iptables(Ubuntu 一般自带)

sudo apt update
sudo apt install iptables

⚠️ Ubuntu 20.04+ 默认可能用 nftables,但 iptables 仍可用(作为兼容层)


二、iptables 基本概念

iptables 有三张常用表:

  • filter(默认,控制访问)
  • nat(端口转发、共享上网)
  • mangle(高级修改)

常用链(chain):

  • INPUT:进入本机的数据包
  • OUTPUT:本机发出的数据包
  • FORWARD:转发的数据包

三、基础防火墙配置(常用)

1. 清空现有规则(谨慎)

sudo iptables -F
sudo iptables -X

2. 默认策略(推荐)

sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

含义:

  • 进来的包默认拒绝
  • 出去的包默认允许

3. 允许本地回环

sudo iptables -A INPUT -i lo -j ACCEPT

4. 允许已建立连接

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

5. 开放 SSH(非常重要)

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

6. 开放 Web 服务

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

四、查看规则

sudo iptables -L -n --line-numbers

五、删除规则

按编号删除

sudo iptables -D INPUT 3

按规则删除

sudo iptables -D INPUT -p tcp --dport 22 -j ACCEPT

六、端口转发(NAT 示例)

1. 开启转发

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

2. 配置 NAT

sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.10:80
sudo iptables -t nat -A POSTROUTING -j MASQUERADE

七、保存 iptables 规则(非常重要)

Ubuntu 保存方式

方法 1(推荐)

sudo apt install iptables-persistent
sudo netfilter-persistent save
sudo netfilter-persistent reload

规则保存在:

/etc/iptables/rules.v4

八、开机自启

iptables-persistent 默认开机加载规则。


九、简单完整示例(Web 服务器)

sudo iptables -F
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

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

sudo netfilter-persistent save

十、建议

  • 新手可先用 ufw(iptables 简化工具)
sudo ufw enable
sudo ufw allow 22
sudo ufw allow 80

如果你告诉我:

  • Ubuntu 版本
  • 是服务器还是桌面
  • 需要开放哪些端口 / 是否做 NAT

我可以给你定制 iptables 规则。

0 踩