先说说什么是 NAT。
在传统的标准的 TCP/IP 通信过程中,所有的路由器仅仅是充当一个中间人的角色,也就是通常所说
的存储转发,路由器并不会对转发的数据包进行修改,更为确切的说,除了将源 MAC 地址换成自己的
MAC 地址以外,路由器不会对转发的数据包做任何修改。NAT(NetworkAddressTranslation 网络地
址翻译)就是出于某种特殊需要而对数据包的源 ip 地址、目的 ip 地址、源端口、目的端口进行改写的操作。
NAT 分为 SNAT(SourceNetworkAddressTranslation)和 DNAT(DestinationNetworkAddres
sTranslation)。顾名思义,SNAT 就是源地址翻译,平时所说的 NAT 就是指这个,它可以让一个局域网
里的计算机来共享一个 IP 上网。DNAT 就是目的地址翻译,平时所说的端口映射就是它了,它可以让外
部的计算机来访问局域网内的机器,比如,你在局域网内建了个 Web 服务器,想让外面的用户来访问它,
那 NDAT 就很有用了。
下面就说说在 Windows 下面如何实现 SNAT 和 DNAT。
以 Windows2003 为例,我的外网 IP 为 172.18.10.12(也是个内部 IP,没办法,在学校的局域网里),
内部的局域网为 192.168.100.0/24,其中一台机子为 192.168.100.10,我在 192.168.100.10 这台
机子上建了一个 Web 服务器,端口是 80,我现在是要让局域网内的机器全部上网,而且把
192.168.100.10 映射到 172.18.10.12 这台机器的 8080 端口上去,以方便局域网外的用户来访问这
个 Web 服务器。
首先,172.18.10.12 这台机器要有两个网卡,(其实一个也可以,不过这样会增加网络负担,而且安全
性也不好,就不多说单网卡的方法了,反正网卡又不贵,:))。其中一个连接外网,一个连接内网。而且,
要先禁用 Windows 自带的防火墙(那我想用 Windows 自带的防火墙怎么办?没事的,下面可以在 NAT
上启用防火墙)。
打开控制面板中的“管理工具”-》“路由和远程访问”,在控制台的本地机上点右键启用路由和远程访问
它会以向导的模式启动配置界面,点下一步,会有几个选项。我们选择“网络地址转换(NAT)”。