iptables配置公网DNAT转发

iptables配置公网DNAT转发

更新时间:2020-05-08 22:52:21

免责声明: 本文档可能包含第三方产品信息,该信息仅供参考。阿里云对第三方产品的性能、可靠性以及操作可能带来的潜在影响,不做任何暗示或其他形式的承诺。

概述

本文主要介绍如何通过iptables配置公网地址的DNAT。

详细信息

本文的配置环境为A实例和B实例,A实例的公网地址为[$Public_IP1],内网地址为[$IP1],B实例公网地址为[$Public_IP2],内网地址为[$IP2],且2个实例都属于同一个VPC网络。将A实例的30001端口请求转发到B实例的80端口。

  1. 执行以下命令,入方向流量通过A实例的内网地址转发到B实例。
    说明:如果是经典网络,可以使用公网IP转发。
    iptables -t nat -A PREROUTING -p tcp -d [$IP1] --dport 30001 -j DNAT --to [$Public_IP2]:80
  2. 执行以下命令,在出方向将报文中源IP修改为A实例的IP。
    iptables -t nat -A POSTROUTING -d [$Public_IP2] -j SNAT --to-source [$IP1]
  3. 以上iptables规则配置完成后,还需要开启A实例的ip_forward功能。
    • 临时配置
      echo 1 > /proc/sys/net/ipv4/ip_forward
    • 永久配置
      编辑/etc/sysctl.conf文件,将net.ipv4.ip_forward的值修改为1,保存并退出,然后执行sysctl -p命令使配置生效。

适用于

  • 云服务器ECS