背景

由于项目需要在物理服务器(centos系统)上面安装KVM虚拟机后,使用的NAT模式,需要将虚拟机提供服务的端口进行映射出来
开始考虑使用NGINX,但是HTTPS和SSH只能走4层,所以干脆直接用Iptables进行转发

开启系统的转发功能

/etc/sysctl.conf文件

net.ipv4.ip_forward=1

iptables 命令

iptables -t nat -A PREROUTING -p tcp –dport [端口号] -j DNAT –to-destination [目标IP:目标端口]
iptables -t nat -A POSTROUTING -p tcp -d [目标IP] –dport [目标端口] -j SNAT –to-source [本地服务器IP]
iptables -t filter -I FORWARD -d 目标IP -j ACCEPT
iptables -t filter -I FORWARD -s 目标IP -j ACCEPT
iptables -t filter -I -A INPUT -s 0.0.0.0/0 -m multiport -p tcp –dport 目标端口 -j ACCEPT

重启 iptables 使配置生效

service iptables save
service iptables restart

扩展需求

多端口转发修改方案: ( 将本地服务器的 50000~65535 转发至目标 IP 为 1.1.1.1([目标IP]) 的 50000~65535 端口 )

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 50000:65535 -j DNAT --to-destination  [目标IP]
iptables -t nat -A POSTROUTING -d [目标IP] -p tcp -m tcp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]
iptables -t filter -I FORWARD -d 目标IP -j ACCEPT
iptables -t filter -I FORWARD -s 目标IP -j ACCEPT
iptables -t filter -I -A INPUT -s 0.0.0.0/0 -m multiport -p tcp --dport 50000:65535 -j ACCEPT

本博客所有内容采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可

转载文章请注明:使用iptables进行端口转发 - https://yangxx.net/?p=3438

分类: linux

young

记住该记住的,忘记该忘记的,改变能改变的,接受不能改变的!

发表评论

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

我不是机器人*