firewalld 配置 internal 到 public 区域的流量转发
firewalld 支持通过 Policy 对象实现跨区域流量转发。本文介绍如何配置策略,允许 internal 区域的流量转发到 public 区域,使内网主机可以通过防火墙访问外部网络。
前提条件
- firewalld 已安装并运行(
systemctl status firewalld) - 有 root 或 sudo 权限
- 了解 firewalld 的 Zone 和 Policy 概念
firewalld 支持通过 Policy 对象实现跨区域流量转发。本文介绍如何配置策略,允许 internal 区域的流量转发到 public 区域,使内网主机可以通过防火墙访问外部网络。
systemctl status firewalld)在日常运维中,我们经常需要临时切换 DNS 服务器来排查域名解析问题。传统做法是修改 /etc/resolv.conf,但在使用 systemd-resolved 的现代 Linux 发行版中,resolvectl 提供了更优雅的解决方案。
传统的修改 /etc/resolv.conf 方式有几个痛点:
/etc/resolv.conf 可能无效,因为该文件是一个指向 /run/systemd/resolve/stub-resolv.conf 的符号链接而 resolvectl 的优势:
| 特性 | 传统方式 | resolvectl |
|---|---|---|
| 修改配置文件 | ✅ | ❌ |
| 需要 root | ✅ | ❌(per-link) |
| 重启后恢复 | 需手动还原 | ✅ 自动恢复 |
| 影响范围 | 全局 | 可按网卡控制 |
# 查看全局 DNS 配置
resolvectl status
# 查看指定网卡
resolvectl status eth0
# 查看当前生效的 DNS 服务器
resolvectl dns
输出示例:
Global
Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
Resolving DNS Servers: 192.168.1.1
Fallback DNS Servers: 8.8.8.8
Link 2 (eth0)
Current Scopes: DNS
Protocols: +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
Resolving DNS Servers: 192.168.1.1
DNS Domain: lan