4.2;那;ipmasqadm;怎麼了?;
這個其實取決於使用者而已 , 所以我并不是很為向後兼容問題而擔心 。您可以單純使用;iptables;-t;nat;做;port;forwarding;的動作 。例如 , 在;Linux;2.2;您或許已經這樣做了:;
#;Linux;2.2
#;Forward;TCP;packets;going;to;port;8080;on;1.2.3.4;to;192.168.1.1"s;port;80
ipmasqadm;portfw;-a;-P;tcp;-L;1.2.3.4;8080;-R;192.168.1.1;80
而現(xiàn)在 , 如此則可:;
#;Linux;2.4
#;Append;a;rule;pre-routing;(-A;PREROUTING);to;the;NAT;table;(-t;nat);that
#;TCP;packets;(-p;tcp);going;to;1.2.3.4;(-d;1.2.3.4);port;8080;(--dport;8080)
#;have;their;destination;mapped;(-j;DNAT);to;192.168.1.1,;port;80
#;(--to;192.168.1.1:80).
iptables;-A;PREROUTING;-t;nat;-p;tcp;-d;1.2.3.4;--dport;8080;
-j;DNAT;--to;192.168.1.1:80
假如您想讓這條規(guī)則同時修改本機連線的話(如 , 即使在;NAT;主機本身 , 要連接;1.2.3.4;的;8080;埠口之;telnet;連線 , 會幫您連接至;192.168.1.1;的;80;埠口) , 您就可以插入相同的規(guī)則至;OUTPUT;鏈中(它只適用於本機傳出的封包):;
#;Linux;2.4
iptables;-A;OUTPUT;-t;nat;-p;tcp;-d;1.2.3.4;--dport;8080;
-j;DNAT;--to;192.168.1.1:80
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
5.;控制哪些要;NAT
您需要建立一些;NAT;規(guī)則 , 來告訴核心哪些連線要改變 , 同時如何去改變它們 。要做到這點 , 我們需要一個非常多用途的;iptables;工具 , 同時指定;`-t;nat";選項告訴它去修改;NAT;表格 。;
NAT;規(guī)則的表格含有三個列表叫做`chains";:每一條規(guī)則都按順序檢查 , 直到找到一個相符的比對 。該三個鏈就叫做;PREROUTING;(對;Destination;NAT;來說 , 因為封包首先是傳入的)、POSTROUTING;(對;Source;NAT;來說 , 因為封包是離開的)、以及;OUTPUT;(對;Destination;NAT;來說 , 是指那些由本機產生的封包) 。;
假如我夠藝術天份的話 , 下面的圖示將準確模擬出上面所說的概念 。;
_____;;;;;_____
//;;;
PREROUTING;-->[Routing;]----------------->POSTROUTING----->
D-NAT/;;;;;[Decision];;;;S-NAT/
|;;;;^
|;;__|__
|;/;;;
||;OUTPUT|
|;D-NAT/
|;;;;^
|;;;;|
-------->;Local;Process;------
於前述的每一點 , 當一個封包通過我們要查看的相關連線之時 , 如果它是一個新建連線 , 我們查看它在;NAT;表格里對應的鏈 , 看看能對之做些什麼動作 。而由此獲得的答案就應用於該連線將來的所有封包 。;
5.1;用;iptables;做簡單的選擇;
iptables;具有如後所列的許多標準選項 。所有那些帶雙減號的選項都是可以縮寫的 , 只要;iptables;仍可將之與其它可能的選項區(qū)分開來就行 。如果您的核心以模組形式來支援;iptables; , 您就需要首先載入;ip_tables.o;:;`insmod;ip_tables" 。;
這里 , 最重要的一個選項是表格選擇選項:;`-t"; 。對於所有的;NAT;操作 , 您會想用;`-t;nat";來表示;NAT;表格 。第二個重要的選項是以;`-A";增加一條新規(guī)則至鏈的末端;(如:`-A;POSTROUTING") , 或以;`-I";插入至前端(如:`-I;PREROUTING") 。;
您可以指定您要做;NAT;的封包來源地址;(`-s";或;`--source");與目的地;(`-d";or;`--destination") 。這兩個選項後面可以後接一個單一的;IP;地址;(如:192.168.1.1) , 或一個名稱;(如:;www.kernelnotes.org) , 或一個網(wǎng)路地址;(如:192.168.1.0/24;或;192.168.1.0/255.255.255.0) 。;
您也可以指定要比對的傳入;(`-i";或;`--in-interface");和傳出;(`-o";or;`--out-interface");界面 , 但哪一個界面可以指定則取決於您要將規(guī)則寫入哪一個鏈去:對於;PREROUTING; , 您可以選擇傳入界面 , 但對於;POSTROUTING;(以及;OUTPUT) , 您可以選擇傳出界面 。如果您不小心用錯了 , ;iptables;就會給您一個錯誤 。;
推薦閱讀
- 在Linux上自動建立帳號
- Linux IMP安裝及相關問題集
- Linux系統(tǒng)備份
- Ramdisk:在linux下如何使用 RAM 作為虛擬硬盤?
- Linux 指令篇:起始管理--shutdown
- Linux 指令篇:DOS相容指令--mattrib
- Linux 指令篇:DOS相容指令--mcd
- Linux 指令篇:DOS相容指令--mcopy
- 關于bootsect.S Linux開機過程的分析
- Linux 網(wǎng)管 123 --- 第10章. 升級 Linux 及其他應用軟體 -2.不使
