一台服务器上的虚拟机A,安装的ubuntu系统,作为website服务器,配有公网地址,现在需要安装另外一套web演示系统端口8888,又没有公网地址了,因为是IDC服务器,前面也没有路由可以做端口映射,这时候我们就利用虚拟机A来做一个端口转发吧。 首先给虚拟机A再添加一张网卡,为host-only模式,IP地址为172.16.0.1,虚拟机B的网卡也为host-only模式,安装好虚拟机B的系统后配置IP为172.16.0.2,然后相互ping一下,没问题的话这台主机已经互通了。接下来我们先在ubuntu系统上打开转发设置:
- echo 1 > /proc/sys/net/ipv4/ip_forward
这样设置重新启动后就失效了,常用办法是把该句写入到 rc.local 脚本中,更高级的办法是编辑 /etc/sysctl 文件激活 net.ipv4.ip_forward = 1 ,然后运行 sysctl -p 立即生效。
然后添加iptables规则:
- iptables -t nat -A PREROUTING -d 218.x.x.x -p tcp --dport 8887 -j DNAT --to 172.16.0.2:8887
添加成功后,再在虚拟机B上做一条默认路由,网关指向172.16.0.1,我们就可以通过 218.x.x.x:8888 这个公网IP来访问我们的虚拟机B了。
nat规则:
- iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j SNAT --to 192.168.2.148
-t nat 操作nat表
-A POSTROUTING 修改源地址
-s 10.10.10.0/24 指定来源地址
-o eth0 指定出接口
-j SNAT 修改源地址映射
--to 192.168.2.148,修改后的地址
#保存配置:
iptables-save > /etc/iptables
#加载配置(该命令保存与 rc.local 脚本中):
sed -i '/^exit/i\iptables-restore /etc/iptables' /etc/rc.local
阅读(1288) | 评论(0) | 转发(0) |