windows、linux做nat映射

本文介绍如何通过一台Linux服务器实现内网中两台Windows服务器的公网NAT映射及端口转发配置。包括设置默认路由、修改防火墙规则、使用iptables进行端口映射等步骤。
公司需求要在内网的两台windows服务器做公网nat映射,并且定制端口,由于本人还是对linux熟悉点,就还是以一台linux服务器做转发完成。
参考网站:
http://www.cnblogs.com/JemBai/archive/2009/03/19/1416364.html
http://wqmsl.blog.51cto.com/847418/404283
http://www.chinaitlab.com/www/special/linux11.asp
环境如下:  
     1. 在局域网的客户机上配置路由指向,要对应到dnat服务器的网关。
     2. 提供服务的机器上,默认路由要配置了dnat的网关
      环境:client windows 2008   192.168.1.100    255.255.255.0
                                                192.168.1.1
                                                10.1.16.11
               tomcat服务端口:8091

      nat server linux 6.4  192.168.1.101   255.255.255.0
                            10.1.134.230    255.255.255.0
                            10.1.134.1
                            10.1.16.11

1.在windows环境命令如下:
查看路由表信息:route print
如果没有指向则删除原指向
#route delete 192.168.1.101
#route delete 0.0.0.0
添加新指向到ip地址为192.168.1.101。
#route add 0.0.0.0 mask 0.0.0.0 192.168.1.101

linux下:
# route add -host 10.20.30.148 gw 10.20.30.40 添加到网络的路由 
# route add -net 10.20.30.48 netmask 255.255.255.248 gw 10.20.30.41
添加默认路由  
# route add default gw 192.168.1.1
删除路由  
# route del -host 192.168.1.2 dev eth0:0 
# route del -host 10.20.30.148 gw 10.20.30.40 

linux server主机配置:
将防火墙改为路由模式:
#vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
#sysctl -p
或者
#echo "1" > /proc/sys/net/ipv4/ip_forward
将防火墙规则清空:
#iptables -F
#iptables -Z
#iptables -X

添加dnat映射:
#iptables -t nat -A PREROUTING -d 10.1.134.230 -p tcp --dport 8091 -j DNAT --to 192.168.1.100:8091

#iptalbes-restore < iptables.txt(将txt文本重载)
修改filer文件如下:(可见linux主机中的iptables.txt文件)
# Generated by iptables-save v1.4.7 on Tue Apr 22 11:37:52 2014
*raw
:PREROUTING ACCEPT [32523:5305427]
:OUTPUT ACCEPT [129:17789]
COMMIT
# Completed on Tue Apr 22 11:37:52 2014
# Generated by iptables-save v1.4.7 on Tue Apr 22 11:37:52 2014
*mangle
:PREROUTING ACCEPT [32523:5305427]
:INPUT ACCEPT [8148:1355554]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [129:17789]
:POSTROUTING ACCEPT [129:17789]
COMMIT
# Completed on Tue Apr 22 11:37:52 2014
# Generated by iptables-save v1.4.7 on Tue Apr 22 11:37:52 2014
*nat
:PREROUTING ACCEPT [2122:416096]
:POSTROUTING ACCEPT [1:60]
:OUTPUT ACCEPT [1:60]
-A PREROUTING -d 10.1.134.230/32 -p tcp -m tcp --dport 8091 -j DNAT --to-destination 192.168.1.100:8091
-A PREROUTING -d 10.1.134.230/32 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:8080
-A PREROUTING -d 10.1.134.230/32 -p tcp -m tcp --dport 1521 -j DNAT --to-destination 192.168.1.100:1521
-A PREROUTING -d 10.1.134.230/32 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.1.103:8080
COMMIT
# Completed on Tue Apr 22 11:37:52 2014
# Generated by iptables-save v1.4.7 on Tue Apr 22 11:37:52 2014
*filter
:INPUT ACCEPT [973221:107128571]
:FORWARD ACCEPT [6717:5975620]
:OUTPUT ACCEPT [2876611:5736225559]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22:10000 -j ACCEPT
COMMIT

# Completed on Tue Apr 22 11:37:52 2014
 #service iptables save
#service iptables restart 
如果您在 Linux 虚拟机中运行着 Windows 系统,想要进行 NAT 端口映射,可以按照以下步骤进行: 1. 首先,在 Linux 主机上安装并启动虚拟机,确保虚拟机可以正常运行。 2. 在 Linux 主机中打开终端,输入以下命令安装 iptables: ``` sudo apt-get install iptables ``` 3. 确认 iptables 已经安装成功,输入以下命令查看 iptables 版本: ``` iptables --version ``` 4. 在 Linux 主机中打开终端,输入以下命令开启 IP 转发功能: ``` sudo sysctl net.ipv4.ip_forward=1 ``` 5. 在 Linux 主机中打开终端,输入以下命令添加 NAT 规则,将主机的 8888 端口映射到虚拟机的 80 端口上: ``` sudo iptables -t nat -A PREROUTING -p tcp --dport 8888 -j DNAT --to-destination 虚拟机IP:80 ``` 其中,虚拟机 IP 是指 Windows 虚拟机的 IP 地址。 6. 在 Linux 主机中打开终端,输入以下命令添加防火墙规则,允许外部主机访问主机的 8888 端口: ``` sudo iptables -A FORWARD -p tcp -d 虚拟机IP --dport 80 -j ACCEPT ``` 7. 在 Windows 虚拟机中打开浏览器,输入主机的 IP 地址和 8888 端口号,例如 http://主机IP:8888,即可访问虚拟机的 80 端口。 注意事项: - 请务必将命令中的“虚拟机IP”替换成实际的虚拟机 IP 地址。 - 在防火墙中开放相应的端口,以允许外部主机访问虚拟机。 - 以上命令仅在当前会话中生效。如果您希望永久生效,请将这些命令添加到适当的启动脚本中。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值