[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

qref 翻译,gateway.sgml 提交



DNS 那段有少许不明确的地方,水平有限不知道如何翻译才好。
iptables 那段老版本中就有,基本抄了过来。不熟悉,没有怎么修改中。
<!-- CVS revision of this document "$Revision: 1.1 $"  -->
<!-- CVS revision of this document "$Revision: 1.244 $"  -->

<chapt id="gateway">ÍøÂçÉèÖÃ
<p>
<!-- I keep above id as gateway to have the same html file name. -->
<!-- Once all translations are in sync, I may change it to network. -->
ÕâÒ»ÕÂÖصãÔÚÓÚ &debian; µÄÍøÂç¹ÜÀí¡£ÇëÔĶÁ <url id="&net-howto;" name="Net-HOWTO"> À´Á˽âÒ»°ã GNU/Linux µÄÍøÂçÉèÖá£
<p>
ΪÁËÈà &debian; Ö÷»úÄܹ»·ÃÎÊ Internet£¬ËüµÄÍøÂç½Ó¿ÚÐèÒª±»ÕýÈ·µÄÉèÖá£
<p>
Ê×ÏÈҪȷÈÏÄÚºËÖ§³ÖÕâ¸öÉ豸£¬ÀýÈçÒÔÌ«Íø¿¨¡¢ÎÞÏßÍø¿¨(Wi-Fi)ºÍµ÷Öƽâµ÷Æ÷¡£ÎªÁË»ñµÃÕâЩ֧³Ö£¬Äã¿ÉÄÜÐèÒªÖØбàÒëÄں˻òÕ߸øÄÚºËÔö¼ÓÄ£¿é£¬Èç <ref id="kernel">ÖÐÃèÊöµÄ¡£
<p>
ÏÂÃæ˵Ã÷ÈçºÎÉèÖÃÍøÂçÉ豸¡£ÕâЩÐÅÏ¢¶¼ÒѾ­Õë¶Ô Sarge ×öÁ˸üУ¬´ó¶àÊýµÄÄÚÈݶ¼²»ÊÊÓÃÓÚÔçÆڵķ¢Ðа汾¡£
<!--
I move these to comment, Thomas, please remove once you are ready
<p>
<list compact>
<item>XXX FIXME XXX: Update HW config, Ethernet kernel module
<item>XXX FIXME XXX: Add section to reconfigure network on initial install.
</list>
-->

<sect id="net-basic">IP ÍøÂçÉèÖûù´¡
<p>
Ò»¸ö &debian; Ö÷»ú¿ÉÄÜÓкܶàÓв»Í¬ Internet ЭÒé(IP)µØÖ·µÄÍøÂç½Ó¿Ú¡£½Ó¿Ú¿ÉÄÜÓкܶàÖÖ£¬È磺
<list compact>
<item>Loopback£º<tt>lo</tt>
<item>Ethernet£º<tt>eth0</tt>¡¢<tt>eth1</tt> ¡­¡­
<item>Wi-Fi£º<tt>wlan0</tt>¡¢<tt>wlan1</tt>¡¢<tt>wifi0</tt> ¡­¡­
<footnote>
×¢Ò⣬ÓÐһЩÎÞÏßÍø¿¨(Wi-Fi)µÄ½Ó¿Ú±»ÉèÖÃΪÒÔÌ«Íø¿¨µÄ±ðÃû£¬Ö»ÊÇÉèÖõIJÎÊýÊÇÕë¶ÔÎÞÏßÍø¿¨(Wi-Fi)µÄ¡£ÕâЩ²ÎÊýÊÇÓÉ <prgn>iwconfig</prgn> ¿ØÖƵġ£
</footnote>
<item>Token Ring£º<tt>tr0</tt>¡¢<tt>tr1</tt> ¡­¡­
<item>PPP£º<tt>ppp0</tt>¡¢<tt>ppp1</tt> ¡­¡­
</list>
ÆäËû¿ÉÓõÄÍøÂçÉ豸»¹Óкܶ࣬°üÀ¨ SLIP¡¢PLIP£¨´®ÐкͲ¢ÐÐ IP£©¡¢¿ØÖÆijÖÖÍøÂç½Ó¿ÚÁ÷Á¿µÄ¡°shaper¡±É豸¡¢Ö¡Öм̡¢AX.25¡¢X.25¡¢ARCnet ºÍ LocalTalk¡£
<p>
ÿ¸öÖ±½ÓÁ¬½Óµ½ Internet£¨»òÈκλùÓÚ IP µÄÍøÂ磩µÄÍøÂç½Ó¿Ú¶¼ÓÃΨһµÄ 32 λµÄ IP µØÖ·À´Ê¶±ð¡£
<footnote>
ÕâÊÇÕë¶Ô IPv4 ¶øÑԵġ£ÔÚ IPv6 ÖеØÖ·ÊÇ 128 λµÄ¡£²ÎÔÄ <url id="&ipv6home;">¡£
</footnote>
IP µØÖ·¿É·ÖΪÍøÂçµØÖ·ºÍÖ÷»úµØÖ·Á½¸ö²¿·Ö¡£Èç¹ûÄãÄõ½Ò»¸ö IP µØÖ·£¬°ÑÍøÂçµØÖ·²¿·ÖÈ«²¿ÉèΪ 1£¬¶øÖ÷»úµØÖ·²¿·ÖÈ«²¿ÉèΪ 0£¬ÔòÄ㽫µÃµ½Õâ¸öÍøÂçµÄ×ÓÍøÑÚÂë¡£
<p>
´«Í³ÒâÒåÉÏ£¬IP ÍøÂç°´ÕÕÍøÂçµØÖ·µÄ³¤¶È·ÖΪ 8¡¢16¡¢24 λÈý¸ö×é±ð¡£Õâ¸öϵͳȱ·¦Áé»îÐÔ£¬ÀË·ÑÁ˺ܶà IP µØÖ·£¬ËùÒÔÏÖÔÚµÄ IPv4 ÍøÂçÊÇÓɿɱ䳤¶ÈµÄÍøÂçºÅÀ´·ÖÅäµÄ¡£
<example>
          IP addresses                   net mask      length
Class A   1.0.0.0     - 126.255.255.255  255.0.0.0     =  /8
Class B   128.0.0.0   - 191.255.255.255  255.255.0.0   = /16
Class C   192.0.0.0   - 223.255.255.255  255.255.255.0 = /24
</example>
IP µØÖ·²»ÔÚÕâ¸ö·¶Î§Äڵı»ÓÃ×÷ÌØÊâÄ¿µÄ¡£
<p>
ÿһ¸ö×é±ðÖж¼Óб£Áô¸ø±¾µØÍøÂç(LANs)ʹÓõĵØÖ··¶Î§¡£ÕâЩµØÖ·²»»áºÍ Internet Éϵķ¢Éú³åÍ»¡££¨Í¬Àí£¬Èç¹ûÖ÷»ú±»·ÖÅäµ½ÕâÀàµØÖ·µÄ»°£¬ÕâЩÖ÷»ú¾Í²»ÄÜÖ±½Ó·ÃÎÊ Internet£¬ÐèҪͨ¹ýÒ»¸ö×÷Ϊ´úÀíµÄÍø¹Ø»òÍøÂçµØַת»»·þÎñ(NAT)²ÅÄÜ·ÃÎÊ Internet¡££©ÕâЩµØÖ··¶Î§ÔÚϱíÖÐÁгö£¬°üº¬Ã¿¸ö×é±ðÖÐÕâЩµØÖ··¶Î§µÄÊýÄ¿¡£
<example>
          network addresses            length  how many
Class A   10.x.x.x                     /8      1
Class B   172.16.x.x -  172.31.x.x     /16     16
Class C   192.168.0.x - 192.168.255.x  /24     256
</example>
IP ÍøÂçÖÐ IP µØÖ·µÄµÚÒ»¸öÖµ¾ÍÊÇÍøÂç±¾Éí£¬×îºóÒ»¸öÖµÊǸÃÍøÂçµÄ¹ã²¥µØÖ·¡£
<footnote>
ÍøÂçµØÖ·¿ÉÒÔͨ¹ý IP µØÖ·ºÍ×ÓÍøÑÚÂëµÄ AND ÔËËãÀ´»ñµÃ¡£¶ø¹ã²¥µØÖ·¿ÉÒÔͨ¹ý IP µØÖ·ºÍ×ÓÍøÑÚÂëµÄ·´ÂëµÄ OR ÔËËãÀ´»ñµÃ¡£
</footnote>
ÆäÓàËùÓÐµÄ IP µØÖ·¶¼¿ÉÒÔ·ÖÅä¸øÍøÂçÖеÄÖ÷»ú¡£Í¨³£ IP µØÖ·µÄµÚÒ»¸öºÍ×îºóÒ»¸ö¶¼»áÁô¸ø¸ÃÍøÂçµÄ Internet Íø¹Ø¡£
<p>
·Óɱí°üº¬Á˹ØÓÚÄÚºËÈçºÎ°Ñ IP °ü·¢Ë͵½ËüÃÇÄ¿µÄµØµÄÐÅÏ¢¡£Õâ¶ùÓÐÒ»¸öλÓÚ±¾µØÍøÂç(LAN)£¬IP µØַΪ 192.168.50.x/24 µÄ &debian; Ö÷»úµÄ·ÓÉ±í¡£Áíһ̨Ö÷»ú 192.168.50.1£¨Ò²ÔÚ LAN ÖУ©Êǹ«Ë¾ÍøÂç 172.20.x.x/16 µÄ·ÓÉÆ÷£¬Ö÷»ú 192.168.50.254£¨Ò²ÔÚ LAN ÖУ©ÊǸºÔð·ÃÎÊ Internet µÄ·ÓÉÆ÷¡£
<!-- I shrunk shell output within 72 characters                       -->
<example>
# route
Kernel IP routing table
Destination   Gateway        Genmask       Flags Metric Ref Use Iface
127.0.0.0     *              255.0.0.0     U     0      0     2 lo
192.168.50.0  *              255.255.255.0 U     0      0   137 eth0
172.20.0.0    192.168.50.1   255.255.0.0   UG    1      0     7 eth0
default       192.168.50.254 0.0.0.0       UG    1      0    36 eth0
</example>
<list compact>
<item>
µÚÒ»ÐÐ˵Ã÷´«ËÍÄ¿µÄµØÊÇ <tt>127.x.x.x</tt> µÄ»°£¬Ôò»áͨ¹ý <tt>lo</tt> »Ø»·ÍøÂç½Ó¿ÚÀ´Â·ÓÉ¡£
<item>
µÚ¶þÐÐ˵Ã÷´«ËÍÄ¿µÄµØÊÇ LAN µÄ»°£¬Ôò»áͨ¹ý <tt>eth0</tt> À´Â·ÓÉ¡£
<item>
µÚÈýÐÐ˵Ã÷´«ËÍÄ¿µÄµØÊǹ«Ë¾ÍøÂçµÄ»°£¬Ôò»áͨ¹ý <tt>eth0</tt> À´Â·ÓÉ£¬×îºó·¢Ë͵½Íø¹Ø <tt>192.168.50.1</tt>¡£
<item>
µÚËÄÐÐ˵Ã÷´«ËÍÄ¿µÄµØÊÇ Internet µÄ»°£¬Ôò»áͨ¹ý <tt>etho</tt> À´Â·ÓÉ£¬×îºó·¢Ë͵½Íø¹Ø <tt>192.168.50.254</tt>¡£
</list>
·ÓɱíÖÐµÄ IP µØÖ·Ò²¿ÉÒÔÓÃÃû³Æ±íʾ£¬ÕâЩÃû³Æ´Ó <file>/etc/networks</file> »òͨ¹ý resolver£¨C Library£©À´»ñµÃ¡£
<p>
³ýÁË·ÓÉÖ®Í⣬ÄÚºËÄÜʵÏÖÍøÂçµØַת»»(NAT)¡¢Á÷Á¿¿ØÖƺͰü¹ýÂË¡£
<p>
²ÎÔÄ <url id="&net-howto;" name="Net-HOWTO"> ºÍ 
<url id="&net-howto-over;" name="other networking HOWTOs"> 
À´Á˽ⱳºóÔËÐеÄÔ­Àí¡£

<sect id="net-low">µ×²ãÍøÂçÉèÖÃ
<p>
GNU/Linux ÉÏ´«Í³µÄµ×²ãÍøÂçÉèÖù¤¾ßÊÇ <prgn>ifconfig</prgn> ºÍ <prgn>route</prgn>£¬ËüÃÇÔÚ <package>net-tools</package> Õâ¸öÈí¼þ°üÖС£Ä¿Ç°ÕâЩ¹¤¾ß±»Èí½«°ü <package>iproute</package> ÖÐµÄ <prgn>ip</prgn> ´úÌæ¡£<prgn>ip</prgn> ¿ÉÒÔÔÚ Linux 2.2 »ò¸üеÄÄÚºËÉÏÔËÐУ¬ÓÐ×űÈÀϵŤ¾ß¸üºÃµÄ¼æÈÝÐÔ¡£È»¶ø£¬ÕâЩ´«Í³µÄÉèÖù¤¾ß»¹ÊÇÄÜÓõĶøÇÒ´ó¼ÒÒ²¸ü¼ÓÊìϤ¡£

<sect1 id="low-ifconfig">µ×²ãÍøÂçÉèÖà &ndash; <prgn>ifconfig</prgn> ºÍ <prgn>route</prgn>
<p>
ÏÂÃæÑÝʾÈçºÎ°ÑÍøÂç½Ó¿Ú <tt>eth0</tt> µÄ IP µØÖ·´Ó <tt>192.168.0.3</tt> ¸ÄΪ <tt>192.168.0.111</tt>£»ÉèÖà <tt>eth0</tt> µÄ·ÓÉ£¬Í¨¹ý <tt>192.168.0.1</tt> ·ÃÎÊ <tt>10.0.0.0</tt> Õâ¸öÍøÂç¡£
Ö´ÐÐ <prgn>ifconfi</prgn> ºÍ <prgn>route</prgn> ʱ²»´øÍøÂç½Ó¿Ú²ÎÊý£¬ÔòÏÔʾËùÓÐÍøÂç½Ó¿ÚºÍ·ÓɵÄÏÖ×´¡£
<example>
# ifconfig
eth0 Link encap:Ethernet  HWaddr 08:00:46:7A:02:B0
     inet addr:192.168.0.3  Bcast:192.168.255.255  Mask:255.255.0.0
     UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
     RX packets:23363 errors:0 dropped:0 overruns:0 frame:0
     TX packets:21798 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:100
     RX bytes:13479541 (12.8 MiB)  TX bytes:20262643 (19.3 MiB)
     Interrupt:9

lo   Link encap:Local Loopback
     inet addr:127.0.0.1  Mask:255.0.0.0
     UP LOOPBACK RUNNING  MTU:16436  Metric:1
     RX packets:230172 errors:0 dropped:0 overruns:0 frame:0
     TX packets:230172 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:0
     RX bytes:22685256 (21.6 MiB)  TX bytes:22685256 (21.6 MiB)
# route
Kernel IP routing table
Destination  Gateway      Genmask          Flags Metric Ref Use Iface
192.168.0.0  *            255.255.0.0      U     0      0     0 eth0
default      192.168.0.1  255.255.255.255  UG    0      0     0 eth0
</example>
Ê×ÏÈÎÒÃǹرÕÍøÂç½Ó¿Ú¡£
<example>
# ifconfig eth0 inet down
# ifconfig
lo   Link encap:Local Loopback
  ... £¨Ã»ÓÐ eth0 Õâ¸öÌõÄ¿ÁË£©
# route
  ... £¨Ã»ÓзÓɱíÁË£©
</example>
½ÓÏÂÀ´ÎÒÃÇÆô¶¯ eth0 ²¢¸øÓèÆäÐ嵀 IP µØÖ·ºÍ·ÓÉ¡£
<example>
# ifconfig eth0 inet up 192.168.0.111 \
           netmask 255.255.255.0 broadcast 192.168.0.255
# route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.0.1 dev eth0
</example>
½á¹ûÊÇ£º
<example>
# ifconfig
eth0 Link encap:Ethernet  HWaddr 08:00:46:7A:02:B0
     inet addr:192.168.0.111  Bcast:192.168.0.255  Mask:255.255.255.0
     UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
     ...

lo   Link encap:Local Loopback
     inet addr:127.0.0.1  Mask:255.0.0.0
     ...
# route
Kernel IP routing table
Destination  Gateway      Genmask        Flags Metric Ref Use Iface
192.168.0.0  *            255.255.255.0  U     0      0     0 eth0
10.0.0.0     192.168.0.1  255.0.0.0      UG    0      0     0 eth0
</example>
<p>
¸ü¶àÐÅÏ¢Çë²ÎÔÄ <manref name="ifconfig" section="8"> ºÍ
<manref name="route" section="8">.

<sect1 id="low-ip">µ×²ãÍøÂçÉèÖà &ndash; <prgn>ip</prgn>
<p>
<prgn>ip</prgn> ºÍÏÈÇ°µÄ <prgn>ifconfig</prgn> ºÍ <prgn>route</prgn> ÓÐÏàͬ¹¦ÄܵÄÃüÁîÈçÏ£º
<list compact>
<item><tt>ip link show</tt>
<item><tt>ip route list</tt>
<item><tt>ip link set eth0 down</tt>
<item><tt>ip addr del dev eth0 local 192.168.0.3</tt>
<item><tt>ip addr add dev eth0 local 192.168.0.111/24 broadcast 192.168.0.255</tt>
<item><tt>ip link set eth0 up</tt>
<item><tt>ip route add dev eth0 to 10.0.0.0/8 src 192.168.0.111 via 192.168.0.1</tt>
</list>
<p>
ÔËÐеÄʱºòʹÓà <tt>help</tt> ²ÎÊý£¬ÄÜÈà <prgn>ip</prgn> ´òÓ¡³öÃüÁîµÄÓï·¨¡£
ÀýÈ磬<tt>ip link help</tt> ´òÓ¡³ö£º
<example>
Usage: ip link set DEVICE { up | down | arp { on | off } |
                     dynamic { on | off } |
                     multicast { on | off } | txqueuelen PACKETS |
                     name NEWNAME |
                     address LLADDR | broadcast LLADDR |
                     mtu MTU }
       ip link show [ DEVICE ]
</example>
²ÎÔÄ <manref name="ip" section="8">.

<sect1 id="low-wifi">ÉèÖÃÎÞÏßÍø¿¨(Wi-Fi)½Ó¿Ú
<p>
¶ÔÓÚÎÞÏßÍø¿¨(Wi-Fi)½Ó¿Ú£¬³ýÁË <prgn>ifconfig</prgn> »ò <prgn>ip</prgn> Ö®Í⣬Ä㻹ÐèÒª <prgn>iwconfig</prgn> Õâ¸ö³ÌÐò¡£´Ë³ÌÐòÔÚ <package>wireless-tools</package> ÖС£
<p>
²ÎÔÄ <manref name="iwconfig" section="8">.

<sect1 id="low-ppp">ÉèÖÃ PPP ½Ó¿Ú
<p>
Èç¹ûÄãÊÇͨ¹ýÁ¬½ÓÔÚ²¦ºÅµç»°»úÉϵĵ÷Öƽâµ÷Æ÷£¬²¢Ê¹Óà Point-to-Point ЭÒé (PPP) À´ÉÏÍøµÄ¡£ÄÇôÕâÑùµÄÍøÂçÁ¬½Ó¾ÍÊÇͨ¹ý <tt>ppp0</tt>¡¢<tt>ppp1</tt> µÈÍøÂç½Ó¿ÚÀ´ÊµÏֵġ£
<p>
PPP ½Ó¿ÚÊÇÓÉ <prgn>pppd</prgn> Õâ¸ö PPP ·þÎñÀ´¹ÜÀíµÄ¡£Äã¿ÉÒÔÔÚ <package>ppp</package> ÖÐÕÒµ½¸Ã³ÌÐò¡£
ËùÒÔ£¬¶ÔÓÚÓû§À´Ëµ£¬ÉèÖà PPP ½Ó¿ÚÒ²¾ÍÊÇ¶Ô <prgn>pppd</prgn> ½øÐÐÉèÖá£

<sect2 id="ppp-pppd">ÊÖ¶¯ÉèÖà <prgn>pppd</prgn>
<p>
ΪÁ˽¨Á¢ÍøÂçÁ¬½Ó£¬ÎÒÃÇÐèÒª´ò¿ªÒ»¸öͨѶ¶Ë¿Ú£¨Í¨³£ÊÇ´®¿Ú£©£¬ÐèÒª°ÑÃüÁî´«Ê䵽ͨѶÉ豸ÉÏ£¨Í¨³£Êǵ÷Öƽâµ÷Æ÷£©£¬ÐèÒª²¦Ä³¸öµç»°ºÅÂ룬¶ÔÓÚÍⲿµÄ PPP ·þÎñ»¹ÐèÒª½øÐÐÉí·ÝÑéÖ¤£¬ÐèÒªÄں˴´½¨ PPP ½Ó¿Ú£¬×îºóÐèÒªÐ޸ķÓÉ±í¡£Ö»ÓÐÕâÑùÐÅÏ¢²ÅÄÜÔÚÕâÌõÁ¬½ÓÉÏ´«µÝ¡£
<prgn>pppd</prgn> ÄÜÍê³ÉÉÏÊöËùÓж¯×÷£¬Òò¶ø»áÓÐÒ»¶ÑµÄÉèÖòÎÊý¡£Ïà¹Ø²ÎÊý²Î¼û <manref name="pppd" section="8">¡£
<p>
ÔÚ &debian; ϵͳÉÏ£¬È«¾ÖµÄÉèÖÃÔÚ <file>/etc/ppp/options</file> ÀïÃæ¡£Óû§µÄÌض¨ÉèÖ÷ÅÔÚ <file>~/.ppprc</file>¡£ÒÀÀµÓÚͨѶ¶Ë¿ÚµÄÉèÖÃÈ«²¿ÔÚ <file>/etc/ppp/options.<var>partname</var></file>¡£ÀýÈ磬¼ÙÉèÄãÓÐÁ½¸öµ÷Öƽâµ÷Æ÷ &mdash;ͨ¹ý /dev/LT-modem À´·ÃÎʵÄÄÚÖà Lucent LT µ÷Öƽâµ÷Æ÷ºÍͨ¹ý /dev/ttyS0 À´·ÃÎʵÄÍâÖõ÷Öƽâµ÷Æ÷¡£
½¨Á¢ÒÔÏÂÕâÁ½¸öÎļþ¡£
<example>
# cat &gt; /etc/ppp/options.LT-modem &lt;&lt;EOF
115200
init "/usr/sbin/chat -f /etc/chatscripts/setup-LT-modem"
EOF
# cat &gt; /etc/ppp/options.ttyS0 &lt;&lt;EOF
115200
init "/usr/sbin/chat -f /etc/chatscripts/setup-ttyS0"
EOF
</example>
ÕâЩÉæ¼°µ½ÏÂÃæµÄ chat scripts¡£
Ê×ÏÈ£¬<file>/etc/chatscripts/setup-LT-modem</file>¡£
<example>
ABORT ERROR
'' ATZ
OK 'ATW2X2 S7=70 S11=55'
OK AT
</example>
Æä´Î£¬<file>/etc/chatscripts/setup-ttyS0</file>¡£
<example>
ABORT ERROR
'' ATZ
OK 'ATL1M1Q0V1W2X4&amp;C1&amp;D2 S6=4 S7=70 S11=55 S95=63 S109=1 +FCLASS=0'
OK AT
</example>
ÏÔÈ»£¬ÕâЩÎļþµÄÄÚÈÝÒÀÀµÓÚÄãµÄÓ²¼þ¡£
<p>
Ñ¡ÏîÒ²¿ÉÒÔ±»µ±Îª²ÎÊý´«µÝ¸ø <prgn>pppd</prgn>¡£
<p>
ÔÚ &debian; ÖÐͨ³£Óà <prgn>pon</prgn> À´Æô¶¯ <prgn>pppd</prgn>¡£<prgn>pon</prgn> ʹÓõÄʱºò£¬ËüµÄµÚÒ»¸ö²ÎÊý±íʾλÓÚ <file>/etc/ppp/pears/</file> ÀïÃæµÄÅäÖÃÎļþµÄÃû³Æ£¬Õâ¸öÎļþͬÑùÒ²±» <prgn>pppd</prgn> ¶ÁÈ¡¡£
<footnote>
ÕâЩÅäÖÃÎļþͨ¹ý <tt>call</tt> Ñ¡ÏîÀ´¶ÁÈ¡¡£
</footnote>
Õâ¶ù¾ÍÊÇÄãΪÌض¨Á¬½ÓÉèÖÃÌØÊâÑ¡ÏîµÄµØ·½  &mdash; ÀýÈ磬һ¸öÌرðµÄÍøÂç·þÎñÌṩÉÌ(ISP)¡£
<p>
¼ÙÉèÄãÍùÀ´ÓÚ Amsterdm ºÍ Den Haag ÕâÁ½×ù³ÇÊС£ÔÚÿ¸ö³ÇÊУ¬ÄãÒªÇóÄÜ·ÃÎÊÁ½¸ö ISP ·þÎñ&mdash; Planet ºÍ KPN¡£Ê×ÏÈΪÿ¸ö ISP ´´½¨»ù±¾µÄÅäÖÃÎļþ¡£
<example>
# cat &gt; /etc/ppp/peers/KPN &lt;&lt;EOF
remotename KPN
noauth
user kpn
noipdefault
ipparam KPN
EOF
# cat &gt; /etc/ppp/peers/Planet &lt;&lt;EOF
remotename Planet
auth
user user3579@planet.nl
noipdefault 
mru 1000
mtu 1000
ipparam Planet
EOF
</example>
ÕâЩÎļþÉèÖÃÁËÁ½¸ö ISPs Öв»Í¬µÄ²¿·Ö¡£ÏàͬµÄ²¿·Ö¿ÉÒÔ·ÅÔÚ <file>/etc/ppp/options</file> »òÓÚ½Ó¿ÚÓйصÄij¸öÉèÖÃÎļþÖС£
<p>
ÏÖÔÚΪÿ¸ö³ÇÊÐÀïµÄÿ¸ö ISP ´´½¨ÅäÖÃÎļþ¡£ÔÚÎÒÃǵÄÀý×ÓÖУ¬´ÓÒ»¸ö³ÇÊÐÁ¬½Óij¸ö ISP ºÍ´ÓÁíÍâÒ»¸ö³ÇÊÐÁ¬½ÓÕâ¸ö ISP ΨһµÄ²î±ð¾ÍÊÇËùÐèÒªµÄ chatscript¡££¨chatscript ²»Í¬ÊÇÒòΪµ±µØ·ÃÎʵĵ绰ºÅÂ벻ͬ¡££©
<example>
# cat &gt; /etc/ppp/peers/KPN-Amsterdam &lt;&lt;EOF
connect "/usr/sbin/chat -v -f /etc/chatscripts/KPN-Amsterdam"
file /etc/ppp/peers/KPN
EOF
# cat &gt; /etc/ppp/peers/KPN-DenHaag &lt;&lt;EOF
connect "/usr/sbin/chat -v -f /etc/chatscripts/KPN-DenHaag"
file /etc/ppp/peers/KPN
EOF
# cat &gt; /etc/ppp/peers/Planet-Amsterdam &lt;&lt;EOF
connect "/usr/sbin/chat -v -f /etc/chatscripts/Planet-Amsterdam"
file /etc/ppp/peers/Planet
EOF
# cat &gt; /etc/ppp/peers/Planet-DenHaag &lt;&lt;EOF
connect "/usr/sbin/chat -v -f /etc/chatscripts/Planet-DenHaag"
file /etc/ppp/peers/Planet
EOF
</example>
<tt>file</tt> ÃüÁîÏÔʾÁ˸÷¸öÅäÖ㬰üÀ¨ÏÈÇ°Áгö¹ýµÄÅäÖá£<tt>connetc</tt> ÃüÁîÏêϸ˵Ã÷ÁË <prgn>pppd</prgn> ÓÃÀ´½¨Á¢Á¬½ÓÐèÒªµÄÌØÊâ²ÎÊý¡£ÎÒÃÇͨ³£Ê¹Óà <prgn>chat</prgn> Õâ¸ö³ÌÐòÀ´×öÕâЩÊÂÇ飬ʹ chatscript ÊʺÏÕâ¸ö ISP¡£ÕâÀïÊǸø Den Haag µÄ chatscripts£»¸ø Amsterdam ÓÃµÄ chatscripts Ò²ÀàËÆ£¬³ýÁ˵绰ºÅÂë²»Ò»Ñù¡£²»¹ýµ±Õâ¸ö ISP ͨ¹ý±¾µØµÄÆäËû¹«Ë¾À´Ìṩ·þÎñµÄ»°£¬Ò²Ðí chatscripts ¾ÍÓÐËùÇø±ðÁË¡£
<example>
# cat &gt; /etc/chatscripts/KPN-DenHaag &lt;&lt;EOF
ABORT BUSY
ABORT 'NO CARRIER'
ABORT VOICE
ABORT 'NO DIALTONE'
ABORT 'NO DIAL TONE'
ABORT 'NO ANSWER'
ABORT ERROR
OK-AT-OK ATDT <var>0676012321</var>
CONNECT \d\c
EOF
# cat &gt; /etc/chatscripts/Planet-DenHaag &lt;&lt;EOF
ABORT BUSY
ABORT 'NO CARRIER'
ABORT VOICE
ABORT 'NO DIALTONE'
ABORT 'NO DIAL TONE'
ABORT 'NO ANSWER'
ABORT ERROR
OK-AT-OK ATDT <var>0676002505</var>
CONNECT \d\c
EOF
</example>
ΪÁËÄÜÁ¬½ÓÉÏÕâЩ ISP£¬ÄãÐèÒªÓû§ÃûºÍÃÜÂëÒÔ±ãÈà <prgn>pppd</prgn> ÔÚÐèÒªµÄʱºòÄÜÌṩÕâЩ×ÊÁÏ¡£ÕâЩÐÅÏ¢²»ÊDZ»´æ´¢ÔÚ <file>/etc/ppp/pap-secrets</file>£¨Èç¹ûʹÓà PAP ЭÒ飩¾ÍÊÇÔÚ <file>/etc/ppp/chap-secrets</file>£¨Èç¹ûʹÓà CHAP ЭÒ飩¡£ËäÈ» CHAP ¸ü¼ÓµÄ°²È«£¬µ«ÊÇ PAP ÈÔÈ»ÊÇʹÓÃ×îΪ¹ã·ºµÄ¡£ÒòΪÕâЩÎļþ°üº¬ÓС°ÃØÃÜ¡±£¬ËùÒÔȺ×éºÍÆäËûÓû§Ó¦¸Ã²»±»ÔÊÐí¶ÁдÕâЩÎļþ¡£ÕâЩÎļþµÄ¸ñʽÔÚ <manref name="pppd" section="8"> ÖÐÓнâÊÍ¡£¡°ÃØÃÜ¡±£¨µÚÈý¸ñ£©ÊÇͨ¹ýÓû§Ãû£¨µÚÒ»¸ñ£©ºÍ/»ò·þÎñÆ÷Ãû³Æ£¨µÚ¶þ¸ñ£©À´²éÕҵġ£µ±Á¬½Óµ½Ò»¸ö ISP ʱͨ³£ÊDz»ÖªµÀÕâ¸ö·þÎñÆ÷µÄÃû×ֵģ¬ËùÒÔÎÒÃÇÓÃÓû§Ãû´úÌ棻ÉÏÃæ <file>peers/KPN</file> ºÍ <file>peers/Planet</file> ÖÐµÄ <tt>user</tt> ÄÇÒ»ÐоÍÊÇÍê³ÉÕâ¸ö¶¯×÷µÄ¡£
<example>
# client name       server name  secret
kpn                 *            kpn
user3579@planet.nl  *            myfavoritepet
</example>
ÏêϸÐÅÏ¢£¬²ÎÔÄ <file>&f-ppp-readme;</file>¡£

<sect2 id="ppp-pppconfig">ʹÓà <package>pppconfig</package> ÉèÖà <prgn>pppd</prgn> 
<p>
Ò»¸ö¿ìËÙÉèÖà <prgn>pppd</prgn> ·½·¨¾ÍÊÇʹÓà <prgn>pppconfig</prgn> ³ÌÐò£¬¸Ã³ÌÐòÀ´×ÔͬÃûµÄÈí¼þ°ü¡£<prgn>pppconfig</prgn> ÏÈʹÓò˵¥½çÃæÀ´Ñ¯ÎÊʹÓÃÕßһЩÎÊÌ⣬ȻºóÉèÖÃÉÏÃæÌáµ½¹ýµÄÕâЩÎļþ¡£

<sect2 id="ppp-wvdial">ʹÓà <package>wvdial</package> ÉèÖà PPP ½Ó¿Ú
<p>
ÁíÒ»ÖÖʹÓà <prgn>pppd</prgn> µÄ´¦Àí·½·¨ÊÇ´Ó <prgn>wvdial</prgn> À´ÔËÐÐ <prgn>pppd</prgn>£¬<prgn>wvdial</prgn> ÔÚÈí¼þ°ü <package>wvdial</package> ÖС£²»Í¬ÓÚ <prgn>pppd</prgn> ʹÓà <prgn>chat</prgn> À´²¦ºÅºÍЭÉÌÁ¬½Ó£¬<prgn>wvdial</prgn> ÔÚÍê³É²¦ºÅºÍ³õʼ»¯Ð­ÉÌÖ®ºó²ÅÔËÐÐ <prgn>pppd</prgn> È¥Íê³ÉÊ£ÓàµÄ¹¤×÷¡£Ö»Òª¸ø³öµç»°ºÅÂë¡¢Óû§ÃûºÍÃÜÂ룬´ó¶àÊýÇé¿öÏ£¬<prgn>wvdial</prgn> ¶¼Äܳɹ¦½¨Á¢Á¬½Ó¡£

<sect id="net-name">ÃüÃûÖ÷»ú
<p>

<sect1 id="name-host">Ö÷»úÃû
<p>
<strong>Ö÷»úÃû</strong>ÊÇÓÉÄÚºËά»¤µÄ¡£³õʼ»¯½Å±¾ <file>/etc/init.d/hostname.sh</file> ÔÚϵͳÆô¶¯µÄʱºò¸ù¾Ý <file>/etc/hostname</file> Öд洢µÄÃû³ÆÉèÖÃÖ÷»úÃû£¨Ê¹Óà <prgn>hostname</prgn> Õâ¸öÃüÁ¡£Õâ¸öÎļþÓ¦¸Ã<strong>Ö»</strong>°üº¬ÏµÍ³µÄÖ÷»úÃû£¬¶ø²»ÊÇÍêÕûµÄÓòÃû¡£
<p>
ÔËÐÐ <prgn>hostname</prgn>£¨²»´øÈκβÎÊý£©¿ÉÒÔ´òÓ¡³öµ±Ç°µÄÖ÷»úÃû¡£

<sect1 id="name-mail">ÓʼþÃû
<p>
Ö÷»úµÄ<strong>ÓʼþÃû</strong>ÊÇÓÚÓʼþÏà¹ØµÄ³ÌÐòÓÃÀ´È·ÈÏÖ÷»úµÄ¡£<file>/etc/mailname</file> °üº¬Á˸ÃÃû³Æ²¢ÒÔпÕÐнáβ¡£ÓʼþÃûͨ³£ÊÇÖ÷»úµÄÍêÕûµÄÓòÃûÖ®Ò»¡£²ÎÔÄ <manref name="mailname" section="5">¡£ 
<p>
µç×ÓÓʼþ½ÓÊÜÕß¿´µ½µÄÄãÕą̂ &debian; Ö÷»ú·¢Ë͵ÄÓʼþÐÅÍ· <tt>From:</tt> µÄÄÚÈÝ£¬È¡¾öÓÚÄã»úÆ÷ÉÏÓʼþÓû§´úÀí(MUA)ºÍÓʼþ´«Êä´úÀí(MTA)µÄÉèÖ᣼ÙÉè±¾µØÓû§ <tt><var>foo</var></tt> ´ÓÓʼþÃûΪ <tt><var>myhost.dom</var></tt> µÄÖ÷»úÉÏ·¢ËÍÁËÒ»·âÓʼþ¡£ËͳöÈ¥µÄµç×ÓÓʼþµÄÐÅÍ· <tt>From:</tt> »áÊÇ£º
<list compact>
<item>¡°<tt>From: <var>foo</var>@<var>myhost.dom</var></tt>¡±
Èç¹û MUA ûÓÐ <tt>From:</tt> µÄÉèÖã»
<item>¡°<tt>From: <var>bar</var>@<var>myhost.dom</var></tt>¡±
Èç¹û MUA ÓС°<tt>From: <var>bar</var></tt>¡±µÄÉèÖã»
<item>¡°<tt>From: <var>bar</var>@<var>bogus.dom</var></tt>¡±
Èç¹û MUA ÓС°<tt>From: <var>bar</var>@<var>bogus.dom</var></tt>¡±µÄÉèÖá£
</list>
¾ÍËã MUA ÖÐÉèÖÃÁË <tt>From:</tt>£¬MTA »¹ÊÇ»á¼ÓÈë"<tt>Sender:<var>foo</var>@<var>herman.dom</var></tt>" À´±íʾÕæÕýµÄÀ´Ô´ ¡£
<p>
µ±È»£¬Èκθ´Ô MTA ÔÚÖ´ÐеØÖ·ÖØдµÄʱºò£¬Èçͬ<ref id="addr-catchall">ºÍ<ref id="addr-rewrite">ÖÐÌÖÂ۵ģ¬ÊÕ¼þÕß¿´µ½µÄÓʼþµØÖ·ÊÇ¿ÉÒÔÈÎÒâ¸Ä±äµÄ¡£

<sect id="net-dns">ÓòÃû·þÎñ(DNS)
<p>
Ö÷»úÓÉÓòÃûºÍ IP µØÖ·À´²éѯ¡£DNS ÊÇÒ»Ì׿ͻ§¶Ë-·þÎñÆ÷ϵͳ£¬ÔÚÕâÌ×ϵͳÖÐÓòÃû½âÊÍÆ÷·ÃÎÊÓòÃû·þÎñÆ÷´Ó¶ø°ÑÓòÃûºÍ IP µØÖ·»òÊÇÆäËûºÏÊʵÄÖ÷»úÁªÏµÔÚÒ»Æð¡£
GNU C Library <manref name="resolver" section="3"> Ò²Äܹ»ÔÚÎļþÖлòͨ¹ýÍøÂçÐÅÏ¢·þÎñ(NIS)À´²éÕÒ IP µØÖ·¡£
<p>
ijЩ³ÌÐò£¨È磬GNOME£©¾ÍÏ£ÍûÖ÷»úÃûÄÜ·ñ±»½âÎöΪһ¸ö IP µØÖ·²¢ÇÒÓµÓÐÒ»¸öºÏ·¨µÄÓòÃû¡£ÕâÑùÕæµÄÊǷdz£²»ºÏÊʵģ¬ÒòΪÖ÷»úÃûºÍÓòÃûÊÇÁ½¸öÍêÈ«²»Í¬µÄµÄ¶«Î÷¡£ÎªÁËÖ§³ÖÕâЩÈí¼þ£¬ÎÒÃÇÐèҪȷ±£ÏµÍ³Ö÷»úÃûÄܹ»±»½âÎö¡£Í¨³£µÄ×ö·¨¾ÍÊÇÔÚ <file>/etc/hosts</file> ÖмÓÈëÒ»ÐдøÓÐ IP µØÖ·ºÍϵͳÖ÷»úÃûµÄÄÚÈÝ¡£Èç¹ûÄãµÄϵͳÓÐÒ»¸öÓÀ¾ÃµÄ IP µØÖ·£¬ÄǾÍÓÃÕâ¸öµØÖ·£¬·ñÔòʹÓà 127.0.0.1 Õâ¸öµØÖ·¡£
<example>
   127.0.0.1 localhost.localdomain localhost
   127.0.1.1 uranus
</example>
ʹÓà <tt>hostname --fqdn</tt> À´²é¿´ÄãµÄϵͳµÄÖ÷»úÃûÄÜ·ñ±»½âÎöΪһ¸ö IP µØÖ·²¢ÓµÓÐÒ»¸öÓÐЧµÄÓòÃû¡£
<p>

<sect1 id="dns-resolver">ÓòÃû½âÎöÆ÷
<p>
²éÕÒºÍij¸öÓòÃûÁªÏµµÄ IP µØÖ·ÊÇÓòÃû½âÎöÆ÷µÄ¹¤×÷¡£´ó²¿·Ö³£ÓõÄÓòÃû½âÎöÆ÷ÊÇ GNU C Library ÖÐµÄ resovler ÌṩµÄ¹¦ÄÜ(<manref name="resolver" section="3">)¡£ÁíÒ»¸öÊÇÓÉ <package>libfiredns</package> Èí¼þ°üÌṩµÄ FireDNS resolver¡£»¹ÓÐÆäËûµÄ¡£
<p>
GNU LIBC µÄÓòÃû½âÎöÆ÷¶ÔÓòÃûµÄ½âÎöÊÇÓÉ <file>/etc/nsswitch.conf</file> ÖÐµÄ <tt>hosts</tt> ÕâÒ»ÐÐÅäÖþö¶¨µÄ¡£¸ÃÐÐÁгöÁ˽âÎöÓòÃûÓõķþÎñ£ºÀýÈç <tt>dns</tt>¡¢<tt>files</tt>¡¢<tt>nis</tt>¡¢<tt>nisplus</tt>¡£²ÎÔÄ <manref name="nsswitch.conf" section="5">¡£
¼´Ê¹ÔÚʹÓà <tt>files</tt> µÄÇé¿öÏ£¬ÓòÃû½âÎöÆ÷µÄÐÐΪҲÊÇÓÉ <file>/etc/hosts</file> Õâ¸öÅäÖÃÎļþ¿ØÖƵġ£²ÎÔÄ <manref name="hosts" section="5">¡£
<p>
ÉÏÊöÎļþ¶¼ÊǾ²Ì¬µÄ£¬Äã¿ÉÒÔÓÃÄãϲ»¶µÄ±à¼­Æ÷Ð޸ġ£
<p>
ÔÚʹÓà <tt>dns</tt> ·þÎñµÄÇé¿öÏ£¬ÓòÃû½âÊÍÆ÷µÄÐÐΪҲÊÇÓÉ <file>/etc/resolv.conf</file> Õâ¸öÅäÖÃÎļþ¿ØÖƵġ£²ÎÔÄ <manref name="resolv.conf" section="5">¡£<file>resolv.conf</file> µÄÒ»¸öÖØÒª¹¦ÄܾÍÊÇÌṩһ¸öÓòÃû·þÎñÆ÷µÄ IP µØÖ·ÁÐ±í£¬Í¨¹ý²éѯÕâЩ·þÎñÆ÷À´»ñµÃÓòÃû½âÎö¡£ÕâÒ»ÁÐ±í³£³£ÒÔÀ´ÒÀÀµÓÚÍøÂç»·¾³£¬¶øÇÒÔÚÄã»úÆ÷ÔËÐеÄʱºò£¬ÍøÂç»·¾³Ê±³£·¢Éú±ä»¯¡£<prgn>pppd</prgn> ºÍ <prgn>dhclient</prgn> ÕâÀà³ÌÐò¶¼ÄÜÌí¼Ó»òɾ³ý <file>resolv.conf</file> ÖеÄÐÅÏ¢¡£µ«ÊÇÕâЩ¹¦Äܲ»ÊÇÿ´Î¶¼ÄÜÕý³£¹¤×÷¶øÇÒÁ½Õß»¹»áÓгåÍ»¡£Èí¼þ°ü <package>resolvconf</package> ²ÉÓÃÁ˸üºÃµÄ·½·¨½â¾öÁËÕâ¸öÎÊÌ⣬²¢ÌṩÁËÒ»¸ö±ê×¼µÄ¿ò¼ÜÀ´¸üР<file>resolv.conf</file>¡£²ÎÔÄ<ref id="dns-resolvconf">¡£
<p>

<sect1 id="dns-resolvconf">¹ÜÀíÓòÃû·þÎñÆ÷ÐÅÏ¢ &ndash; <package>resolvconf</package>
<p>
Èí¼þ°ü <package>resolvconf</package> ÌṩÁËÒ»¸ö¿ò¼Ü£¬Äܶ¯Ì¬µÄ¹ÜÀí¹ØÓÚ¿ÉÓÃÓòÃû·þÎñÆ÷µÄÐÅÏ¢¡£Ëü½â¾öÁ˳¤¾ÃÒÔÀ´ÈçºÎά»¤Ò»¸ö¸øÓòÃû½âÎöÆ÷ºÍ DNS »º´æʹÓõĶ¯Ì¬µÄÓòÃû·þÎñÆ÷ÁбíµÄÎÊÌâ¡£Resolvconf °ÑËü×Ô¼ºÉèΪ¿ØÖÆÍøÂç½Ó¿ÚºÍÌṩÓòÃû·þÎñÐÅÏ¢µÄ³ÌÐòÓëÐèÒªÓòÃû·þÎñÐÅÏ¢µÄ³ÌÐòµÄÖмäý½é¡£
<p>
<package>resolvconf</package> ±»Éè¼Æ³É²»ÐèÒªÈκÎÊÖ¶¯ÉèÖþÍÄܹ¤×÷¡£µ«ÊÇ£¬Õâ¸öÈí¼þ°ü»¹ÊǺÜеģ¬¿ÉÄÜÐèҪһЩÊÖ¹¤µÄ¸ÉÔ¤²ÅÄÜÕý³£µÄ¹¤×÷¡£Èç¹ûÄãÔø¾­¶¨ÖƹýÈí¼þ°ü£¬¶øÇÒËüÃǸüÐÂÁË <file>/etc/resolv.conf</file> µÄ»°£ºÄã¾ÍÐèҪȥµôÕⲿ·Ö¶¨ÖÆ¡£¸ü¶àÐÅÏ¢²ÎÔÄ <url id="&f-resolvconf;">¡£

<sect1 id="dns-dnsmasq">»º´æ²éѯ¹ýµÄÓòÃû &ndash; <package>nscd</package>¡¢<package>dnsmasq</package>¡¢<package>pdnsd</package>¡¢<package>bind9</package>
<p>
Èç¹ûÄãµÄÓòÃû·þÎñÆ÷ÏìÓ¦Ëٶȷdz£Âý£¬Äã¿ÉÄÜÐèҪʹÓà <prgn>nscd</prgn> À´»º´æÓòÃû½âÎöÆ÷ <package>libc6</package> ²éѯµ½µÄ½á¹û¡£
<p>
Èç¹ûÄãÏ£ÍûΪÄã±¾µØÍøÂçÖеÄÆäËûÖ÷»ú»º´æ½á¹ûµÄ»°£¬Äã¿ÉÄÜҪȥÔËÐÐÒ»¸ö»º´æת·¢ÓòÃû·þÎñÆ÷(caching forwarding nameserver)¡£¾ÍÏñ <package>dnsmasq</package> »ò <package>pdnsd</package>¡£
<p>
Èç¹ûÄãÔ¸Ò⣬ÄãÒ²¿ÉÒÔÓÃÈí¼þ°ü <package>bind9</package> ÖÐµÄ <prgn>named</prgn> À´×ö»º´æת·¢ÓòÃû·þÎñÆ÷(caching forwarding nameserver)¡£µ«ÊÇÕâÊÇÒ»¸öºÜÅÓ´óµÄ³ÌÐò£¬³ý·ÇÄãÐèÒªËü¸ß¼¶¹¦ÄÜ£¬·ñÔò»¹ÊÇʹÓÃÉÏÃæÌáµ½µÄÄÇЩ³ÌÐò±È½ÏºÃ¡£
<p>
ËùÓÐÕâЩÈí¼þ°ü¶¼ÄÜºÍ <package>resolvconf</package> Ò»Æð¹¤×÷¡£

<sect1 id="dns-bind-server">ÌṩÓòÃû½âÎö·þÎñ &ndash; <package>bind</package>
<p>
Èç¹ûÄãÏ£Íû¸øÒ»¸öÓòÌṩһ¸öȨÍþµÄÓòÃû·þÎñµÄ»°£¬Äã¾ÍÐèÒªÒ»¸öÍêÉƵÄÓòÃû·þÎñÆ÷£¬ÀýÈçÈí¼þ°ü <package>bind9</package> ÖÐµÄ <prgn>named</prgn>¡£
<p>
Èç¹ûÄã°²×°ÁË <package>bind9</package>£¬ÄãÒ²Ó¦¸Ã°²×° <package>dnsutils</package>¡£
Äã¿ÉÄÜ»¹ÐèÒª°²×°ÕâÑùһЩ¹¤¾ßÈí¼þ°ü£º
<package>bind9-host</package>£»
<package>dns-browse</package>£»
<package>dnscvsutil</package>£»
<package>nslint</package>¡£
Äã¿ÉÄÜ»¹ÐèÒª°²×°ËµÃ÷Îĵµ£º
<package>bind9-doc</package>¡£
Äã¿ÉÄÜ»¹ÐèÒª°²×°¿ª·¢Îĵµ£º
<package>libbind-dev</package>£»
<package>libnet-dns-perl</package>¡£
Èç¹ûÄãÊÇʹÓà DHCP£¬ÏÂÃæÕâ¸öÈí¼þ°ü»á¶ÔÄãÓÐËù°ïÖú£º
<package>dhcp-dns</package>¡£
<p>
°²×° <package>bind9</package> »òÕßÓà <prgn>dpkg-reconfigure</prgn> <package>bind9</package> À´½øÐлù±¾µÄÉèÖá£ÉèÖðüÀ¨±à¼­Îļþ <file>name</file>¡£ÔÚ &debian; ÖУ¬Äã¿ÉÒÔÔÚ <file>/etc/bind/</file> ÕÒµ½Õâ¸öÎļþ£¬ËüÖ÷ÒªÊÇÓÃÀ´ÉèÖûù±¾µÄ DNS ÓòµÄ£»Ëü<tt>°üº¬</tt>ÁËÆäËûÁ½¸öÎļþ£º
<file>named.conf.local</file>£¬ÓÃÀ´¶¨Òå±¾µØÇøÓò£¬ºÍ <file>named.conf.options</file>£¬ÓÃÀ´ÉèÖÃÑ¡ÏîµÄ¡££¨ºóÕßµÄÖ´ÐÐÐèÒª <package>resolvconf</package> À´²úÉú  <file>/var/run/bind/named.options</file> Îļþ£¬³ýÁË <tt>forwarders</tt> µÄ˵Ã÷ÊÇÒ»¸öµ±Ç°¿ÉÓõķDZ¾µØÓòÃû·þÎñÆ÷ÁбíÖ®Í⣬ÆäÓ඼ºÍÔ­ÏȵÄÒ»Ñù¡£ÒªÀûÓÃÕâ¸ö£¬¿ÉÒÔÐÞ¸Ä <file>named.conf</file> ÖÐµÄ <tt>include</tt> ÕâÒ»Ñù£¬Ê¹Æä°üº¬ <file>/var/run/bind/named.options</file>¡£²ÎÔÄ<ref id="dns-resolvconf">¡££©
<p>
ÔÚ <file>named.conf*</file> Ŀ¼ÏµÄûÓÐÍêÕû·¾¶µÄÊý¾Ý¿âÎļþ»á±»´æ´¢ÔÚ <file>/var/cache/bind/</file>¡£ÕâÊÇÒ»¸öÕýÈ·µÄ´æ´¢ <prgn>named</prgn> ²úÉúµÄÎļþµÄµØ·½£ºÀýÈ磬ÓòµÄÊý¾Ý¿âÎļþΪÊ×£¬ÊØ»¤½ø³ÌµÄΪ´Î¡£<file>/etc/bind/</file> ÏÂÃæµÄÄÇЩ¾²Ì¬µÄÊý¾Ý¿â×ÊÁÏ£¬ÐèÒªÔÚ <file>named.conf</file> ÖÐÓÐÍêÕûµÄ·¾¶²ÅÄܱ»ÕÒµ½¡£ÏêÇé²ÎÔÄ <url id="&f-bind9;">¡£

<sect id="net-dhcp">ʹÓà DHCP À´ÅäÖÃÍøÂç½Ó¿Ú
<p>
µ×²ãµÄÍøÂç½Ó¿ÚÉèÖÿÉÒÔÓà Dynamic Host Configuration Protocol (DHCP) À´×Ô¶¯ÉèÖá£ÄãµÄ·À»ðǽ»ò·ÓÉÆ÷»ò¿í´ø ISP ¿ÉÄÜÓÃÕâ¸ö·½·¨À´ÅäÖà IP µØÖ·ºÍÆäËû²ÎÊý¡£
<p>
Òª×öÕâ¸ö¹¤×÷Äã±ØÐë°²×°ÏÂÁÐÈí¼þ°üµÄÆäÖÐÒ»¸ö£º
<list compact>
<item><package>dhcp3-client</package> (version 3, Internet Software Consortium)
<item><package>dhcpcd</package> (Yoichi Hariguchi and Sergei Viznyuk)
<item><package>pump</package> (Red Hat)
</list>

<package>pump</package> ¼òÒ×ÇÒ±»¹ã·ºÓ¦Óá£
<package>dhcp3-client</package> ¸´ÔÓ£¬µ«ÊÇ¿ÉÅäÖó̶ȸü¸ß¡£
<footnote>
ÔÚ 2004 ÄêËÄÔÂÖ®ºó£¬»¹ÓÐÒ»¸öÈí¼þ°ü <package>dhcp-client</package> ¿ÉÒÔÑ¡Óá£Ëü°üº¬Á˵ڶþ¸ö°æ±¾µÄ ISC DHCP  ¿Í»§¶Ë¡£ËüÄ¿Ç°ÒѾ­±»Èí¼þ°ü <package>dhcp3-client</package> Я´øµÄµÚÈý¸ö°æ±¾ËùÈ¡´ú¡£ÔÚ Sarge ·¢²¼Ö®ºóά»¤ÈËÔ±¼Æ»®°ÑÈí¼þ°ü <package>dhcp3-client</package> ¸ÄÃûΪ <package>dhcp-client</package>¡£
<p>
È·ÈÏÄãûÓа²×°ÊµÑé°æ±¾µÄ <package>dhcp-client</package> Èí¼þ°ü¡£<package>ifupdown</package> ²»ÄÜÓëÆäÒ»Æð¹¤×÷¡£
</footnote>

<sect id="net-high">&debian; µÄ¸ß¼¶ÍøÂçÉèÖÃ
<p>
<sect1 id="net-ifupdown">ʹÓà <package>ifupdown</package> ½øÐи߼¶ÍøÂçÉèÖÃ
<p>
ΪÁËÈÃÍøÂçÉèÖøü¼Ó¼òµ¥£¬&debian; ÌṩÁËÒ»¸ö±ê×¼µÄ¸ß¼¶ÍøÂçÉèÖù¤¾ß£¬°üº¬ <prgn>ifup</prgn> ºÍ <prgn>ifdown</prgn> ³ÌÐòºÍ <file>/etc/network/interfaces</file> Îļþ¡£
<footnote>
ÓÃÓÚµ±Ç°°æ±¾µÄ <package>ifupdown</package> µÄ <file>/etc/network/interfaces</file> Îļþ¸ñʽºÍÔçÆÚµÄ Potao ÉÏÓõÄÓÐÒ»µãµã²»¼æÈÝ¡£Èí¼þ°ü <package>ifupdown</package> µÄ post-installation ½Å±¾Ó¦¸ÃÄÜÔÚÐèÒªµÄʱºò×Ô¶¯Éý¼¶Õâ¸öÎļþ¡£²»¹ý£¬×îºÃ»¹ÊÇ×Ô¼º¼ì²éÒ»ÏÂÕâ¸öת»¯ºóµÄÎļþ¡£
</footnote>
Èç¹ûÄãÑ¡ÔñÓà <package>ifupdown</package> À´ÅäÖÃÄãµÄÍøÂ磬ÄÇô¾Í<strong>²»Òª</strong>ͬʱʹÓõײ㹤¾ßÈ¥ÅäÖá£ÕâÒ²Òâζ×ÅÄã²»Ó¦¸ÃÓÃÆäËû¸ß¼¶ÅäÖù¤¾ß£¬Èç <package>whereami</package>¡¢<package>divine</package>¡¢<package>intuitively</package> µÈ¡£ËûÃǵ÷ÓõÄÒ²ÊǵײãÅäÖù¤¾ß¡£<package>ifupdown</package> ³ÌÐòÔÚÉè¼ÆµÄʱºò£¬ÊǼÙÉè½öÓÐÕâÑùÒ»¸ö³ÌÐò»á±»ÓÃÀ´ÉèÖÃÍøÂç½Ó¿ÚµÄ¡£
<p>
¸üнӿÚÉèÖÃÊÇÖ´ÐУº
<example>
# ifdown eth0
# editor /etc/network/interfaces  # ×öÄãÐèÒªµÄµ÷Õû
# ifup eth0
</example>
<p>
¸ü¶àÐÅÏ¢²ÎÔÄ <manref name="interfaces" section="5">¡¢
<url id="&f-ifupdown;"> ºÍ 
<manref name="ifup" section="8">¡£

<sect2 id="high-static">Óù̶¨ IP µØַΪ½Ó¿Ú½øÐÐÉèÖÃ
<p>
¼ÙÉèÄãÒªÅäÖÃÒ»¸öÒÔÌ«Íø½Ó¿Ú£¬Ê¹ÆäÓµÓÐÒ»¸ö¹Ì¶¨µÄ IP µØÖ· <tt>192.168.0.111</tt>¡£Õâ¸ö IP µØÖ·ÒÔ <tt>192.168.0</tt> Ϊ¿ªÍ·£¬ËùÒÔËü¿Ï¶¨ÔÚ LAN ÉÏ¡£½øÒ»²½¼ÙÉè <tt>192.168.0.1</tt> ÊÇ LAN ÉÏÃæ Internet Íø¹ØµÄµØÖ·¡£±à¼­ <file>/etc/network/interfaces</file>£¬Ê¹Æä°üº¬ÀàËÆÏÂÃæÕâ¶ÎµÄÄÚÈÝ£º
<example>
iface eth0 inet static
        address 192.168.0.111
        netmask 255.255.255.0
        gateway 192.168.0.1
</example>
ÔÚ½Ó¿Ú±»¼¤»î»òÊÇÔÚ¼¤»î֮ǰ£¬Ä㶼¿ÉÒÔÅäÖýӿڵÄÆäËû²¿·Ö»òÕß½øÐÐÆäËû²Ù×÷¡£Ö»ÒªÄãÔÚ"up"ºÍ"down"ÄǼ¸ÐÐÖÐÉèÖúÏÊʵÄÃüÁî¡£
<example>
iface eth0 inet static
        address 192.168.0.111
        netmask 255.255.255.0
        gateway 192.168.0.1
        up route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.0.2 dev $IFACE
        down route del -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.0.2 dev $IFACE
        up echo Interface $IFACE going up | /usr/bin/logger -t ifup
        down echo Interface $IFACE Going down | /usr/bin/logger -t ifdown
</example>
ÄãÒ²¿ÉÒÔÑ¡Ôñ°ÑÃüÁî²åÈëµ½ <file>/etc/network/if-up.d</file> ºÍ <file>/etc/network/if-down.d</file> Ŀ¼ÏµĽű¾ÖС£ÕâЩ½Å±¾Ò²ÄÜÖ´ÐÐÀ©Õ¹µÄÑ¡Ïî¡£ÏêÇé²ÎÔÄ <manref name="interfaces" section="5">¡£ÀýÈ磬Èí¼þ°ü <package>resolvconf</package> °üº¬µÄ½Å±¾ÔÊÐíÄãÔÚ½Ó¿Ú±»¼¤»îµÄͬʱ£¬Íù <file>/etc/resolv.conf</file> Ìí¼ÓÖ¸¶¨µÄ DNS ÐÅÏ¢£º
<example>
iface eth0 inet static
        address 192.168.0.111
        netmask 255.255.255.0
        gateway 192.168.0.1
        dns-search somedomain.org
        dns-nameservers 195.238.2.21 195.238.2.22
</example>
<tt>dns-search</tt> Ñ¡ÏîµÄ²ÎÊý <tt>somedomain.org</tt> ·ûºÏ <manref name="resolv.conf" section="5"> ÖÐËù˵µÄ <tt>search</tt> Ñ¡ÏîµÄ²ÎÊý¡£
<tt>dns-nameservers</tt> Ñ¡ÏîµÄ²ÎÊý <tt>195.238.2.21</tt> ºÍ <tt>195.238.2.22</tt> ·ûºÏÑ¡Ïî <tt>nameserver</tt> µÄ²ÎÊý¡£ÆäËû¿ÉÒÔʶ±ðµÄÑ¡ÏîÊÇ <tt>dns-domain</tt> ºÍ <tt>dns-sortlist</tt>¡£²ÎÔÄ<ref id="dns-resolvconf">¡£

<sect2 id="high-dhcp">Óà DHCP ÅäÖýӿÚ
<p>
ΪÁËʹÓà DHCP ÅäÖýӿڣ¬Çë±à¼­ <file>/etc/network/interfaces</file>£¬Ê¹Æä°üº¬Ò»ÏÂÕâ¶ÎÄÚÈÝ£º
<example>
iface eth0 inet dhcp
</example>
ΪÁËÈà DHCP Äܹ¤×÷£¬ÄãÐèÒª°²×°Ò»¸ö<ref id="net-dhcp">ÖÐÌá¼°µÄ DHCP ¿Í»§¶Ë³ÌÐò¡£

<sect2 id="high-wifi">ÅäÖÃÎÞÏßÍø¿¨(Wi-Fi)½Ó¿Ú
<p>
Èí¼þ°ü <package>wireless-tools</package> °üº¬ÁËÒ»¸ö¹³×ӽű¾ <file>/etc/network/if-pre-up.d/wireless-tools</file>£¬Ê¹µÃÔÚ½Ó¿Ú±»¼¤»î֮ǰ£¬¶ÔÎÞÏßÍø¿¨(802.11a/b/g)½øÐÐÉèÖñäΪ¿ÉÄÜ¡£Ê¹Óà <prgn>iwconfig</prgn> ³ÌÐòÀ´Íê³ÉÉèÖ㬲ÎÔÄ <manref name="iwconfig" section="8">¡£ÈκÎÒ»¸ö <prgn>iwconfig</prgn> µÄÓÐЧ²ÎÊý£¬Ä㶼¿ÉÒÔ°ÑËü°üº¬ÔÚ <file>/etc/network/interfaces</file> ÖУ¬²¢ÔÚÔ­ÓеIJÎÊýÃû×ÖÇ°¼ÓÉÏ¡°wireless-¡±Õâ¸öǰ׺¡£ÀýÈ磬ҪÉèÖà <tt>eth0</tt>£¬ ʹµÃ <tt>eth0</tt> ÔÚ±» DHCP ¼¤»î֮ǰ£¬ ESSID É趨Ϊ <tt>myessid</tt>£¬encryption key É趨Ϊ <tt>123456789e</tt>£¬Çë±à¼­ <file>/etc/network/interfaces</file>£¬¼ÓÈëÒ»ÏÂÕâ¶ÎÄÚÈÝ£º
<example>
iface eth0 inet dhcp
        wireless-essid myessid
        wireless-key 123456789e
</example>
×¢Ò⣡Èç¹ûÄãʹÓà <prgn>waproamd</prgn> À´ÉèÖÃÕâ¸ö½Ó¿ÚµÄ»°£¬Äã²»Ó¦¸ÃʹÓÃÕâ¸ö·½·¨À´ÉèÖà ESSID ºÍ key¡£ÔÚ <prgn>ifup</prgn> Ö´ÐÐʱ£¬<prgn>waproamd</prgn> ¾ÍÒѾ­ÉèÖúÃÁË ESSID ºÍ key¡£²ÎÔÄ<ref id="trigger-waproamd">¡£

<sect2 id="high-ppp">ÉèÖÃ PPP ½Ó¿Ú
<p>
<prgn>ifup</prgn> ºÍ <prgn>ifdown</prgn> ³ÌÐòʹÓà <prgn>pon</prgn> ºÍ <prgn>poff</prgn> À´Ìí¼ÓºÍɾ³ý PPP ½Ó¿Ú£¬ËùÒÔÏÈÔĶÁ<ref id="low-ppp">¡£
<p>
¼ÙÉèÄãÒѾ­É趨ÁË PPP ºÍ <tt>myisp</tt> Ò»Æð¹¤×÷¡£Çë±à¼­  <file>/etc/network/interfaces</file>£¬Ê¹Æä°üº¬ÈçÏÂÕâ¶ÎÄÚÈÝ£º
<example>
iface ppp0 inet ppp
        provider myisp
</example>
ÕâÑùÉèÖúúó£¬<prgn>ifup ppp0</prgn> »áÍê³É
<example>
pon myisp
</example>
Òź¶µÄÊÇ£¬Ä¿Ç°ÎÞ·¨ÔÚ <file>/etc/network/interfaces</file> ÖÐµÄ <tt>ppp</tt> ¶ÎÂäÀïÃæÌṩ¶îÍâµÄ <prgn>pppd</prgn> Ñ¡Ïî¡£
<footnote>
²ÎÔÄ bug <url id="&bug-iud-pon-args;" name="#196877">.
</footnote>
<p>
Ä¿Ç°ÎÞ·¨Ê¹Óà <package>ifupdown</package> À´Îª PPP ½Ó¿ÚÌṩ¸¨ÖúµÄÉèÖá£ÒòΪÔÚ <prgn>pppd</prgn> Íê³ÉÁ¬½Ó֮ǰ <prgn>pon</prgn> ¾ÍÒѾ­´æÔÚÁË£¬<prgn>ifup</prgn> Ö´ÐÐ<tt>¼¤»î</tt>½Å±¾Ö®ºó PPP ½Ó¿Ú²Å¿ÉÓᣵ½Õâ¸ö bug
<footnote>
²ÎÔÄ bug <url id="&bug-iud-ppp-wait;" name="#127786">.
</footnote>
±»ÐÞÕý֮ǰ£¬»¹ÊÇÐèÒªÔÚ <file>/etc/ppp/ip-up</file> »ò <file>/etc/ppp/ip-up.d/</file> ÖнøÐжîÍâµÄÉèÖá£

<sect2 id="high-pppoe">ÉèÖÃ PPPoE ½Ó¿Ú
<p>
Ðí¶à¿í´øÓ¢ÌØÍø·þÎñÌṩÉÌ(ISP)ʹÓà PPP ЭÒéÀ´Á¬½Ó£¬¼´Ê¹Óû§µÄ»úÆ÷ͨ¹ýÒÔÌ«ÍøºÍ/»ò ATM ÍøÂçÁ¬½ÓËûÃÇ¡£
ÕâÊÇͨ¹ý PPPoE µÄ¼¼ÊõÀ´Íê³ÉµÄ£¬¼´°Ñ PPP ìõ·â×°ÔÚÒÔÌ«Íø¿¨(Ethernet)µÄìõÀïÃæ¡£
¼ÙÉèÄãµÄ ISP ±»³ÆΪ <tt><var>myisp</var></tt>¡£Ê×ÏÈΪ <tt><var>myisp</var></tt> ÉèÖà PPP ºÍ PPPoE¡£×î¼òµ¥µÄ·½·¨¾ÍÊÇ°²×° <package>pppoeconf</package>£¬È»ºó´ÓÖÕ¶ËÖÐÔËÐÐ <prgn>pppoeconf</prgn>¡£Ö®ºó±à¼­ <file>/etc/network/interfaces</file> ʹÆä°üº¬ÈçÏÂÕâ¶ÎÄÚÈÝ£º
<example>
iface eth0 inet ppp
        provider <var>myisp</var>
</example>
<!--
The better one is following but need verification
<example>
mapping eth0
        script /root/bin/echo-ppp0

iface ppp0 inet ppp
        provider <var>myisp</var>
</example>
where,
<example>
# cat &gt; /root/bin/echo-ppp0 &lt;&lt;EOF
# /bin/sh
echo ppp0
EOF
# chmod 755 /root/bin/echo-ppp0
</example>
-->
<p>
ÓÐʱºò×î´ó´«Ê䵥λ Maximum Transmit Unit (MTU) ºÍ PPPoE over Digital Subscriber Line (DSL) Óйء£ÏêÇé²ÎÔÄ <url id="&dsl-howto;" name="DSL-HOWTO">¡£
<p>
×¢Ò⣡Èç¹ûÄãµÄ¿í´øµ÷Öƽâµ÷Æ÷°üº¬Â·Óɹ¦ÄÜ¡£ÄÇôµ±µ÷Öƽâµ÷Æ÷/·ÓÉÆ÷×Ô¼º´¦Àí PPPoE Á¬½Óʱ£¬ÔÚ LAN ÖÐËü¾Í±íÏֵĺͼòµ¥µÄÁ¬½Ó Internet µÄÒÔÌ«ÍøÍø¹ØÒ»Ñù¡£

<sect2 id="high-dual">ΪÍø¹ØÅäÖöà¸öÒÔÌ«Íø½Ó¿Ú
<p>
¼ÙÉè <file>eth0</file> ÒѾ­Óà DHCP-configured IP µØÖ·Á¬½Óµ½ Internet£¬²¢ÇÒ <file>eth1</file> ʹÓÃÒ»¸ö¹Ì¶¨ IP µØÖ· <tt>192.168.1.1</tt> Á¬½Óµ½ LAN¡£±à¼­ <file>/etc/network/interfaces</file> ʹÆä°üº¬ÈçÏÂÄÚÈÝ£º
<example>
iface eth0 inet dhcp

iface eth1 inet static
        address 192.168.1.1
        netmask 255.255.255.0
</example>
Èç¹û°´ÕÕ<ref id="net-router">ÖÐÃèÊöµÄÈ¥¼¤»îÖ÷»úÉ쵀 NAT£¬ÄÇôÄã¾ÍÄÜºÍ LAN ÖеÄÆäËûÖ÷»úÒ»ÆðÏíÓû¥ÁªÍøÁ¬½ÓÁË¡£

<sect2 id="high-virtual">ÉèÖÃÐéÄâ½Ó¿Ú
<p>
ʹÓÃÐéÄâ½Ó¿Ú£¬Äã¿ÉÒÔÉèÖÃÒ»¸öÒÔÌ«Íø¿¨Ê¹Æä³ÉΪӵÓкܶà IP ×ÓÍøµÄ½Ó¿Ú¡£ÀýÈ磬¼ÙÉèÄãµÄÖ÷»úÔÚ LAN ÍøÂçÉÏ(192.168.0.x/24)¡£ÄãÏëÒªÈÃÖ÷»úÁ¬½Óµ½»¥ÁªÍø£¬²¢ÓÃÒѾ­´æÔÚµÄÒÔÌ«Íø¿¨Í¨¹ý DHCP À´»ñµÃ¹«Íø IP µØÖ·¡£±à¼­ <file>/etc/network/interfaces</file> ʹÆä°üº¬ÈçÏÂÒ»¶ÎÄÚÈÝ£º
<example>
iface eth0 inet static
        address 192.168.0.1
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255

iface eth0:0 inet dhcp
</example>
<tt>eth0:0</tt> ½Ó¿ÚÊÇÒ»¸öÐéÄâµÄ½Ó¿Ú¡£µ±Ëü±»¼¤»îµÄʱºò£¬ËüµÄÕæʵӲ¼þ <tt>eth0</tt> Ò²»á±»¼¤»î¡£

<sect1 id="net-reconf">ʹÓà <package>ifupdown</package> µÄÂß¼­½Ó¿Ú¶¨Òå½øÐи߼¶ÍøÂçÉèÖÃ
<p>
ÏÂÁÐÄÚÈÝÖУ¬¶ÔÓÚ¶ÁÕ߶øÑÔÁ˽â<strong>ÎïÀí½Ó¿Ú(physical interface)</strong>ºÍ<strong>Âß¼­½Ó¿Ú(logical interface)</strong>Ö®¼äµÄ²»Í¬ÊÇÖØÒªµÄ¡£
<footnote>
Õâ¸öÊõÓïÔÚ <package>ifupdown</package> µÄ˵Ã÷ÖлᱻʹÓá£
</footnote>
<strong>ÎïÀí(physical)</strong>½Ó¿Ú¾ÍÊÇÎÒÃÇËù˵µÄ¡°½Ó¿Ú¡±£¬ÊÇÓÉÄÚºËÃüÃûΪ <tt>eth0</tt>¡¢<tt>eth1</tt>¡¢<tt>ppp0</tt> »òÆäËû¡£<strong>Âß¼­(logical)</strong>½Ó¿ÚÊÇÒ»Ì׿ÉÒÔÓÃÀ´¶ÔÎïÀí½Ó¿ÚµÄ¿É±ä²ÎÊý½øÐÐÉèÖõÄÖµµÄ¼¯ºÏ¡£Èç¹ûÄã¾õµÃ»¹²»Çå³þ£¬ÄÇôÔÚÔĶÁµÄʱºò¾ÍÓá°Óà <var>X</var> ÅäÖÃÎļþÀ´ÉèÖýӿڡ±È¥´úÌæ¡°ÉèÖÃÂß¼­½Ó¿Ú <var>X</var>¡±¡£
<p>
ÔÚ <file>/etc/network/interfaces</file> ÖÐ <tt>iface</tt> µÄ¶¨Òåʵ¼ÊÉÏÊÇÂß¼­½Ó¿ÚµÄ¶¨Ò壬¶ø²»ÊÇÎïÀí½Ó¿ÚµÄ¡£
<footnote>
×¢Ò⣬ÔÚ <tt>auto</tt> ×Ö´®µÄÄÇÒ»ÐÐÉÏÃüÃûµÄ½Ó¿Ú±ØÐëÊÇÎïÀí½Ó¿Ú£¬¶ø²»ÊÇÂß¼­½Ó¿Ú¡£
</footnote>
Èç¹ûÄã´ÓÀ´²»È¥ÖØÐÂÅäÖÃÄãµÄ½Ó¿Ú£¬ÄÇôÄã¾Í¿ÉÒÔºöÂÔÕâ¸öϸ½Ú¡£ÒòΪÎïÀí½Ó¿Ú <var>foo</var> ȱʡ»á±»ÉèÖóÉÂß¼­½Ó¿Ú <var>foo</var>¡£
<p>
¼ÙÉèÄãµÄµçÄÔÊÇ̨±Ê¼Ç±¾£¬ÄãÐèÒªÔÚ¼ÒÀïºÍ¹¤×÷µÄµØ·½Ö®¼ä´©Ëó¡£ÄÇôµ±ÄãµÄµçÄÔÁ¬½Óµ½¹«Ë¾µÄÍøÂç»ò¼ÒÀïµÄÍøÂçʱ£¬Ä㶼ҪÏàÓ¦µØ¶Ô <tt>eth0</tt> ½øÐÐÉèÖá£
<p>
Ê×Ïȶ¨ÒåÁ½¸öÂß¼­½Ó¿Ú <tt>home</tt> ºÍ <tt>work</tt>£¨È¡´ú <tt>eth0</tt>£¬¾ÍÏñÎÒÃÇÏÈÇ°×öµÄ£©£¬ËüÃÇ·Ö±ðÃèÊöÁËÔÚ¼ÒÖеĺ͹«Ë¾µÄÍøÂçÖÐÈçºÎÉèÖýӿڡ£
<example>
iface home inet static
        address 192.168.0.123
        netmask 255.255.255.0
        gateway 192.168.0.1

iface work inet static
        address 81.201.3.123
        netmask 255.255.0.0
        gateway 81.201.1.1
</example>
È»ºóͨ¹ýÊʵ±µÄÉèÖ㬲¢ÔÚÃüÁîÐÐÖÐÖ¸¶¨ÕâЩÉèÖá£ÎïÀí½Ó¿Ú <tt>eth0</tt> ¾ÍÄÜÔÚ¼ÒÍ¥ÍøÂçÖб»¼¤»îÁË£º
<example>
# ifup eth0=home
</example>
<p>
Õë¶Ô¹«Ë¾ÍøÂçÖØÐÂÉèÖà <tt>eth0</tt> Ö»ÒªÔËÐÐÕâЩÃüÁ
<example>
# ifdown eth0
# ifup eth0=work
</example>
<p>
×¢Ò⣡Èç¹û <file>interfaces</file> ÖеÄÄÚÈÝÈçÉÏÊöËùдµÄ£¬ÄÇôÎÒÃǾͲ»Äܵ¥¶ÀÖ´ÐÐ <tt>ifup eth0</tt> À´¼¤»î <tt>eth0</tt>¡£ÀíÓÉÊÇ <prgn>ifup</prgn> ʹÓÃÎïÀí½Ó¿ÚÃû×÷ΪȱʡµÄÂß¼­½Ó¿ÚÃû£¬µ«ÊÇÏÖÔÚÔÚÎÒÃǵÄÀý×ÓÖУ¬Ã»ÓйØÓÚÂß¼­½Ó¿Ú <tt>eth0</tt> µÄ¶¨Òå¡£

<sect1 id="net-magic-reconf">ʹÓà <package>ifupdown</package> ½øÐÐ×Ô¶¯µÄÍøÂçÉèÖÃ
<p>
ÔÚ <prgn>ifup</prgn> ÔËÐеÄʱºò£¬½Ó¿ÚµÄÃû³Æ¿ÉÒÔ±»¡°Ó³Éä(mapped)¡±Îª±ðµÄÃû³Æ¡£ÖÁÓÚÓ³Éä³ÉʲôÃû³Æ£¬Õâ¸öÊÓÇé¿ö¾ö¶¨¡£Òò´Ë <prgn>ifup</prgn> Äܹ»±»ÉèÖÃΪÓÃÔ¤ÉèµÄÂß¼­½Ó¿Ú¼¯ºÏÖеÄÒ»¸öºÏÊʵÄÂß¼­½Ó¿ÚÀ´¼¤»îÎïÀí½Ó¿Ú¡£
<p>
Âß¼­½Ó¿ÚÃû³ÆÓ³Éä²úÉúµÄÇé¿öÈçÏ£º
<list compact>
<item>Èç¹ûÖ´ÐÐ <prgn>ifup</prgn> µÄʱºòûÓиø¶¨Âß¼­½Ó¿ÚÃû³Æ£¬ÄÇôÎïÀí½Ó¿ÚÃû³Æ¾Í»á±»ÓÃ×÷³õʼµÄÂß¼­½Ó¿ÚÃû³Æ¡£
<item>Èç¹ûÂß¼­½Ó¿ÚÃû³Æ·ûºÏ <tt>mapping</tt> ÃèÊöµÄ glob-pattern£¬ÄÇô¾Í»áÓ³Éäµ½ÐÂÉú³ÉµÄÂß¼­½Ó¿ÚÃû³ÆÖÐÈ¥¡£¶ÔÓÚÿ¶ÎÓ³ÉäÕâÊÇ°²Ë³Ðò½øÐеġ£
<item>Èç¹û×îÖÕµÄÂß¼­½Ó¿ÚÃû³ÆÊÇ <file>/etc/network/interfaces</file> Öж¨ÒåµÄÒ»¸öÂß¼­½Ó¿ÚµÄ±êÇ©£¬ÄÇôÎïÀí½Ó¿Ú¾Í±»µ±×÷Õâ¸öÂß¼­½Ó¿ÚÀ´¼¤»î¡£·ñÔò <prgn>ifup</prgn> »á´òÓ¡"Ignoring unknown interface"ËæºóÍ˳ö¡£
</list>
<tt>mapping</tt> µÄÓï·¨£º
<example>
mapping <var>glob-pattern</var>
        script <var>script-name</var>
        [map <var>script input</var>]
</example>
<tt>mapping</tt> ¶ÎÂäÖÐµÄ script£¬×ÜÊÇ°Ñ<strong>ÎïÀí</strong>½Ó¿ÚµÄÃû³Æ×÷ΪËüµÄ²ÎÊý¡£ÆäËû¡°map¡±ÐÐÖеÄÄÚÈÝ£¨²»°üº¬¡°map¡±±¾Éí£©¶¼»á×÷ΪËüµÄ±ê×¼ÊäÈë¡£¸Ã script ÔÚÍ˳ö֮ǰ»á°ÑÓ³ÉäµÄ½á¹û×÷Ϊ±ê×¼Êä³ö´òÓ¡³öÀ´¡£
<p>
ÀýÈ磬ÏÂÃæÕâ¶Î <tt>mapping</tt> »áÈà <prgn>ifup</prgn> ÓÃÂß¼­½Ó¿Ú <tt>home</tt> À´¼¤»î½Ó¿Ú <tt>eth0</tt>¡£
<example>
mapping eth0
        script /usr/local/sbin/echo-home
</example>
<prgn>/usr/local/sbin/echo-home</prgn> µÄÄÚÈÝΪ£º
<example>
#!/bin/sh
echo home
</example>
<p>
ÒòΪӳÉäÊÇÓɽű¾À´Íê³ÉµÄ£¬ËùÒÔ×Ô¶¯Ñ¡ÔñÂß¼­½Ó¿ÚÊÇ¿ÉÄÜµÄ &mdash; »ùÓÚһЩ²âÊÔ¡£²ÎÔÄ<ref id="high-guessnet">Öеķ¶Àý¡£

<sect2 id="high-guessnet">ʹÓà <package>guessnet</package> À´Ñ¡ÔñÂß¼­½Ó¿Ú
<p>
°²×°Èí¼þ°ü <package>guessnet</package>¡£È»ºóÔÚ <file>/etc/network/interfaces</file> ÖмÓÈëÈçÏÂÒ»¶ÎÄÚÈÝ£º
<example>
mapping eth0
        script guessnet-ifupdown
        map home
        map work
</example>
ÏÖÔÚ£¬µ±Äã <prgn>ifup eth0</prgn> µÄʱºò£¬<prgn>guessnet</prgn> »á¼ì²â <tt>eth0</tt> ÊÇ·ñÄÜÓà <tt>home</tt> »ò <tt>work</tt> À´¼¤»î¡£ËüÓô洢ÔÚÂß¼­½Ó¿Ú¶¨ÒåÖеÄÐÅÏ¢À´Íê³ÉÕâÏ×÷¡£

<sect1 id="high-laptop-net">ʹÓà <package>laptop-net</package> ½øÐÐ×Ô¶¯µÄÍøÂçÉèÖÃ
<p>
Èí¼þ°ü <package>laptop-net</package> ²ÉÓò»Í¬µÄ·½·¨´¦Àí×Ô¶¯µÄÍøÂçÉèÖá£Laptop-net ²»Óà <package>ifupdown</package> µÄÂß¼­½Ó¿Ú£¬È¡¶ø´úÖ®µÄÊÇËü×Ô¼ºµÄÒ»Ì×ÅäÖÃ"·½°¸"ºÍ¡°ÅäÖÃÎļþ¡±ÏµÍ³¡£²»¹ý£¬Laptop-net »¹ÊÇ»áʹÓà <prgn>ifup</prgn> ºÍ <prgn>ifdown</prgn> À´ÉèÖÃÎïÀí½Ó¿Ú¡£¸ü¶àÏêϸÎĵµÇë°²×° <package>laptop-net-doc</package>¡£

<sect1 id="high-network-manager">ʹÓà <package>network-manager</package> ½øÐÐ×Ô¶¯µÄÍøÂçÉèÖÃ
<p>
<package>network-manager</package> Õâ¸öÈí¼þÏÖÔÚÊÇÓÉ Fedora µÄ¿ª·¢ÕßÃÇ¿ª·¢µÄ£¬Ubuntu ÒѾ­¶ÔÆä½øÐÐÁË´ò°ü¡£Óг¯Ò»ÈÕËüÒ²»á³öÏÖÔÚ debian ÖУ¬µ½Ê±ºòÎÒÃÇÓ¦¸Ã·ÅÆú ifupdown ºÍÆäËû¹ýʱµÄÅóÓÑÃÇÁË¡£


<sect id="high-rename">´¦ÀíÄں˶ԽӿÚÃüÃûµÄ²»Ò»ÖÂÐÔ
<p>
<tt>eth0</tt>¡¢<tt>eth1</tt> ÕâÀàÉ豸µÄÃû³ÆÊÇÓÉÄÚºËÖ¸¶¨µÄ£¬ÄÚºËÊÇ°´ÕÕ´´½¨ÕâЩ½Ó¿ÚµÄ˳ÐòÀ´ÃüÃûµÄ¡£ÔÚ¿ª»úµÄʱºò£¬±»¼ì²âµ½µÄÊÊÅäÆ÷ͨ³£¶¼ÊÇ°´ÕÕÒ»ÑùµÄ˳Ðò±»¼ì²âµ½µÄ£¬ËùÒÔÿ´Î¶¼±»Ö¸¶¨ÎªÍ¬Ò»¸öÃû³Æ¡£µ«ÊÇ£¬¶ÔÓÚÈȰβåµÄÊÊÅäÆ÷Çé¿ö¾Í²»ÊÇÕâÑùÁË¡£ÔÚ²»Í¬Çé¿öÏ£¬ËüÃÇ¿ÉÄÜÒÔÈÎÒâµÄ˳Ðò±»¼ì²âµ½£¬ÓÚÊÇÄں˾͸øËüÃÇÖ¸¶¨²»Í¬µÄÃû³Æ¡£
<p>
ÒòΪÕâ¸ö¹Øϵ£¬ÔÚÒ»¸öÍø¿¨ÊÊÅäÆ÷ÊÇÈȰβåÉ豸µÄϵͳÖУ¬Ê¹Óà <file>/etc/network/interfaces</file> ¸ø <tt>eth0</tt>¡¢<tt>eth1</tt> ÕâÀà½Ó¿Ú¶¨ÒåÂß¼­½Ó¿ÚºÍÒÀ¿¿È±Ê¡µÄÓ³Éä¹Øϵ¶¼ÊDz»¿ÉÄÜÍêÈ«Õý³£¹¤×÷µÄ¡£ÒªÈ¡´úÕâ¸ö×ö·¨£¬Äã±ØÐë¸øÂß¼­½Ó¿ÚÉèÖÃÒ»¸öΨһµÄÃû³Æ£¬²¢Ê¹ÓÃÏÂÁÐÁ½¸ö·½·¨ÖеÄÒ»¸öÀ´ÏÞÖÆÄÄЩÂß¼­½Ó¿Ú»á±»Ö¸¶¨¸øÄÄЩÊÇÊÊÅäÆ÷¡£
<p>
Ò»¸ö·½·¨ÊÇʹÓà <prgn>nameif</prgn>£¨ÔÚ <package>net-tools</package> Èí¼þ°üÖУ©¹¤¾ß»òÁíÍâÒ»¸ö¸üÁé»îµÄ <prgn>ifrename</prgn>£¨ÔÚ <package>ifrename</package> Èí¼þ°üÖУ©¹¤¾ß£¬Ê¹Äں˰´ÕÕÊÊÅäÆ÷µÄÊôÐÔÀ´Ö¸¶¨½Ó¿ÚÃû³Æ¡£Ê¹ÓÃÕâ¸öÃüÃû·½°¸µÄ»°£¬ÎïÀí½Ó¿ÚµÄÃû³Æ¿ÉÒÔ±»ÓÃÀ´ÍƲâ³ö½Ó¿ÚÏÂÃæµÄÊÊÅäÆ÷µÄÃû³Æ¡£
<p>
ÁíÍâÒ»ÖÖ·½·¨ÊÇʹÓà <prgn>ifup</prgn> Ó³Éä»úÖÆ¡£ÕâÖÖÇé¿öϾͻá¸ù¾Ý½«Òª±»¼¤»îµÄÎïÀí½Ó¿ÚËùÔÚµÄÊÊÅäÆ÷µÄijЩÊôÐÔÀ´Ñ¡ÔñÂß¼­½Ó¿Ú¡£
<p>
¼ÙÉ裬ÄãÓÐÁ½¸öÍøÂçÊÊÅäÆ÷£¬·Ö±ðÔÚÍøÂç <tt>net1</tt> ºÍ <tt>net2</tt> ÖÐʹÓá£<file>/usr/share/doc/ifupdown/examples/</file> Ŀ¼ÏÂÃæ°üº¬ÁËÒ»¸öÓ³Éä½Å±¾£¬Äܹ»¸ù¾ÝÊÊÅäÆ÷µÄýÌå·ÃÎÊ¿ØÖƵØÖ·£¨MAC µØÖ·£©À´Ñ¡ÔñÂß¼­½Ó¿Ú¡£Ê×ÏÈ°²×°½Å±¾µ½ÊʺϵÄĿ¼¡£
<example>
# install -m770 /usr/share/doc/ifupdown/examples/match-mac-address.sh \
   /usr/local/sbin/
</example>
È»ºóÔÚ <file>/etc/network/interfaces</file> ÖмÓÈëÈçÏÂÒ»¶ÎÄÚÈÝ£º
<example>
mapping eth0
        script /usr/local/sbin/match-mac-address.sh
        map 02:23:45:3C:45:3C net1
        map 00:A3:03:63:26:93 net2
</example>
¸ü¶à£¬¸ü¸´ÔÓµÄÀý×Ó²ÎÔÄ<ref id="high-multistage-mapping">¡£
<p>
²»¹Ü²ÉÓÃÄÇÖÖ·½·¨£¬Í¨³£¶¼ÊÇÓà MAC µØÖ·À´Ê¶±ðÊÊÅäÆ÷µÄ¡£

<sect id="net-trigger">Æô¶¯(triggering)ÍøÂçÉèÖÃ
<p>
ÎÒÃÇÒѾ­ÖªµÀÁ˽ӿÚÊÇÈçºÎÉèÖúÍÖØÐÂÉèÖõġ£ÕâЩ¶¯×÷ÐèÒªÔÚÊʵ±µÄʱºòÍê³É¡£
<p>
´«Í³ÉÏ£¬ÍøÂçÊÇÔÚ¿ª»úµÄʱºòÓÉ <file>/etc/rcS.d/S40networking</file> Õâ¸ö½Å±¾ÉèÖõģ¬¶øÇÒ¼«ÉÙÖØÐÂÉèÖá£ÆäËûÐèÒªÍøÂçµÄ·þÎñËæºóÆô¶¯¡£Ôڹػú»òÕßÖØÆôµÄʱºò£¬initscripts °´ÕÕÏà·´µÄÑ­ÐòÖ´ÐС£
<p>
È»¶øÏÖÔÚ£¬GNU ºÍ Linux Õý³¯×ÅÖ§³Ö¶¯Ì¬Ó²¼þ¸ü»»ºÍÍ»·¢Ê¼þµÄ·½Ïò·¢Õ¹¡£Ê×ÏÈÊÇΪ¿ÉÌæ»»µÄ PCMCIA ¿¨Ìṩ֧³Ö¡£Ä¿Ç°ÔÚÌí¼Ó <tt>hotplug</tt> »úÖƺ󣬺ܶàÍâÉ趼ÄÜÔÚµçÄÔÔËÐеÄʱºò½øÐÐÌæ»»¡£ÕâÒ²°üÀ¨ÁËÍøÂçÓ²¼þ¡£×¢Ò⣡µ±Äã°Î²å¿ÉÈȰβåÉ豸µÄʱºò£¬Éæ¼°µ½´ËÓ²¼þµÄ·þÎñÐèÒªÔÚ²åÈëÖ®ºóÆô¶¯»òɾ³ý֮ǰ¹Ø±Õ¡£Õâ¾ÍÒâζ×ÅÕâÀà·þÎñÐèÒª´Ó System V init ϵͳÖÐɾ³ý£¬²¢Ê±ÆÚ´¦ÓÚ <package>ifupdown</package> µÄ¿ØÖÆ֮ϡ£
<p>
ÀýÈ磬¼ÙÉèÊÜ initscript <file>/etc/init.d/foo</file> ¿ØÖƵķþÎñ <tt>foo</tt> ÒÀÀµÓÚ¶¯Ì¬ÉèÖõÄÍøÂç½Ó¿Ú <tt>eth0</tt>¡£
<list compact>
<item>Ê×ÏÈ£¬´Ó init ϵͳÖÐɾ³ý <tt>foo</tt>¡£Èç¹ûÄãÊÇʹÓà <package>sysv-rc</package> init ϵͳµÄ»°£¬ÄÇôÇëÍê³ÉÏÂÃ漸¸öÊÂÏî¡£
<footnote>
×¢Ò⣡Õâ¸ö²Ù×÷ºöÂÔÁË¡°stop¡±Á´½Ó(<file>/etc/rc?.d/K??foo</file>)¡£ÏêϸÇé¿ö²ÎÔÄ<ref id="runlevels">¡£ 
</footnote>
<example>
# rm /etc/rc[2345].d/S??foo
</example>
<item>È»ºóͨ¹ýÔÚ<file>/etc/network/interfaces</file> ÖÐ <tt>eth0</tt> ¶ÎÂäÀï¼ÓÈë <tt>up</tt> ºÍ <tt>down</tt> µÄÑ¡Ï½« <tt>foo</tt> ÖÃÓÚ <package>ifupdown</package> µÄ¿ØÖÆ֮ϡ£´ËÎļþ»¹Äܺô½Ð <tt>foo</tt> µÄ³õʼ»¯½Å±¾(initscript)£º
<example>
iface eth0 inet dhcp
        up /etc/init.d/foo start
        down /etc/init.d/foo stop
</example>
</list>

<sect1 id="trigger-auto">ÔÚ¿ª»úµÄʱºòÆô¶¯(triggering)ÍøÂçÉèÖÃ
<p>
ÔÚÆô¶¯µÄʱºò init ½Å±¾ <prgn>/etc/rcS.d/S40networking</prgn> ÔËÐÐÁË <prgn>ifup -a</prgn> ÃüÁî¡£Õâ¸öÃüÁ»îÁËËùÓÐÔÚ <file>/etc/network/interfaces</file> ÖÐ <tt>auto</tt> ¶ÎÂäÀïÂÞÁÐÁ˵ÄÎïÀí½Ó¿Ú¡£
<p>
ÏÖÔÚʹÓö¯Ì¬µÄ·½Ê½À´´¦ÀíÍøÂçÉèÖÃÊÇÒ»ÖÖ¸üºÃ·½·¨¡£Ò»µ©Õâ¸öÖ§³ÖÓ²¼þ¶¯Ì¬¸ü»»µÄ»úÖÆÂäλÁË£¬´¦Àí¾²Ì¬µÄÓ²¼þ¾Í±äµÃ·Ç³£µÄ¼òµ¥£¬¾ÍºÍ´¦Àí¶¯Ì¬µÄÒ»Ñù¡£Æô¶¯¹ý³ÌÒ²¿ÉÒÔ±»µ±×÷ÁíÍâÒ»¸öÈȰβåʼþ¡££¨²ÎÔÄ<ref id="trigger-hotplug">¡££©
<p>
¾¡¹ÜÈç´Ë£¬´ó¶àÊýÇé¿öÏ£¬ÖÁÉÙ <tt>lo</tt> loopback ½Ó¿ÚÐèÒªÔÚ¿ª»úʱ±»¼¤»î¡£ËùÒÔ£¬ÐèҪȷ¶¨ <file>/etc/network/interfaces</file> Öаüº¬ÈçÏÂÒ»¶ÎÄÚÈÝ£º
<example>
auto lo

iface lo inet loopback
</example>
Èç¹ûÄãÏëÈÃÆäËûÎïÀí½Ó¿ÚÒ²ÔÚ¿ª»úµÄʱºò±»¼¤»î£¬Çë°ÑËüÃǼÓÈëµ½ <tt>auto</tt> µÄ¶ÎÂäÖÐÈ¥¡£<strong>¾ø¶Ô²»Òª</strong>°Ñ PCMCIA ½Ó¿Ú·ÅÔÚ <tt>auto</tt> ¶ÎÂäÖС£ÔÚ¿ª»úÆô¶¯Ë³ÐòÖУ¬PCMCIA µÄ <prgn>cardmgr</prgn> ÍíÓÚ <prgn>/etc/rcS.d/S40networking</prgn> Æô¶¯¡£

<sect1 id="trigger-hotplug">ʹÓà <package>hotplug</package> Æô¶¯(triggering)ÍøÂçÉèÖÃ
<p>
°²×° <package>hotplug</package> Èí¼þ°üÀ´»ñµÃÈȰβå(hot-plug)Ö§³Ö¡£
<p>
Äã¿ÉÒÔÔÚ¿ª»úµÄʱºò»òÊÇ°ÑÒ»ÕÅ¿¨£¨ÀýÈ磬PCMCIA ¿¨£©²åÈë»úÆ÷Ö®ºó»òÕßÔÚ <prgn>discover</prgn> ÕâÀàµÄ¹¤¾ßÆô¶¯²¢¼ÓÔØÁ˱ØÒªµÄÇý¶¯Ä£¿éÖ®ºó£¬ÈȰβåÄãµÄÍøÂçÓ²¼þ¡£
<p>
µ±Äں˼ì²âµ½ÐµÄÓ²¼þ£¬Ëü»á³õʼ»¯Õâ¸öÓ²¼þ²¢Ö´ÐÐ <prgn>hotplug</prgn> ³ÌÐòÈ¥ÅäÖÃÕâ¸öÓ²¼þ¡£µ±Ó²¼þ±»É¾³ýµÄʱºò£¬ÄÚºËÒÔ²»Í¬µÄ»·¾³±äÁ¿ÉèÖÃÔÙ´ÎÖ´ÐÐ <prgn>hotplug</prgn>¡£ÔÚ &debian; ÖУ¬<prgn>hotplug</prgn> ±»ºô½Ðʱ£¬Ëü»áÖ´ÐÐ <file>/etc/hotplug/</file> ºÍ <file>/etc/hotplug.d/</file> ÖеĽű¾¡£Ï¸½Ú²ÎÔÄ <manref name="hotplug" section="8">¡£
<p>
а²×°µÄÍøÂçÓ²¼þÊÇÓɽű¾ <file>/etc/hotplug/net.agent</file> ÉèÖõġ£
<footnote>
ËüͬÑù¿ÉÒÔÓÃÈκÎÒ»¸öÒѾ­°²×°ÔÚ <file>/etc/hotplug.d/net/</file> ÄڵĹ³×ӽű¾(hook scripts)À´ÅäÖá£ÀýÈ磬Èí¼þ°ü <package>ifplugd</package> ºÍ <package>waproamd</package> ¾Í°Ñ¹³×ӽű¾°²×°ÔÚÄÇÀï¡£
</footnote>
¼ÙÉèÄãµÄ PCMCIA Íø¿¨ÒѾ­²åÈ룬²¢Éú³ÉÁË¿ÉÓÃµÄ½Ó¿Ú <tt>eth0</tt>¡£Ôò <file>/etc/hotplug/net.agent</file> ×öÁËÏÂÃæµÄÊÂÇé¡£
<footnote>
¶ÔÓÚ 0.0.20040329-4 ×óÓÒ°æ±¾µÄ <package>hotplug</package>£¬¿ÉÒÔÑ¡Ôñ²»Í¬µÄģʽ£¬Ê¹ÓÃÓëÎÒÃÇÕâ¶ùÃèÊö²»Í¬µÄÐÐΪ¡£ÆäÖÐÒ»¸öģʽ±»³ÆΪ¡°all¡±£¬<prgn>hotplug</prgn> »á¼¤»îËùÓвåÈëµÄ½Ó¿Ú¡£ÁíÒ»ÖÖģʽ³ÆΪ¡°auto¡±£¬<prgn>hotplug</prgn> ½ö½ö¼¤»îλÓÚ <file>/etc/network/interfaces</file> Îļþ <tt>auto</tt> ÐÐÖеĽӿڡ£ÔÚÕâЩģʽÖУ¬<prgn>ifup</prgn> ²»»áÒýÓà <tt>=hotplug</tt> Õâ¸öºó׺¡£
</footnote>
:
<example>
ifup eth0=hotplug
</example>
³ý·ÇÄãÔÚ <file>/etc/network/interfaces</file> ÖмÓÈëÁËÃû³ÆΪ <tt>hotplug</tt> µÄÂß¼­½Ó¿Ú¶¨Òå»òÓ³É䣬·ñÔòÕâ¸öÃüÁî²»»á×öÈκÎÊ¡£ÎªÁËÈÃÕâ¸öÃüÁîÄÜÓÃÀ´ÉèÖà <tt>eth0</tt>£¬ÔÚ <file>/etc/network/interfaces</file> ÖмÓÈëÈçÏÂÒ»¶ÎÄÚÈÝ£º 
<example>
mapping hotplug
        script echo
</example>
Èç<ref id="net-reconf">ÖнâÊ͵ģ¬ÕâÑù»áÓ³ÉäÉÏÊöµÄÃüÁʹÆäµÈͬÓÚÈçϵÄÃüÁ
<example>
ifup eth0=eth0
</example>
<p>
£¨Èç¹ûÄãʹÓà <prgn>hotplug</prgn> Æô¶¯ <prgn>ifplugd</prgn> »ò <prgn>waproamd</prgn> À´¿ØÖÆÕâ¸ö½Ó¿Ú£¬Çë<strong>²»Òª</strong>°üº¬ÕâÑùµÄÓ³ÉäÄÚÈÝ¡££©
<p>
Èç¹ûÄãÏ£ÍûÔÚÈȰβåµÄʱºò½ö½ö¼¤»î <tt>eth0</tt>£¬¶ø²»ÊÇÆäËû½Ó¿Ú£¬ÄÇôÇëÓà <prgn>grep</prgn> È¡´ú <prgn>echo</prgn>£¬×ö·¨ÈçÏ£º
<example>
mapping hotplug
        script grep
        map eth0
</example>
¸ü¶à¼¼ÇÉ£¬²ÎÔÄ<ref id="net-magic-reconf">ºÍ
<url id="&f-hotplug;">¡£

<sect1 id="trigger-ifplugd">ʹÓà <package>ifplugd</package> Æô¶¯(triggering)ÍøÂçÉèÖÃ
<p>
<prgn>ifplugd</prgn> ÊØ»¤½ø³Ì¸ù¾ÝÏà¹ØµÄÓ²¼þÓÐûÓнÓÈëÍøÂçÀ´¼¤»î»ò¹Ø±Õ½Ó¿Ú¡£Õâ¸ö³ÌÐòÄܹ»¼ì²âÍøÏßÊÇ·ñÒѾ­²åÈë»òÎÞÏßÍø¿¨(Wi-Fi)ÊÇ·ñÄÜ·ÃÎÊ AP£¨ËäÈ» <prgn>waproamd</prgn> ±È½ÏÊʺϺóÒ»ÖÖÇé¿ö£©¡£µ± <prgn>ifplugd</prgn> ·¢ÏÖÁ¬½Ó״̬¸Ä±äʱ£¬ËüÄÜÔËÐÐÒ»¸ö´úÀí½Å±¾£¬È±Ê¡»áºô½Ð <prgn>ifup</prgn> »ò <prgn>ifdown</prgn>¡£

<sect1 id="trigger-waproamd">ʹÓà <package>waproamd</package> Æô¶¯ÍøÂçÉèÖÃ
<p>
<prgn>waproamd</prgn> ÊØ»¤½ø³ÌºÍ <prgn>ifplugd</prgn> ÀàËÆ£¬Ö»ÊÇËüÊÇÕë¶ÔÎÞÏßÍø¿¨(Wi-Fi)Éè¼ÆµÄ¡£ËüÖ÷¶¯µÄɨÃèÎÞÏßÍø¿¨ÄÜ·ÃÎʵ½µÄ AP¡£µ±·ÃÎÊÍê³ÉÖ®ºó£¬<prgn>waproamd</prgn> Ö´ÐÐ <prgn>ifup</prgn>¡£
<p>
Èç¹ûÄãÕýÔÚʹÓà <prgn>waproamd</prgn>£¬ÄÇôͨ³£À´ËµÄãÊÇͨ¹ý <prgn>waproamd</prgn> ¶ø²»ÊÇ <file>/etc/network/interfaces</file> ÀïÃæµÄ <tt>wireless-*</tt> Ñ¡ÏîÀ´ÉèÖõġ£

<sect1 id="trigger-pcmcia">ÍøÂçÉèÖÃºÍ PCMCIA 
<p>
ÓÐÐí¶à¿ÉÓõķ½·¨À´´¦Àí PCMCIA ÍøÂç½Ó¿ÚµÄÉèÖ㨶ÔÓÚ 2.4 ºÍ 2.6 µÄÄںˣ©¡£
<list compact>
  <item>¶ÔÓÚ 32 λ PCI (CardBus) PCMCIA Íø¿¨£º
    <list compact>
      <item><package>ifupdown</package>
     	ÓÉ <package>hotplug</package> ¿ØÖÆ
      <list compact>
      <item>ÔÚ Woody ºÍ Sarge ÖУ¬ÄãÐèÒªÔÚ±¾µØÆôÓà <package>hotplug</package> ¶Ô <package>ifupdown</package> µÄ¿ØÖÆ£¬Í¨¹ýÔÚÎļþ <file>/etc/network/interfaces</file> Àï¼ÓÈë<ref id="trigger-hotplug">ÖÐÃèÊöµÄÓ³Éä¶ÎÂä¼´¿É¡£
      </list>
   </list>
<item>¶ÔÓÚ 16 λ ISA PCMCIA Íø¿¨£º
  <list compact>
    <item><package>ifupdown</package>
      ÓÉ <package>hotplug</package> ¿ØÖÆ£¬²¢Í¨¹ý <package>pcmcia-cs</package> µÄÏÞÖÆÀ´¼ÓÔØÄ£¿é¡£
      <list compact>
      <item><strong>ÍƼöµÄ</strong>
<!--
      <item>For post-Sarge <package>pcmcia-cs</package>: 
        You must make sure to set <tt>REFRAIN_FROM_IFUP=yes</tt> in
	<file>/etc/default/pcmcia</file> to prevent 
	<package>pcmcia-cs</package> from
        interfering with <package>hotplug</package>
-->
      <item>ÔÚ Woody ºÍ Sarge ÖУ¬Äã±ØÐëͨ¹ýÔÚ <file>/etc/pcmcia/network</file> Îļþ¿ªÊ¼´¦£¬¼ÓÈëÒ»ÐÐ <tt>exit 0</tt> À´È¡Ïûȱʡ״̬Ï <package>pcmcia-cs</package> ¶Ô <package>ifupdown</package> µÄ¿ØÖÆ¡£Í¬Ê±£¬Äã±ØÐëÔÚ±¾µØÆôÓà <package>hotplug</package> ¶Ô <package>ifupdown</package>µÄ¿ØÖÆ£¬Í¨¹ýÔÚÎļþ <file>/etc/network/interfaces</file> Àï¼ÓÈë<ref id="trigger-hotplug">ÖÐÃèÊöµÄÓ³Éä¶ÎÂä¼´¿É¡£
      </list>
    <item>ȱʡ״̬Ï <package>pcmcia-cs</package> ͨ¹ýÅäÖÃÎļþ <file>/etc/pcmcia/network</file> À´¿ØÖÆ <package>ifupdown</package>
      <list compact>
      <item><strong>²»ÔÞ³É</strong>ʹÓ㬵« Woody ºÍ Sarge ȱʡʹÓÃÕâ¸ö·½Ê½¡£
      </list>
    <item><package>pcmcia-cs</package> ͨ¹ý <file>/etc/pcmcia/network</file> ÖеÄÌØÊâ´úÂëÀ´¿ØÖƵײ㹤¾ß¡£
      <list compact>
      <item><strong>²»ÔÞ³É</strong>ʹÓÃ
      <item>ÔÚ Woody ºÍ Sarge ÖУ¬±à¼­ <file>/etc/pcmcia/network.opts</file> ¾ÍÄÜÆôÓÃÕâЩÌØÊâ´úÂë¡£
      </list>
  </list>
</list>
<p>
¶ÔÓÚ 16 λµÄ¿¨£¬ÍƼöµÄ´¦Àí·½·¨³ä·ÖÀûÓÃÁË 2.4 Äں˵ÄÈȰβå×Óϵͳ¶Ô PCMCIA µÄÖ§³Ö¡£
<footnote>
ÔÚ¹ýÈ¥ &debian; µÄ·¢Ðа汾ÖУ¬¶ÔÓÚ PCMCIA Íø¿¨£¬±ê×¼µÄÅäÖ÷½·¨ÊÇͨ¹ý <prgn>cardmgr</prgn> µÄ¹³×ӽű¾ <file>/etc/pcmcia/network</file> ºÍ <file>/etc/pcmcia/network.opts</file> À´Íê³ÉµÄ¡£ÕâЩ¹³×ӽű¾ÔÚ Linux ÓµÓÐͨÓõÄÈȰβåÖ§³Ö֮ǰ¾ÍÒѾ­±»¿ª·¢³öÀ´ÁË¡£
<p>
ÔÚȱʡ״̬Ï£¬²»ÉÙÈË»¹ÔÚ¼ÌÐøʹÓà &debian; Woody µÄ½Å±¾¡£ÔÚ½Ó¿ÚÌí¼ÓºÍɾ³ýµÄʱºò£¬ËüÃÇÖ»ÊǼòµ¥µÄµ÷Óà <prgn>ifup</prgn> ºÍ <prgn>ifdown</prgn>¡£×¢Ò⣡ÎÒÃÇÉÏÃæÌáµ½¹ý£¬ÏÖÔÚÍƼöÓà <package>hotplug</package> À´×öÕâЩÊÂÇé¡£
<p>
ÆäËûÈËÒÀȻʹÓÃÌØÊâµÄϵͳÀ´µ÷ÓõײãÍøÂçÅäÖÃÃüÁî¡£µ± <file>/etc/pcmcia/network.opts</file> ÖÐÌض¨µÄ±äÁ¿ÉèÖÃΪ¡°<tt>y</tt>¡±Ê±£¬ÌØÊâϵͳ²ÅÄܱ»¼¤»î¡£Õâ¸öϵͳÓв»ÉÙ벡¡£
ÉÙÊýÇé¿öÏÂÈÃÈËÍ·Í´²»ÒÑ£»
Ö»¶Ô 16 λµÄ PCMCIA ¿¨ÓÐЧ£»
ÇÀÁ˲»ÉÙ <package>ifupdown</package> À´×ö¸üºÏÊʵĻ
×ÜÖ®²»ÍƼöʹÓá£
</footnote>
<p>
<!-- 
  XXX FIXME XXX
  I do not know to what extent 2.4 kernel needs pcmcia-cs.
  But for now translate as below.  So we can chabge translation later too.
-->
PCMCIA Íø¿¨ÊÇ¿ÉÒÔÈȰβåµÄ¡£Òò´Ë£¬ÈκÎÐèҪͨ¹ý PCMICA ¿¨À´»ñµÃÍøÂçµÄ·þÎñµÄ·þÎñ£¬Ó¦¸ÃÉèÖÃΪҪÔÚ¿¨²åÈëÖ®ºóÆô¶¯²¢ÔÚ¿¨ÒƳýµÄʱºòÍ£Ö¹¡£Í¨³£Í¨¹ý°²ÅÅ·þÎñÔÚ <tt>ifup</tt> ʱÆô¶¯ºÍ <tt>ifdown</tt> ʱֹͣÀ´Íê³ÉÕâ¼þÊÂÇ顣Ȼ¶ø£¬ÓÐЩÈË˵·þËûÃÇ×Ô¼ºÊ¹ÓÃÀä°Î²å(code plugging)ËûÃÇµÄ PCMCIA Íø¿¨£ºËûÃÇÔÚϵͳÆô¶¯Ö®Ç°²åÈëÍø¿¨£¬ÔÚ¿ª»ú¹ý³ÌÖнÐøÆô¶¯ÐèҪͨ¹ýÕ⿨À´»ñµÃÍøÂçµÄÄÇЩ·þÎñ¡£Èç¹ûÄãÊÇÕâÀàÈË£¬ÎªÁËÈ·±£ÔÚÆô¶¯ÕâЩ·þÎñÆ÷Ç°Íø¿¨ÒѾ­ÉèÖúÃÁË£¬ÄãÐèÒª×öÏÂÁй¤×÷£º
<list compact>
<item>ÔÚ <file>/etc/default/pcmcia</file> ÖÐÉèÖà <tt>CARDMGR_OPTS="-f"</tt>£¬Ç¿ÖÆ <prgn>cardmgr</prgn> ÔÚǰ̨ÔËÐС£ 
<item>ÐÞ¸Ä <file>/etc/rc?.d/S20pcmcia</file> µÄÃû³Æ£¬¸Ä³ÉÀàËÆ <file>/etc/rc?.d/S12pcmcia</file> µÄÑù×Ó¡£
</list>
ÕâЩֻÊʺÏÓÚ 16 λµÄ PCMCIA ¿¨¡£
<p>
×¢Ò⣡Èç¹ûÄãʹÓà 16 λµÄ PCMICA ¿¨£¬Èí¼þ°ü <package>pcmcia-cs</package> »¹ÊÇÐèÒªµÄ¡£¸ÃÈí¼þ°ü°üÀ¨ÁË <prgn>cardmgr</prgn> ÊØ»¤½ø³Ì£¬ÓÃÀ´¹ÜÀí socket ºÍ¼ÓÔØÇý¶¯Ä£¿é¡£ÎÒÃÇÖ»ÊDz»Ï£ÍûËüͨ¹ý <file>/etc/pcmcia/network</file> À´ºô½ÐÍøÂçÉèÖóÌÐò¡£
<p>
ΪÁËÈà <prgn>cardmgr</prgn> ÄÜÕý³£¹¤×÷£¬Äã¿ÉÄÜÐèÒª±à¼­ <file>/etc/pcmcia/config.opts</file> À´ÉèÖà 16 λ PCMCIA ¿¨µÄ×ÊÔ´¡£¸ü¶àÐÅÏ¢²ÎÔÄ <ref id="kernel-pcmcia">ºÍ  <url id="&pcmcia-howto;" name="Linux PCMCIA HOWTO">¡£

<sect id="high-multistage-mapping">¶à½×¶Î(Multi-stage)Ó³Éä
<p>
Ê×ÏÈ£¬¼ÙÉèÄãµÄÍøÂçÊÊÅäÆ÷¿ÉÒÔÈȰβ壬ÄãÆôÓÃÁË<ref id="trigger-hotplug">ÖÐÃèÊöµÄ×Ô¶¯ÉèÖá£Æä´Î£¬½øÒ»²½¼ÙÉèÄãÐèÒªÒÀÕÕÎïÀí½Ó¿ÚÏÂÃæµÄÊÊÅäÆ÷£¨Èçͬ<ref id="high-rename">ÖÐÃèÊöµÄ£©ºÍ½Ó¿ÚÉÏÁ¬½ÓµÄÍøÂ磨ÀýÈ磬<ref id="high-guessnet">ÖÐÃèÊöµÄ£©À´°ÑÂß¼­½Ó¿ÚÓ³Éäµ½¡°ÎïÀí¡±½Ó¿Ú¡£Äã¾Í¿ÉÒÔÓöà½×¶ÎÓ³ÉäÀ´Íê³É¡£
<p>
Èç¹û½Ó¿ÚÊÇ¿ÉÒÔÈȰβåµÄ£¬Ó³ÉäµÄµÚÒ»¸ö½×¶ÎÊÇÀûÓà <tt>hotplug</tt> µÄ×éÃû³Æ²¢Êä³öÄÚºËÖ¸¶¨µÄ½Ó¿ÚÃû³Æ¡£Ó³ÉäµÄµÚ¶þ½×¶ÎÊÇÀûÓÃÄÚºËÖ¸¶¨µÄ½Ó¿ÚÃû³Æ²¢Êä³öÊÊÅäÆ÷µÄÃû³Æ¡£µÚÈý¸ö½×¶Î¾ÍÊÇÒÀÕÕÍøÂç»·¾³£¬°ÑÊÊÅäÆ÷Ãû³ÆÓ³Éäµ½Âß¼­½Ó¿ÚÃû³ÆÉÏÈ¥¡£
<example>
# ÔÊÐí hotplug ¼¤»î½Ó¿Ú
mapping hotplug
	script echo

# È·¶¨ÄǸö½Ó¿ÚÊÇÓÐÏßµÄÄǸöÊÇÎÞÏßµÄ
mapping eth?
        script /usr/local/sbin/match-mac-address.sh
        map 02:23:45:3C:45:3C wired
        map 00:A3:03:63:26:93 wifi

# ¼ì²âÓÐÏßÍøÂçÊÇ·ñ¿ÉÓÃ
mapping wired
        script guessnet-ifupdown
        map work-wired
        map home

# ¼ì²âÄĸöÎÞÏßÍøÂç¿ÉÓÃ
mapping wifi
        script ifscout
        map starbucks
        map work-wireless

iface work-wired inet static
	...
</example>

<sect id="net-service-conf">ÍøÂç·þÎñÉèÖÃ
<p>
×ÀÃæºÍ¼ÒÓ÷þÎñÆ÷µäÐ͵ÄÍøÂç·þÎñÉèÖðüÀ¨£º
<list compact>
<item>Internet <em>super-server</em> ºÍ TCP/IP daemon wrapper£¬²ÎÔÄ<ref id="tcpd">¡£
<list compact>
<item><file>/etc/inetd.conf</file>
</list>
<item><package>ssh</package>: OpenSSH secure shell£¬²ÎÔÄ<ref id="ssh">¡£
<list compact>
<item><file>/etc/ssh/ssh_config</file>
<item><file>/etc/ssh/sshd_config</file>
</list>
<item><package>exim</package>£ºÓʼþ´«Êä´úÀí(MTA)£¬²ÎÔÄ<ref id="name-mail">ºÍ<ref id="mta">¡£
<list compact>
<item><file>/etc/exim/exim.conf</file>
<item><file>/etc/mailname</file>
<item><file>/etc/aliases</file>
<item><file>/etc/email-addresses</file>
</list>
<item><package>fetchmail</package>£º´Ó POP3 ÕÊ»§ÖÐÊÕÈ¡ÓʼþµÄÊØ»¤½ø³Ì£¬²ÎÔÄ<ref id="fetchmail">¡£
<list compact>
<item><file>/etc/fetchmailrc</file>
</list>
<item><package>procmail</package>£º±¾µØÓʼþ´«µÝºÍ¹ýÂ˳ÌÐò£¬²ÎÔÄ<ref id="procmail">¡£
<list compact>
<item><file>~/.procmailrc</file>
</list>
<item>Ö÷»úÃûºÍ DNS (proxy, cache, ...)£¬²ÎÔÄ<ref id="name-host">ºÍ<ref id="net-dns">¡£
<list compact>
<item><file>/etc/host.conf</file>
<item><file>/etc/hostname</file>
<item><file>/etc/hosts</file>
<item><file>/etc/hosts.allow</file>
<item><file>/etc/hosts.deny</file>
<item><file>/etc/resolv.conf</file>
<item><file>/etc/bind/named.conf</file>£¨±à¼­£©
<item><file>/etc/bind/db.lan</file> (add for LAN hosts)
<item><file>/etc/bind/db.<var>192.168.0</var></file> (add for LAN reverse)
</list>
<item>DHCP£¬²ÎÔÄ<ref id="net-dhcp">¡£
<list compact>
<item><file>/etc/dhcp3/dhclient.conf</file>£¨DHCP ¿Í»§¶Ë£©
<item><file>/etc/default/dhcp3-server</file>£¨DHCP ·þÎñÆ÷¶Ë£©
<item><file>/etc/dhcp3/dhcpd.conf</file>£¨DHCP ·þÎñÆ÷¶Ë£©
</list>
<item><package>cvs</package>£ºµ±Ç°°æ±¾¿ØÖÆϵͳ£¬²ÎÔÄ<ref id="cvs">. 
<list compact>
<item><file>/etc/cvs-cron.conf</file>
<item><file>/etc/cvs-pserver.conf</file>
</list>
<item><package>nfs-kernel-server</package>£ºÍøÂçÎļþϵͳ£¬²ÎÔÄ<ref id="nfs">¡££¨Õë¶ÔÀà Unix ϵͳ£©
<list compact>
<item><file>/etc/exports</file>
</list>
<item><package>samba</package>£ºWindows ÍøÂçÎļþºÍ´òÓ¡»ú¹²Ïí£¬²ÎÔÄ<ref id="samba">ºÍ<ref id="smbmount">¡£
<list compact>
<item><file>/etc/samba/smb.conf</file>
</list>
<item>´òÓ¡»úÊØ»¤½ø³Ìϵͳ£¬²ÎÔÄ<ref id="printer">¡£
<list compact>
<item><file>/etc/printcap</file> (for lpr)
</list>
<item><package>apache</package> ºÍ <package>apache2</package>£ºWeb ·þÎñÆ÷¡£
<list compact>
<item><file>/etc/apache/*</file>
<item><file>/etc/apache2/*</file>
</list>
<item><package>squid</package>£º Web ´úÀíºÍ»º´æ·þÎñÆ÷¡£
<list compact>
<item><file>/etc/squid/*</file>
</list>
</list>

<!--
XXX FIXME XXX: 
The network service section needs more detailed contents.
Volunteers are welcomed.  
-->
<!-- explain each types under sect1 -->
<!-- equivalent ones under sect2 -->
<!-- avoid duplication with tune.sgml -->
<!-- this needs major rewrite -->
<!-- Keep It Short and Simple (KISS) -->
<!-- Use /bin/sh instead of English -->

<sect id="net-trouble">ÍøÂç¹ÊÕÏÅųý
<p>
Èç¹ûÄãÓöµ½ÁËÎÊÌ⣬Ê×ÏÈÖ´ÐÐÏÂÁÐÃüÁîÀ´¼ì²éÊä³öµÄ½á¹û£º
<example>
# ifconfig
# cat /proc/pci
# cat /proc/interrupts
# dmesg | more
</example>
ͬʱ²ÎÔÄ<ref id="net-test">ÏÂÃæµÄÕ½ڡ£
<!-- add id="..." to corresponding 3 sect1 tags in tips.sgml -->
<!-- That section should be moved here //JDTH -->
<!-- Yes.  But when you do, do it for all languages and fix 
 version tracking number if you can -->
<p>
Èç¹ûÄãÎÞ·¨ä¯ÀÀÌض¨µÄÕ¾µã£¬²ÎÔÄ<ref id="killecn">¡£

<sect id="net-router">½¨Á¢Â·ÓÉÍø¹Ø
<p>
Ò»¸ö &debian; Ö÷»ú¿ÉÒÔ×÷Ϊһ¸öÈ«ÄܵÄÍø¹Ø£¬Ëü¿ÉÒԳе£ÍøÂçµØַת»»£¨NAT£¬Í¨³£Ò²³ÆΪ IP αװ£©¡¢Óʼþ´«Êä¡¢DHCP¡¢DNS »º´æ¡¢HTTP ´úÀí»º´æ¡¢CVS ·þÎñ¡¢NFS ·þÎñºÍ Samba ·þÎñ¡£²ÎÔÄ<ref id="ipmap">ÖеÄÀý×ÓÀ´Íê³ÉÉÏÊöÉèÖá£

<sect1 id="router-netfilter">NetfilterÉèÖÃ
<p>
ÔÚ Linux 2.4 ¼°Æäºó¼Ì°æ±¾ÖмÓÈëÁË netfilter/iptables ÏîÄ¿£¬×÷Ϊһ¸ö·À»ðǽ×Óϵͳ¡£²ÎÔÄ <url id="&netfilterhome;" name="Netfilter">£¬ÄǶùÓÐÐí¶àÓйØÆäÅäÖõÄÌÖÂۺͽâÊÍ¡£

<sect2 id="netfilter-basics">netfilter »ù´¡
<p>
Netfilter ÄÚ½¨ÁË 5 ÌõÁ´Â·À´´¦ÀíÊý¾Ý°ü£¬ËüÃÇ·Ö±ðÊÇ£ºPREROUTING¡¢INPUT¡¢FORWARD¡¢OUTPUTºÍPOSTROUTING£º
<example>
                routing
                decision
IN ------> PRE ---> ------> FORWARD -----> ----> POST -----> OUT
interface  ROUTING  \       filter       /       ROUTING     interface
           DNAT     |       tracking     ^       SNAT
           REDIRECT |                    |       MASQUERADE
                    v                    |
                  INPUT                OUTPUT
                    | filter             ^ filter,DNAT 
                    v                    |
                    \--&gt; Local Process --/
                         user-space programs
</example>

<sect2 id="netfilter-table">¹ýÂ˱í(Netfilter table)
<p>
Êý¾Ý°üÔÚÿÌõÄÚ½¨µÄÁ´Â·Öд«Êäʱ°´ÈçϹýÂ˱íÖеĹæÔò½øÐд¦Àí¡£
<list compact>
<item>filter£¨Êý¾Ý°ü¹ýÂËÆ÷£¬Á´Â·ÖÐĬÈϵĹýÂËÆ÷£©
<list compact>
<item>INPUT£¨×÷ÓÃÓÚ½øÈë±¾»úµÄÊý¾Ý°ü£©
<item>FORWARD£¨×÷ÓÃÓÚ·Óɵ½±¾»úµÄÊý¾Ý°ü£©
<item>OUTPUT£¨×÷ÓÃÓÚ±¾µØ²úÉúµÄÊý¾Ý°ü£©
</list>
<item>nat£¨ÍøÂçµØÖ··­Ò룩
<list compact>
<item>PREROUTING£¨×÷ÓÃÓÚ¸Õ½øÈëµÄ´ýת»»Êý¾Ý°ü£©
<item>OUTPUT£¨×÷ÓÃÓÚÔÚ·ÓÉ֮ǰ´ýת»»µÄ±¾µØ²úÉúµÄÊý¾Ý°ü£©
<item>POSTROUTING£¨×÷ÓÃÓÚ´ý·¢³öµÄÒÑת»»µÄÊý¾Ý°ü£©
</list>
<item>mangle £¨network address mangling£¬Ö®ÊʺÏÓÚ 2.4.18 Ö®ºóµÄÄںˣ©
<list compact>
<item>ÊÊÓÃÓÚËùÓÐ 5 ÌõÁ´Â·¡£ 
</list>
</list>

<sect2 id="netfilter-target">¹ýÂËÄ¿±ê(Netfilter target)
<p>
·À»ðǽ¹æÔòÓÐÐí¶àÄ¿±ê£º
<list compact>
<item>4 ¸ö»ù±¾Ä¿±ê£º
<list compact>
<item>ACCEPT ÔÊÐíÊý¾Ý°üͨ¹ý¡£
<item>DROP ×èÀ¹Êý¾Ý°ü¡£
<item>QUEUE ÔÊÐíÊý¾Ý°ü½øÈëÓû§¿Õ¼ä£¨userspace£©£¨Èç¹ûÄÚºËÖ§³ÖµÄ»°£©¡£
<item>RETURN ±íʾֹͣ¶ÁÈ¡¸ÃÁ´Â·²¢»Øµ½Ç°Ò»¸ö£¨ºô½ÐµÄ£©Á´Â·µÄÏÂÒ»Ìõ¹æÔò¡£  
</list>
<item>À©Õ¹Ä¿±ê£º
<list compact>
<item>LOG ´ò¿ªÄÚºËÈÕÖ¾¡£
<item>REJECT »ØËÍ´íÎóÊý¾Ý°ü²¢×èÀ¹¸ÃÊý¾Ý°ü¡£
<item>SNAT ÐÞ¸ÄÊý¾Ý°üÔ´µØÖ·£¬½ö×÷ÓÃÓÚ POSTROUTING Á´Â·¡££¨½öÊÊÓÃÓÚ nat ¹ýÂË±í£©
<example compact>
--to-source ipaddr[-ipaddr][:port-port]
</example>
<item>MASQUERADE ×÷ÓÃºÍ SNAT Ò»Ñù£¬µ«ÃæÏòʹÓö¯Ì¬IPÇëÇó½¨Á¢µÄÁ¬½Ó£¨°ÎºÅÁ¬½Ó£©¡££¨½öÊÊÓÃÓÚnat¹ýÂË±í£©
<example compact>
--to-ports port[-port]
</example>
<item>DNAT ÐÞ¸ÄÊý¾Ý°üÄ¿µÄµØÖ·£¬½ö×÷ÓÃÓÚ PREROUTING¡¢OUTPUT Á´Â·ÒÔ¼°ÓÉËüÃǵ÷ÓõÄÓû§×Ô¶¨ÒåÁ´Â·¡££¨½öÊÊÓÃÓÚ nat ¹ýÂË±í£©
<example compact>
--to-destination ipaddr[-ipaddr][:port-port]
</example>
<item>REDIRECT ÐÞ¸ÄÊý¾Ý°üÄ¿±êµØַʹÆä·¢Ë͸ø±¾»ú¡£
<example compact>
--to-ports port[-port]
</example>
</list>
</list>

<sect2 id="netfilter-command">Netfilter ÃüÁî
<p>
<prgn>iptables</prgn> µÄ»ù±¾ÃüÁîÓУº
<example compact>
iptables -N <var>chain</var>                   # ´´½¨Ò»¸ö<var>Á´Â·</var>

iptables -A <var>chain</var> \                 # Ìí¼Ó<var>Á´Â·</var>µÄ¹æÔò
         -t <var>table</var> \                 # ʹÓÃ<var>¹ýÂ˱í</var>(filter, nat, mangle)
         -p <var>protocol</var> \              # tcp¡¢udp¡¢icmp»òËùÓУ¬
         -s <var>source-address[/mask]</var> \
         --sport <var>port[:port]</var> \      # Èç¹û -p ÊÇ tcp »ò udp£¬Ö¸¶¨Ô´µÄ¶Ë¿Ú
         -d <var>destination-address[/mask]</var> \
         --dport <var>port[:port]</var> \      # Èç¹û -p ÊÇ tcp »ò udp£¬Ö¸¶¨Ä¿µÄµØ¶Ë¿Ú         -j <var>target</var> \                # Èç¹ûÆ¥Åä×÷ºÎ´¦Àí
         -i <var>in-interface-name</var> \     # Õë¶Ô INPUT¡¢FORWARD¡¢PREROUTING
         -o <var>out-interface-name</var>      # Õë¶Ô FORWARD¡¢OUTPUT¡¢POSTROUTING
</example>

<sect2 id="ip-masq">ÍøÂçµØַת»»
<p>
LAN ÖеĻúÆ÷¿ÉÒÔͨ¹ýÄÜ°Ñ LAN µØַת»»Îª¿ÉÓÃµÄ Internet É쵀 IP µØÖ·µÄÍø¹ØÀ´·ÃÎÊ Internet µÄ×ÊÔ´¡£
<example>
# apt-get install ipmasq
</example>
Ö´ÐÐÑùÀý¹æÔòÀ´¼ÓÇ¿<prgn>ipmasq</prgn>µÄ±£»¤»úÖÆ¡£
²ÎÔÄ<url id="&f-ipmasq-strong;">¡£
¶ÔÓÚÔÚ Woody ÖÐʹÓà Debian µÄ kernel-image-2.4£¬ÇëÈ·ÈϼÓÔØÁËÏàÓ¦µÄÄ£¿é¡£ÓйصıØÒªÉèÖòÎÔÄ<ref id="kernel-net">¡£
<p>
¶ÔÓÚʹÓà 2.2 °æÄں˾µÏñµÄ Debian£¬¿É°´ÏÂÃæµÄ·½·¨±à¼­ <file>/etc/masq/rules</file> ÖÐµÄ <file>Z92timeouts.rul</file> Îļþ£¬ÒÔ±£Ö¤¿É³¤Ê±¼äÁ¬½ÓÔ¶³ÌÕ¾µã£¨Èç·¢ËÍ´óÈÝÁ¿µÄ email£¬µÈ£©£º
<example>
# tcp, tcp-fin, udp
# 2hr, 10 sec, 160 sec - default
# 1 day, 10 min, 10 min - longer example
$IPCHAINS -M -S 86400 600 600
</example>
ͬÑù£¬Èç¹ûÊÇͨ¹ý PCMCIA NIC ·ÃÎÊÍøÂ磬<prgn>ipmasq</prgn> ÐèÒª´Ó <file>/etc/pcmcia/network.opts</file>£¨ÔĶÁ£º<url id="&f-ipmasq;">£©»ò <file>/etc/network/interfaces</file>£¨ÔĶÁ£º<ref id="trigger-pcmcia">ºÍ<ref id="net-trigger">£© Æô¶¯¡£

<sect2 id="ip-redirect">Öض¨Ïò SMTP Áª½Ó£¨2.4°æÄںˣ©
<p>
¼ÙÉèÄ㽫һ̨±Ê¼Ç±¾µçÄÔÖØÐÂÅäÖóɿÉÁ¬ÈëÆäËüµÄ LAN »·¾³£¬¶øÄã²»ÏëÔÙÖØÐÂÅäÖÃÓû§Óʼþ´úÀí£¬¼´£ºÏëÖ±½ÓÓÃÔ­À´µÄÅäÖÃÊÕ·¢Óʼþ¡£
<p>
ʹÓà <prgn>iptables</prgn> ÃüÁîÏòÍø¹Ø»úÆ÷ÖмÓÈëÏÂÃæµÄ¹æÔò£¬¾Í¿ÉÒÔʵÏÖÖض¨ÏòÓëÍø¹Ø»úÆ÷µÄ SMTP Á¬½Ó¡£
<example>
# iptables -t nat -A PREROUTING -s 192.168.1.0/24 -j REDIRECT \
           -p tcp --dport smtp --to-port 25 # smtp=25, INPUT is open
</example>
ÏëʹÓøüÍ걸µÄÖض¨Ïò¹æÔò¼¯£¬½¨Òé°²×° <package>ipmasq</package> Èí¼þ°ü£¬²¢ÔÚ <file>/etc/ipmasq/rules/</file> Ŀ¼ÖÐÌí¼Ó <file><url id="&examples;" name="M30redirect.def"></file> Îļþ¡£

<sect1>¹ÜÀí¶àÖØÍøÂçÁª½Ó
<p>
[ÐÞÕýÎÒ] ·ÓɲßÂÔ(by Phil Brutsche<email>pbrutsch@tux.creighton.edu</email>):
ÏêÇé²ÎÔÄ <url id="&iproute;" name="iproute manual">¡£Traffic control (tc) Ò²ºÜÓÐȤ¡£
<p>
»·¾³ÉèÖãº
<example>
eth0: 192.168.1.2/24; gateway 192.168.1.1
eth1: 10.0.0.2/24; gateway 10.0.0.1
¸Ã»úÆ÷ûÓÐ IP αװ»úÖÆ¡£
</example>
Special magic:
<enumlist compact>
<item>ip rule add from 192.168.1.2 lookup 1
<item>ip rule add from 10.0.0.2 lookup 2
<item>ip route add to default via 10.0.0.1 metric 0
<item>ip route add to default via 192.168.1.1 metric 1
<item>ip route add table 1 to 192.168.1.0/24 via eth0
<item>ip route add table 1 to 10.0.0.2/24 via eth1
<item>ip route add table 1 to default via 192.168.1.1
<item>ip route add table 2 to 192.168.1.0/24 via eth0
<item>ip route add table 2 to 10.0.0.2/24 via eth1
<item>ip route add table 2 to default via 10.0.0.2
</enumlist>
<p>
[ÐÞÕýÎÒ] ÎÒûÇ××Ô×ö¹ý¡£ÈçºÎÀûÓÃ×Ô¶¯°ÎºÅÌØÐÔʹ°ÎºÅÁ¬½Ó±£³Ö¸ßËÙ£¿Èç¹ûÄãÖªµÀÇë·¢²¹¶¡ÎÒ:)
</sect>


</chapt>

Reply to: