利用iptables的NAT代理實現內網訪問外網


利用NAT代理實現內網訪問外網

  1. 背景及原理

    若局域網中的兩台計算機只能有一台能夠訪問外網,而這兩台計算機之間能相互通信,那么可以配置能訪問外網的那台服務器實現路由器的功能,即實現其他機器的NAT轉換,從而使所有機器都能訪問外網

     

  2. 環境模擬

    在虛擬機中創建兩台Linux系統(可以在創建一台后克隆另一台,這樣做可以加快效率),分別命名為Linux1和Linux2,其中Linux1具有兩塊網卡eth0(NAT模式)和eth1(僅主機模式)

Linux2具有一塊網卡eth0(僅主機模式),讓Linux1做路由器(服務器),Linux2做客戶機

    

ip地址分配為

Linux1:eth0    192.168.214.210(此ip跟VMware的NAT模式同網段,否則作為服務器端的Linux將無法訪問外網)

 

        eth1    172.16.6.254(自定義)

Linux2:eth0    172.16.6.100(自定義)

環境模擬步驟:

2.1 對於Linux1服務器端

2.1.1 vi /etc/sysconfig/network-scripts/ifcfg-eth0修改網卡配置文件,同時將ip改為靜態ip:192.168.214.210,網關192.168.214.2

2.1.2 進入到/etc/sysconfig/network-scripts/目錄,創建網卡eth1的配置文件,可以通過復制網卡eth0的配置文件cp ifcfg-eth0 ifcfg-eth1再進行配置,只需配置靜態ip為172.16.6.254(即Linux2的網關)

2.1.3 執行命令>/etc/udev/rules.d/70-persistent-net.rules清空網卡信息相關文件

2.1.4 重啟系統並查看ip

2.2 對於Linux2客戶端

2.2.1 vi /etc/sysconfig/network-scripts/ifcfg-eth0修改網卡配置文件(因為是通過原來的克隆過來的,所以需要刪除網卡的物理地址和UUID),同時將ip地址改為靜態ip:172.16.6.100

2.2.2 執行命令>/etc/udev/rules.d/70-persistent-net.rules清空網卡信息相關文件

2.2.3 重啟系統並查看ip

2.3在Linux1上pingwww.baidu.com –c4

檢驗Linux2與Linux1的通信,在Linux2上ping 172.16.6.254 –c4,同時ping www.baidu.com,發現能ping通網關(即Linux1),ping不通外網

 

3、在Linux1上操作

3.1 配置iptable轉發規則執行如下命令

iptables -F    #清除所有規則來暫時停止防火牆

iptables -t nat -A POSTROUTING -s 172.16.6.0/24 -j MASQUERADE    #進行ip偽裝

3.2 調整內核參數,開啟內核ip路由轉發功能

echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf

sysctl -p        載入sysctl配置文件

 

  1. 在Linux2上重新ping www.baidu.com –c4

此時Linux2能通過Linux1連上外網,大功告成!

 

博主原創文章,轉載請務必注明出處


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM