Linux IP 分享(NAT)設定

  • iptables (iptables-1.2.11-3.1.RHEL4)
  • vi /etc/sysctl.conf
    :
    net.ipv4.ip_forward = 1
    :
  • sysctl -p /etc/sysctl.conf
    cat /proc/sys/net/ipv4/ip_forward
  • lsmod | grep ip_tables 
    • 如果沒有出現 ip_tables 就輸入 modprobe ip_tables 然後再確認一次
  • 規劃好預計達成的規則
    1. 來自 192.168.0.* 的 IP, 自動轉到 eth0 介面出去
    2. 來自 eth0 的 8080 自動轉到 192.168.0.241:80
    3. 來自 eth0 的 8081 自動轉到 192.168.0.22:8080
  • vi /etc/sysconfig/iptables
    :
    *nat
    :PREROUTING ACCEPT [0:0]
    :POSTROUTING ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    [0:0] -A POSTROUTING -s 192.168.0.0/255.255.255.0 -o eth0 -j MASQUERADE
    [0:0] -A PREROUTING -p tcp --dport 8080 -j DNAT --to 192.168.0.241:80
    [0:0] -A PREROUTING -p tcp --dport 8081 -j DNAT --to-destination 192.168.0.22:8080
    COMMIT
    :
  • CentOS 6 (RHEL6) 增加一些安全的控管, 因此在 *filter 的 :FORWARD 項目要增加開放 nat 的來源資訊
    • 例如 來自 eth1 都允許 nat 出去就可增加以下的設定資料
      *filter
      :INPUT ACCEPT [0:0]
      :FORWARD ACCEPT [0:0]
      -A FORWARD -i eth1 -j ACCEPT
      -A FORWARD -o eth1 -j ACCEPT
      :OUTPUT ACCEPT [0:0]
  • service iptables restart
  • tech/nat.txt
  • 上一次變更: 2016/03/27 17:59
  • jonathan