對linux做NAT的解釋

2021-08-31 14:28:52 字數 1915 閱讀 3716

我對linux做nat的解釋

一台安裝了linux8.0的機器上配置兩塊網絡卡,

第一塊為eth1,ip位址為218.11.11.11,用來連線外網。

第二塊為eth0,ip位址為192.168.0.1,用來連線內網,並做內網的閘道器。

iptables的配置如下:

1、modprobe ip_tables

2、modprobe iptable_nat

(因為在linux啟動時,ip_tables和iptable_nat兩個模組在核心中並不是預設的啟動選項,上述兩條語句就是先將這兩個必需的模組啟動。)

3、modprobe ip_conntrack

(為了進行連線跟蹤,必須將ip_conntrack這個模組載入,以確保外網中主機返回的報文,能順利傳送到內網中發出請求報文的主機。)

4、echo "1">;/proc/sys/net/ipv4/ip_forward

這條語句的作用是將ip_forward的值賦為1,也即是將埠**功能開啟,因為系統預設的值為不允許。

5、iptables -t nat -a postrouting -o eth1 -j snat --to 218.11.11.11

這條語句是利用postrouting功能,來檢查第一乙個向外傳輸的報文,並將每乙個出去請求的源位址都轉換為在外網中合法的ip位址218.11.11.11,從而使內網的主機能夠訪問外網中的主機。

對於www服務

如果想讓網內的機器對外提供www服務可以這樣設定

1、iptables -t nat -a prerouting -p tcp --dport 80 -i eth1 -j dnat --to 192.168.0.1:80

prerouting中的規則是最先被檢查的,一旦有資料從eth1進入內網,且目的位址為218.11.11.11,埠為80,則iptables就把請求傳送到192.168.0.1的80埠

如果再增加一台的話可以這樣

iptables -t nat -a prerouting -p tcp --dport 8888 -i eth1 -j dnat --to 192.168.0.2:80

此語句將對218.11.11.11:8888的請求發至192.168.0.2的80埠。外網的主機想訪問192.168.0.2提供的www服務時必須用

2、iptabes -t nat -aprerouting -p tcp --dport 80 -i eth1 dnat --to 192.168.0.1:80

這條語句將伺服器對本機ip位址218.11.11.11:80的訪問也**到內網的192.168.0.1:80上。如果沒有這條語句,則它對本機eth1上80埠的訪問,將不會**到內網相對應的主機上去。

ftp服務

在網內架設ftp服務讓外網的人能夠訪問到。

1、modprobe ip_conntrack_ftp

2、modprobe ip_nat_ftp

想要在內網架設ftp伺服器就必須載入以上兩個模組。它們主要是用來跟蹤ftp服務的聯接狀態,確保外網中的主機能夠準確找到內網中提供ftp服務的機器,並保持連線

3、iptables -t nat -a prerouting -p tcp --dport 21 -i eth1 -j dnat --to 192.168.0.1:21

一旦有請求218.11.11.11:21報文,則把這些報文**到內網的192.168.0.1:21上去。和www服務一樣可以通過不同的埠建立內網不同ip位址的ftp服務。

4、iptables -t nat -a prerouting -p tcp --dport 21 -i eth1 -j dnat --to 192.168.0.1:21

這條語句將伺服器對本機ip位址218.11.11.11:21的訪問也**到內網的192.168.0.1:21上。如果沒有這條語句,則它對本機eth1上21埠的訪問,將不會**到內網相對應的主機上去。

新版linux核心對nat的修改

linux的nat是基於match的,即在滿足一系列條件的前提下執行snat或者dnat,因此要求也就比較寬鬆,唯一的約束就是路由,即路由動作發生的時候,必須是基於最終的目標ip位址,因此dnat必須發生在路由之前 對於本機發出的資料報,則在路由之後,然後重新路由 如下圖所示 netfilter l...

NAT協議的一些解釋

ip位址只有32位,最多只有42.9億個位址,還要去掉保留位址 組播位址,能用的位址只有36億左右,但是當下有數以萬億的主機,沒有這麼多ip位址怎麼辦,後面有了ipv6,但是當下ipv4還是主流,利用ipv4怎麼滿足這麼多主機的ip位址呢?答案就是nat,nat技術使公司 機構以及個人產生以及區域網...

對char x abcd 的解釋

問題 char x abcd x 答案是 x d 為什麼呢?詳解 char x abcd 中的 abcd 被儲存為乙個int型的整數,這個整數的值是 乙個int數值 97 8 8 8 98 8 8 99 8 100 其中97是 a 的ascii碼 其中98是 b 的ascii碼 其中99是 c 的a...