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
而现在 , 如此则可:;
#;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
假如您想让这条规则同时修改本机连线的话(如 , 即使在;NAT;主机本身 , 要连接;1.2.3.4;的;8080;埠口之;telnet;连线 , 会帮您连接至;192.168.1.1;的;80;埠口) , 您就可以插入相同的规则至;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;规则 , 来告诉核心哪些连线要改变 , 同时如何去改变它们 。要做到这点 , 我们需要一个非常多用途的;iptables;工具 , 同时指定;`-t;nat";选项告诉它去修改;NAT;表格 。;
NAT;规则的表格含有三个列表叫做`chains";:每一条规则都按顺序检查 , 直到找到一个相符的比对 。该三个链就叫做;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;仍可将之与其它可能的选项区分开来就行 。如果您的核心以模组形式来支援;iptables; , 您就需要首先载入;ip_tables.o;:;`insmod;ip_tables" 。;
这里 , 最重要的一个选项是表格选择选项:;`-t"; 。对於所有的;NAT;操作 , 您会想用;`-t;nat";来表示;NAT;表格 。第二个重要的选项是以;`-A";增加一条新规则至链的末端;(如:`-A;POSTROUTING") , 或以;`-I";插入至前端(如:`-I;PREROUTING") 。;
您可以指定您要做;NAT;的封包来源地址;(`-s";或;`--source");与目的地;(`-d";or;`--destination") 。这两个选项後面可以後接一个单一的;IP;地址;(如:192.168.1.1) , 或一个名称;(如:;www.kernelnotes.org) , 或一个网路地址;(如:192.168.1.0/24;或;192.168.1.0/255.255.255.0) 。;
您也可以指定要比对的传入;(`-i";或;`--in-interface");和传出;(`-o";or;`--out-interface");界面 , 但哪一个界面可以指定则取决於您要将规则写入哪一个链去:对於;PREROUTING; , 您可以选择传入界面 , 但对於;POSTROUTING;(以及;OUTPUT) , 您可以选择传出界面 。如果您不小心用错了 , ;iptables;就会给您一个错误 。;
推荐阅读
- 在Linux上自动建立帐号
- Linux IMP安装及相关问题集
- Linux系统备份
- Ramdisk:在linux下如何使用 RAM 作为虚拟硬盘?
- Linux 指令篇:起始管理--shutdown
- Linux 指令篇:DOS相容指令--mattrib
- Linux 指令篇:DOS相容指令--mcd
- Linux 指令篇:DOS相容指令--mcopy
- 关于bootsect.S Linux开机过程的分析
- Linux 网管 123 --- 第10章. 升级 Linux 及其他应用软体 -2.不使
