温馨提示×

linux防火墙如何放行

小樊
36
2026-10-24 21:51:18
栏目: 智能运维

在 Linux 中,“放行”通常指允许某个端口 / 协议 / IP 通过防火墙。不同发行版使用的防火墙工具不同,下面按常见情况说明。


一、使用 firewalld(CentOS 7+/RHEL/Fedora)

1. 查看防火墙状态

systemctl status firewalld

2. 放行端口(如 80、443)

# 放行 TCP 80 端口(永久)
firewall-cmd --permanent --add-port=80/tcp

# 放行多个端口
firewall-cmd --permanent --add-port=80/tcp --add-port=443/tcp

# 重新加载规则
firewall-cmd --reload

3. 放行服务(已定义的服务名)

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

4. 查看已放行规则

firewall-cmd --list-all

二、使用 iptables(老版本 CentOS/部分服务器)

1. 放行端口(如 8080)

iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

2. 保存规则

# CentOS
service iptables save

# 或
iptables-save > /etc/sysconfig/iptables

三、使用 ufw(Ubuntu/Debian 常用)

1. 启用 ufw

ufw enable

2. 放行端口

ufw allow 22
ufw allow 80/tcp
ufw allow 443

3. 放行指定 IP

ufw allow from 192.168.1.100

4. 查看状态

ufw status

四、放行指定 IP 访问某端口(firewalld 示例)

firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="192.168.1.100"
port protocol="tcp" port="3306" accept'
firewall-cmd --reload

五、常见问题

  • 放行后还是不通?
    • 检查服务是否监听:ss -lntp
    • 是否有云服务器安全组限制
    • 是否未 --reload 或保存规则
  • 临时放行(重启失效)
    • firewalld 不加 --permanent
    • iptables 直接执行命令

如果你能告诉我:

  • 系统版本(CentOS / Ubuntu / 其他)
  • 放行什么(端口 / IP / 服务)

我可以给你精确命令。

0 踩