2011-09-18

啟用ubuntu server的NAT功能

以下的NAT設定範例說明,在下述的條件下進行:
  1. 對外的連線,使用pppoe建立ADSL連線
  2. 內部ip使用192.168.2.0/24網段
  3. 執行以下指令,開啟並限制NAT的功能,只讓192.168.2.1-192.168.2.254可以透過NAT連線到外部
    iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.2.0/24 -j MASQUERADE
  4. 使用以下指令,將ip_forward的值由0改為1,表示啟動封包轉送的功能,使具有 router 的能力
    echo "1" > /proc/sys/net/ipv4/ip_forward
  5. 以上兩個指令,下次重開機就不見了,所以必須在開機後,再一次執行這兩個指令。
    可以將上述兩行指令,存成檔案:/etc/init.d/my_nat
    iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.2.0/24 -j MASQUERADE
    echo "1" > /proc/sys/net/ipv4/ip_forward
  6. 更改/etc/init.d/my_nat的存取權限
    chmod +x :/etc/init.d/my_nat
  7. 建立連結,以便在run-level開機完成之後,執行my_nat檔案內容的指令
    ln -s /etc/init.d/my_nat /etc/rcS.d/S66NAT
  8. 除了上述將指令存成檔案來執行的方式,也可以透過以下方式,來達到開機後即可具備NAT功能的目的
    • 修改/etc/sysctl.conf
      將net.ipv4.ip_forward=0 或 #net.ipv4.ip_forward=1,調整為net.ipv4.ip_forward=1
    • 儲存iptables的設定
      在執行 iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.2.0/24 -j MASQUERADE
      之後
      執行 /etc/init.d/iptables save 儲存iptables的設定

沒有留言:

張貼留言