利用iptables的SNAT功能實現區域網路共用上網

來源:互聯網
上載者:User

今天,碰到一個問題:區域網路內有5台機器,只有一個公網IP。現在的需求是5台機器都要能夠訪問外網。這可怎麼辦呢。當然是使用SNAT了。話雖這麼說,可是,在配置的時候,竟然折騰了半天。下面好好總結一下:

情景介紹:區域網路內的5台機器的IP地址分別是
192.168.180.121-node1
192.168.180.122-node2
192.168.180.123-node3
192.168.180.124-node4
192.168.180.125-node5

每台機器都有2塊網卡(eth0和eth1),我們上面給出的5個內網IP都是配置在每一台機器的eth0這塊網卡上面。

另外,我們將node1這個機器上的eth1網卡配置一個外網IP(119.75.218.76)。

開啟node1這台機器的ipv4轉寄功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
(就是因為這個忘記了,折騰了好久。)
還有,這個修改在機器重啟的時候仍然會失效。要想永久有效,還要把/etc/sysctl.conf檔案裡邊的net.ipv4.ip_forward的值改為1。

修改其他機器的預設閘道:
因為要讓 node1 這台機器幫我們轉寄流量,所以,將其他機器的預設閘道設定成 node1 的內網IP(也就是192.168.180.121) 在node1 機器上使用iptables 命令進行設定,將其他機器的流量通過這個可以訪問外網的機器轉寄出去:
iptables -F
iptables -X
iptables -Z
這三條命令將防火牆規則清空。
之後,使用下面的命令進行流量轉寄:
iptables -t nat -A POSTROUTING -s 192.168.180.0/24 -o eth1 -j SNAT –to-source 119.75.218.76
(因為這條規則沒有儲存,所以重啟後失效;怎樣儲存防火牆規則,請參考其他教程)

本文只是簡單介紹了大致的操作,原理性的知識以及詳細介紹請參考其他教程。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.