温馨提示×

Debian iptables怎么开放端口

小樊
43
2026-07-15 09:27:28
栏目: 智能运维

在 Debian 系统中,使用 iptables 开放端口(以开放 TCP 80 端口为例)可按以下步骤操作。


一、确认 iptables 已安装

sudo apt update
sudo apt install iptables

查看当前规则:

sudo iptables -L -n

二、开放指定端口(临时生效)

开放 TCP 端口(如 80)

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

开放 UDP 端口(如 53)

sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT

三、确保 INPUT 链默认策略允许(常见配置)

如果 INPUT 默认是 DROP,需要允许已建立连接:

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

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

Debian 重启后规则会丢失,需要保存。

方法 1:使用 iptables-persistent(推荐)

sudo apt install iptables-persistent

安装时会提示保存当前规则,选择 Yes

之后保存规则:

sudo netfilter-persistent save

规则保存在:

/etc/iptables/rules.v4
/etc/iptables/rules.v6

方法 2:手动保存(不推荐)

sudo iptables-save > /etc/iptables/rules.v4

开机恢复(需自行配置):

iptables-restore < /etc/iptables/rules.v4

五、常用示例

开放 SSH(22)

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

开放多个端口

sudo iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT

指定 IP 访问端口

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

六、常见问题

1. 端口开放后仍无法访问?

  • 检查服务是否监听:
ss -lntp
  • 是否被云服务器安全组拦截
  • 是否被 ufwnftables 覆盖

2. Debian 新版本是否还用 iptables?

  • Debian 10+ 默认使用 nftables
  • iptables 实际是兼容层
  • 新系统建议学习 nftables

如果你愿意,可以告诉我:

  • Debian 版本(cat /etc/debian_version
  • 要开放的端口
  • 是服务器还是本地虚拟机

我可以给你精确可用的规则

0