网络结构以下:服务器
NAT,即网络地址转换。如上图中三台机器,C服务器配置内网IP,B服务器能够正常上网同时打开了核心转发功能,B、C之间能够互相通讯。但C没法访问外网,缘由是当192.168.2.10访问192.168.1.10时(即内网访问外网),C的数据包能够正常发送给A,可是C是内网地址,服务器A的响应包是没法发送C的,因此须要进行地址转换。步骤以下:网络
一、服务器B打开核心转发功能(略);tcp
二、在服务器B的防火墙上配置NAT,咱们要让C能够正常访问外网,防火墙配置以下;ide
# iptables -t nat POSTROUTING -s 192.168.2.0/24 ! -d 192.168.2.0/24 -j SNAT --to-source 192.168.1.1 ########################### 将源地址为192.168.2.0/24,目标地址不为192.168.2.0/24的数据包中的源地址转换成192.168.1.1
三、假设服务器C为HTTP服务器,配置了公网IP。如今不但愿别人知道网站的实际IP地址网站
# iptables -t nat PREROUTING -d 192.168.1.1 -j DNAT --to-destination 192.168.2.10 ########################### 192.168.1.1将全部接收到的全部数据包转给192.168.2.10,避免直接访问192.168.2.10
源地址转换:能够理解为内网须要访问公网时配置spa
iptables -t nat -A POSTROUTING -s LocalNET ! -d LocalNet -j SNAT --to-source ExtIP(外部IP)blog
iptables -t nat -A POSTROUTING -s LocalNET ! -d LocalNet -j MASQUERADE(地址假装,当外部地址不固定时)ip
目标地址转换:能够理解为公网与内网之间通讯get
iptables -t nat -A PREROUTING -d ExtIP -p tcp|udp --dport PORT -j DNAT --to-destination InterServerIP[:PORT]it