一、基础操作:firewalld 服务管理

  1. 查看防火墙状态

    bash

    systemctl status firewalld
    

    若显示active (running),表示防火墙已开启;若为inactive (dead),则需开启。

  2. 开启 / 关闭 / 重启防火墙

    bash

    # 开启防火墙
    systemctl start firewalld
    
    # 关闭防火墙(不建议,仅临时测试用)
    systemctl stop firewalld
    
    # 重启防火墙(配置生效)
    systemctl restart firewalld
    
    # 设置开机自启
    systemctl enable firewalld
    
    # 禁止开机自启
    systemctl disable firewalld
    

二、核心配置:防火墙规则管理

1. 查看当前规则

bash

# 查看默认区域(通常为public)的所有规则
firewall-cmd --list-all

# 查看所有区域的规则
firewall-cmd --list-all-zones

# 查看开放的端口
firewall-cmd --list-ports

# 查看允许的服务
firewall-cmd --list-services
2. 开放端口(临时 / 永久)
  • 临时开放(重启防火墙后失效):

    bash

    # 开放TCP端口(如80端口)
    firewall-cmd --add-port=80/tcp
    
    # 开放UDP端口(如53端口)
    firewall-cmd --add-port=53/udp
    
    # 开放端口范围(如1000-2000)
    firewall-cmd --add-port=1000-2000/tcp
    
  • 永久开放(需重新加载生效):在临时命令后加 --permanent,并重新加载规则:

    bash

    firewall-cmd --add-port=80/tcp --permanent
    # 重新加载规则(使永久配置生效)
    firewall-cmd --reload
    
3. 关闭已开放的端口

bash

# 临时关闭
firewall-cmd --remove-port=80/tcp

# 永久关闭
firewall-cmd --remove-port=80/tcp --permanent
firewall-cmd --reload
4. 允许 / 禁止服务

firewalld 预设了常见服务(如 ssh、http、ftp 等)的端口配置,可直接通过服务名操作:

bash

# 永久允许http服务(对应80端口)
firewall-cmd --add-service=http --permanent

# 永久禁止ssh服务(谨慎操作,可能导致远程连接断开)
firewall-cmd --remove-service=ssh --permanent

# 重新加载生效
firewall-cmd --reload
5. 配置端口转发

例如,将本机 8080 端口转发到 192.168.1.100 的 80 端口:

bash

# 临时转发
firewall-cmd --add-forward-port=port=8080:proto=tcp:toaddr=192.168.1.100:toport=80

# 永久转发
firewall-cmd --add-forward-port=port=8080:proto=tcp:toaddr=192.168.1.100:toport=80 --permanent
firewall-cmd --reload
6. 限制 IP 访问
  • 允许特定 IP 访问本机所有端口:

    bash

    firewall-cmd --add-rich-rule="rule family='ipv4' source address='192.168.1.10' accept" --permanent
    
  • 禁止特定 IP 访问 80 端口:

    bash

    firewall-cmd --add-rich-rule="rule family='ipv4' source address='192.168.1.20' port protocol='tcp' port='80' reject" --permanent
    
  • 生效配置:

    bash

    firewall-cmd --reload
    

三、使用 iptables(备用方案)

若系统未使用 firewalld,或需要更复杂的规则,可直接操作 iptables:

  1. 查看规则

    bash

    iptables -L -n
    
  2. 开放端口(如允许 22 端口 SSH 连接)

    bash

    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    
  3. 保存规则(防止重启失效)麒麟 V10 通常使用iptables-save保存:

    bash

    iptables-save > /etc/sysconfig/iptables
    

四、注意事项

  1. 配置后需通过 firewall-cmd --reload 或重启防火墙使规则生效。
  2. 远程操作时,禁止 SSH 服务(22 端口)可能导致连接断开,需谨慎。
  3. 若需通过图形界面配置,可在麒麟 V10 的 “系统设置”→“安全中心”→“防火墙” 中操作,更直观但功能有限。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐