CentOS7 配置NAT服務器以及端口映射

CentOS7 配置NAT服務器以及端口映射

原創 2017年06月13日 14:47:45windows

  • 3227

最近有一臺Esxi服務器須要作託管,只有一個公網ip,可是全部虛擬機又都須要訪問公網,我在Esxi裏沒有找到相似Vmware workstation 的NAT網絡模式,因此我想使用一臺虛擬機作NAT服務器。個人虛擬機系統有Win2008 和 CentOS7,考慮到穩定性我選擇了在Linux上實現。 如下是我在筆記本上用Vmware WorkStation 作的模擬實驗:centos

  • 先介紹一下實驗環境
  • 物理機:Windows 10 + Vmware WorkStation 12
  • 虛擬機1:windows 7 ,虛擬單網卡 NAT
  • 虛擬機2:CentOS7 最小化安裝,雙虛擬網卡 NAT 
    CentOS7配置 
    因爲兩臺虛擬機的網卡都配置爲 NAT 模式,能夠認爲他們都在同一個交換機下,能夠互相訪問。
  • 開始配置CentOS7 
    一、 準備工做(更新系統、安裝網絡工具)
yum -y update
  • 1
yum -y install net-tools.x86_64
  • 1

二、配置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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

個人兩塊網卡分別爲 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
  • 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
  • 1
  • 2

其中 --permanent表示永久生效。spa

五、設置IP地址假裝.net

firewall-cmd --zone=external --add-masquerade --permanent
  • 1

六、設置NAT規則code

firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o eno16777736 -j MASQUERADE -s 192.168.10.0/24
  • 1

七、設置生效

firewall-cmd --reload
  • 1

八、驗證 
在win7虛擬機中配置ip爲 192.168.10.10,網關192.168.10.1,如圖 
這裏寫圖片描述 
ping 百度測試網絡是否連通 
這裏寫圖片描述 
至此,NAT服務器配置完成。

  • 開始配置端口映射 
    由於我須要從外網訪問到內網的win虛擬機,因此須要端口映射,以遠程桌面訪問爲例,windows的遠程桌面端口爲tcp 3389,因此只須要將外網的端口映射到內網3389便可,命令以下:
firewall-cmd --zone=external --add-forward-port=port=3389:proto=tcp:toport=3389:toaddr=192.168.10.10 --permanent
firewall-cmd --reload
  • 1
  • 2

查看設置,我這裏設置了兩個端口

[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
  • 1
  • 2
  • 3
  • 4

驗證端口映射: 
在物理機上使用 mstsc 工具,鏈接CentOS 的外網IP ,即一開始提到的 192.168.32.130 
這裏寫圖片描述

好了,實驗完畢。由於我全部的虛擬機都是靜態ip,因此沒有安裝DHCP服務。

相關文章
相關標籤/搜索