5.3. 使用 DNAT 转发传入的 HTTP 流量


您可以使用目标网络地址转换(DNAT)将传入的流量从一个目标地址和端口定向到另一个目标地址和端口。通常,这对于将来自外部网络接口的传入请求重定向到特定的内部服务器或服务非常有用。

先决条件

  • firewalld 服务在运行。

流程

  1. 转发传入的 HTTP 流量:

    # firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toaddr=198.51.100.10:toport=8080 --permanent
    Copy to Clipboard Toggle word wrap

    之前的命令使用以下设置定义 DNAT 规则:

    • --zone=public - 您为其配置 DNAT 规则的防火墙区域。您可以将其调整到您需要的任何区域。
    • --add-forward-port - 指示您正在添加端口转发规则的选项。
    • port=80 - 外部目标端口。
    • proto=tcp - 表示您转发 TCP 流量的协议。
    • toaddr=198.51.100.10 - 目标 IP 地址。
    • toport=8080 - 内部服务器的目标端口。
    • --permanent - 使 DNAT 规则在重启后保持不变的选项。
  2. 重新载入防火墙配置以应用更改:

    # firewall-cmd --reload
    Copy to Clipboard Toggle word wrap

验证

  • 验证您使用的用于防火墙区域的 DNAT 规则:

    # firewall-cmd --list-forward-ports --zone=public
    port=80:proto=tcp:toport=8080:toaddr=198.51.100.10
    Copy to Clipboard Toggle word wrap

    或者,查看相应的 XML 配置文件:

    # cat /etc/firewalld/zones/public.xml
    <?xml version="1.0" encoding="utf-8"?>
    <zone>
      <short>Public</short>
      <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
      <service name="ssh"/>
      <service name="dhcpv6-client"/>
      <service name="cockpit"/>
      <forward-port port="80" protocol="tcp" to-port="8080" to-addr="198.51.100.10"/>
      <forward/>
    </zone>
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat