案例
我在服务器上有一个虚拟机,需要将虚拟机(内网)的某个端口转发到公网上面。下面利用 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
命令如下:
在服务器上执行,虚拟机无需任何改动:
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 3388 -j ACCEPT iptables -t nat -A PREROUTING -s 0/0 -d -p tcp --dport 3388 -j DNAT --to 192.168.122.11:3389 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 文件,保存命令即可。
评论前必须登录!
立即登录 注册