通过 iptables 完成端口转发

好风 发表于 2018-05-03T12:46:55.717457Z
引用地址:https://plus.ooclab.com/note/article/1408

如果我们有一台 Linux 服务器有公网IP,如何将将内部IP和端口映射到这台有公网IP的服务器呢?

环境

  • 有公网IP的服务器安装操作系统 CentOS 7.4 x86_64
  • kvm + libvirtd 创建了虚拟机 192.168.122.96 , 其中端口 7480 启动了 ceph rgw HTTP Server

目标 :通过访问公网IP + 端口 17480 即可访问内部的 http://192.168.122.96:7480 服务。

首先打开 ip forward 功能:

echo 1 > /proc/sys/net/ipv4/ip_forward

其次创建 iptables 规则:

iptables -A PREROUTING -t nat -i em1 -p tcp --dport 17480 -j DNAT --to 192.168.122.96:7480
iptables -A FORWARD -p tcp -d 192.168.122.96 --dport 7480 -j ACCEPT