原創 2017年06月13日 14:47:45windows
最近有一臺Esxi服務器須要作託管,只有一個公網ip,可是全部虛擬機又都須要訪問公網,我在Esxi裏沒有找到相似Vmware workstation 的NAT網絡模式,因此我想使用一臺虛擬機作NAT服務器。個人虛擬機系統有Win2008 和 CentOS7,考慮到穩定性我選擇了在Linux上實現。 如下是我在筆記本上用Vmware WorkStation 作的模擬實驗:centos
yum -y update
yum -y install net-tools.x86_64
二、配置IP地址服務器
[root@test ~]# ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.32.130 netmask 255.255.255.0 broadcast 192.168.32.255 inet6 fe80::20c:29ff:fe4c:4213 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:4c:42:13 txqueuelen 1000 (Ethernet) RX packets 6525 bytes 2334108 (2.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4816 bytes 2671369 (2.5 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eno33554984: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.10.1 netmask 255.255.255.0 broadcast 192.168.10.255 inet6 fe80::20c:29ff:fe4c:421d prefixlen 64 scopeid 0x20<link> ether 00:0c:29:4c:42:1d txqueuelen 1000 (Ethernet) RX packets 5656 bytes 1625792 (1.5 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 3596 bytes 3461007 (3.3 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
個人兩塊網卡分別爲 eno16777736 和 eno33554984,我打算將eno16777736 做爲外網訪問,故IP保持默認DHCP自動分配,這邊分配到的IP爲 192.168.32.130
。eno33554984 做爲內網訪問,ip設置靜態 192.168.10.1
,ip具體設置方法再也不累述。網絡
三、啓用IP轉發
修改 /etc/sysctl.conf 文件,添加以下行tcp
net.ipv4.ip_forward = 1
使用 sysctl -p
命令生效工具
四、修改接口區域
默認狀況下兩塊網卡的zone爲public,如今須要將eno16777736 設置爲 external,將 eno33554984 設置爲 internal。測試
firewall-cmd --zone=external --change-interface=eno16777736 --permanent firewall-cmd --zone=internal --change-interface=eno33554984 --permanent
其中 --permanent
表示永久生效。spa
五、設置IP地址假裝.net
firewall-cmd --zone=external --add-masquerade --permanent
六、設置NAT規則code
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o eno16777736 -j MASQUERADE -s 192.168.10.0/24
七、設置生效
firewall-cmd --reload
八、驗證
在win7虛擬機中配置ip爲 192.168.10.10
,網關192.168.10.1
,如圖
ping 百度測試網絡是否連通
至此,NAT服務器配置完成。
firewall-cmd --zone=external --add-forward-port=port=3389:proto=tcp:toport=3389:toaddr=192.168.10.10 --permanent firewall-cmd --reload
查看設置,我這裏設置了兩個端口
[root@test ~]# firewall-cmd --zone=external --list-forward-ports port=3389:proto=tcp:toport=3389:toaddr=192.168.10.10 port=5000:proto=udp:toport=5000:toaddr=192.168.10.10
驗證端口映射:
在物理機上使用 mstsc 工具,鏈接CentOS 的外網IP ,即一開始提到的 192.168.32.130
好了,實驗完畢。由於我全部的虛擬機都是靜態ip,因此沒有安裝DHCP服務。