Linux iptables 内网转发映射方案

案例

我在服务器上有一个虚拟机,需要将虚拟机(内网)的某个端口转发到公网上面。下面利用 iptables 做一下转发。

示例如下:
服务器:
公网 IP 地址:195.152.152.52
网卡出网端口:eno1
需要转发到的端口:3388

虚拟机:
内网 IP 地址:192.168.122.11
内网网关地址:192.168.122.1
需要映射到公网的端口:3389

方法

临时方法:
首先开启 ip 转发,这个在服务器上面一般是开启的,所以不用:
echo 1 > /proc/sys/net/ipv4/ip_forward

命令如下:

在服务器上执行,虚拟机无需任何改动:

  1. iptables A INPUT p tcp m state state NEW m tcp dport 3388 j ACCEPT
  2. iptables t nat A PREROUTING s 0/0 d p tcp dport 3388 j DNAT to 192.168.122.11:3389
  3. iptables t nat A POSTROUTING d 192.168.122.11 p tcp dport 3389 o eno1 j SNAT to 192.168.122.1

这样即可完成转发。只转发 tcp 数据。

如需重启后仍然生效,可编辑 iptables 文件,保存命令即可。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

11 + 2 =

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据