Gentoo Logo

[ << ] [ < ] [ 主页 ] [ > ] [ >> ]


3. 配置网络

内容:

3.a. 自动网络检测

能够自动检测到么?

如果你的系统接入一个拥有DHCP服务器的以太网,那么很可能网络配置已经自动设置好了。如果是这样,你就可以利用到安装盘中的许多网络命令,如sshscppingirssiwgetlinks

如果网络已经为你配置好了,/sbin/ifconfig命令就能列出lo以外的一些网卡的信息,如eth0:

代码 1.1: 一个正常工作的网络配置的/sbin/ifconfig命令输出

# /sbin/ifconfig
(……)
eth0      Link encap:Ethernet  HWaddr 00:50:BA:8F:61:7A
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::50:ba8f:617a/10 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1498792 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1284980 errors:0 dropped:0 overruns:0 carrier:0
          collisions:1984 txqueuelen:100
          RX bytes:485691215 (463.1 Mb)  TX bytes:123951388 (118.2 Mb)
          Interrupt:11 Base address:0xe800 

可选:配置网络代理

如果你是通过代理访问网络,就要在安装过程中设置代理信息。设置代理很容易:只要定义一个包含代理服务器信息的变量即可。

通常情况下只要将这个变量定义为代理服务器主机名。作为例子,我们假定代理名叫proxy.gentoo.org,端口为8080

代码 1.2: 定义代理服务器

(如果代理传输HTTP数据)
# export http_proxy="http://proxy.gentoo.org:8080"
(如果代理传输FTP数据)
# export ftp_proxy="ftp://proxy.gentoo.org:8080"
(如果代理传输RSYNC数据)
# export RSYNC_PROXY="proxy.gentoo.org:8080"

如果代理要求用户名和密码,请使用以下格式的变量:

代码 1.3: 添加用户名/密码到代理变量

http://用户名:密码@proxy.gentoo.org:8080

测试网络

ping一下你的ISP提供的DNS服务器(可于/etc/resolv.conf中找到)和一个任选的网站,以确定数据包传到了网上、DNS域名解析正常,等等。

代码 1.4: 进一步测试网络

# ping -c 3 www.gentoo.org

如果现在你的网络可用了,就可以略过本章的余下部分,进入下一章预备磁盘。如果没有,请接下去阅读。

3.b. 自动网络配置

如果网络没有马上配置好,一些安装介质允许你使用net-setup(普通或无线网络),pppoe-setup(ADSL用户)或pptp(PPTP用户——x86、amd64、alpha、ppc和ppc64平台可用)来继续配置。

如果你的安装介质没有提供这些工具或者你的网络还是不能运行,请阅读手动配置网络

默认:使用net-setup

如果网络没有自动配置好,最简单的配置方法是执行net-setup脚本:

代码 2.1: 执行net-setup脚本

# net-setup eth0

net-setup会问你一些关于你的网络环境的问题。全部回答完之后,你就能拥有一个正常工作的网络连接。按照前面叙述的方法测试一下网络连接。如果测试结果正常,恭喜!现在你已准备好开始安装Gentoo了。略过本章的余下部分并进入预备磁盘

如果网络还不能配置好,请继续阅读手动配置网络

备选:使用PPP

假如你通过PPPoE连接internet,安装盘(所有版本)中包含的ppp工具会让事情变得简单。使用所提供的pppoe-setup脚本来配置网络。它会提示你输入一些信息,包括连接到你的adsl调制解调器的网络设备、用户名和密码、DNS服务器的IP以及是否需要一个基本的防火墙。

代码 2.2: 使用ppp

# pppoe-setup
# pppoe-start

如果配置出错了,请仔细检查/etc/ppp/pap-secrets/etc/ppp/chap-secrets,确保你在其中输入的用户名和密码无误,并确定使用了正确的以太网设备。如果网络设备不存在,必须加载适当的网络模块。这种情况下你应该继续阅读手动配置网络,我们在其中解释了如何加载适当的网络模块。

如果一切正常,请继续阅读预备磁盘

备选:使用PPTP

如果你需要支持PPTP连接,可以使用我们的安装光盘中所提供的pptpclient。不过你必须首先确定配置没有问题。编辑/etc/ppp/pap-secrets/etc/ppp/chap-secrets使其中包含正确的用户名/密码对:

代码 2.3: 编辑/etc/ppp/chap-secrets

# nano -w /etc/ppp/chap-secrets

然后如果有必要,调整一下/etc/ppp/options.pptp

代码 2.4: 编辑/etc/ppp/options.pptp

# nano -w /etc/ppp/options.pptp

当做好了所有的配置,就请执行pptp(跟随一些不能在options.pptp中设置的选项)来连接服务器:

代码 2.5: 连接到一个“拨入”服务器

# pptp <服务器ip>

现在请继续阅读预备磁盘

3.c. 手动配置网络

加载适当的网络模块

安装光盘在启动时,会尝试检测所有硬件设备并加载适当的内核模块(驱动程序)以支持你的硬件。绝大多数情况下,它都做得非常好。尽管如此,某些情况下它还是可能无法自动载入你需要的内核模块。

如果net-setuppppoe-setup执行失败,那么很可能是没有一下子找到你的网卡。这意味着你将不得不手动加载适当的内核模块。

要找出我们为网络提供了哪些内核模块,请使用ls

代码 3.1: 搜索所提供的模块

# ls /lib/modules/`uname -r`/kernel/drivers/net

如果找到了你的网卡的驱动程序,请使用modprobe来加载这个内核模块:

代码 3.2: 使用modprobe加载一个内核模块

(作为一个例子,我们载入pcnet32模块)
# modprobe pcnet32

现在用ifconfig检查一下是否检测到你的网卡了。成功检测到的网卡会输出类似下面这样的信息:

代码 3.3: 测试网卡是否可用,成功

# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr FE:FD:00:00:00:00  
          BROADCAST NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

不过如果你得到如下错误信息,说明没有检测到网卡。

代码 3.4: 测试网卡是否可用,失败

# ifconfig eth0
eth0: error fetching interface information: Device not found

如果你的系统中存在多块网卡,分别名为eth0eth1等等。确保你想要使用的那张网卡没有问题,并在阅读本文整篇文章时都记得使用它正确的名字。我们假定使用的是eth0这张网卡。

假如你现在拥有一张成功检测到的网卡,可以再试一试net-setuppppoe-setup(现在应该能正常使用了)。不过对于用户中的喜欢刨根究底的人,我们会为你解释如何通过手动配置网络。

基于你的网络设置,请从以下列表中选择相应的章节继续:

使用DHCP

DHCP(动态主机配置协议)可以让你自动获得网络信息(IP地址、子网掩码、广播地址、网关以及域名服务器等)。只有在你的网络中拥有一台DHCP服务器时才能获得(或者你的网络服务提供商提供DHCP服务)。执行dhcpcd使网络接口自动获得这些信息:

代码 3.5: 使用dhcpcd

# dhcpcd eth0
一些网络管理员要求你使用DHCP服务器所提供的主机名和域名。
这种情况下请用
# dhcpcd -HD eth0

如果工作正常(尝试ping一些互联网上的服务器,比如Google),那么你就完全准备好继续下一步了。略过本章的余下部分并继续阅读预备磁盘

预备无线网络接入

注意: iwconfig命令仅在x86、amd64和ppc安装光盘中提供。不过在其他情况下,你仍可以按照linux-wlan-ng项目的介绍,来使无线扩展运作起来。

如果你正在使用一张无线(802.11)网卡,那么在继续任何一步之前你需要先配好无线设置。要查看当前的无线网卡设置,可以使用iwconfig。执行iwconfig会显示以下类似信息:

代码 3.6: 显示当前无线设置

# iwconfig eth0
eth0      IEEE 802.11-DS  ESSID:"GentooNode"                                   
          Mode:Managed  Frequency:2.442GHz  Access Point: 00:09:5B:11:CC:F2    
          Bit Rate:11Mb/s   Tx-Power=20 dBm   Sensitivity=0/65535               
          Retry limit:16   RTS thr:off   Fragment thr:off                       
          Power Management:off                                                  
          Link Quality:25/10  Signal level:-51 dBm  Noise level:-102 dBm        
          Rx invalid nwid:5901 Rx invalid crypt:0 Rx invalid frag:0 Tx          
          excessive retries:237 Invalid misc:350282 Missed beacon:84            

注意: 一些无线网卡的设备名可能为wlan0ra0,而不是eth0。执行不带任何命令行参数的iwconfig以确定正确的设备名。

对大多数用户来说,可能只有两处设置需要重点修改,即ESSID(亦称无线网络名)或WEP密钥。如果前面列出的ESSID和AP地址正是你的无线AP的ESSID和地址,并且你不使用WEP,那么你的无线网络已工作正常。如果你需要修改你的ESSID或添加一个WEP密钥,可以参照下列命令:

注意: 如果你的无线网络使用的是WPA或者WPA2,你将需要使用wpa_supplicant。欲获取更多有关在Gentoo Linux里配置无线网络的信息,请阅读Gentoo手册中的无线网络一章。

代码 3.7: 修改ESSID和/或添加WEP密钥

(这里设置网络名为“GentooNode”)
# iwconfig eth0 essid GentooNode

(这里设置一个十六进制WEP密钥)
# iwconfig eth0 key 1234123412341234abcd

(这里设置一个ASCII密钥——以"s:"作为前缀)
# iwconfig eth0 key s:某密钥

然后可以使用iwconfig再次确认你的无线设置。一旦你配好无线设置,就可以继续配置下一节(理解网络术语)所述的IP级别的网络选项,或者可以使用前面所述的net-setup工具。

理解网络术语

注意: 如果你知道IP地址、广播地址、子网掩码和域名服务器,那你就可以略过本节并继续阅读使用ifconfig和route

如果以上所做的全部失败,你将不得不手动配置你的网络。这其实一点也不难。不过,你需要熟悉一些网络术语,才能配置好网络令自己满意。读完本节之后,你将了解到什么是网关子网掩码是作什么用的,广播地址是如何形成的,以及为什么需要域名服务器

在一个网络中,所有主机都通过IP地址(互联网协议地址)来识别。一个这种地址是由四个0到255之间的整数组合成的。嗯,至少我们是这样认识它的。实际上,一个IP地址由32个比特(0和1)组成。让我们看一个例子:

代码 3.8: IP地址的一个例子

IP地址(整数):   192.168.0.2
IP地址(位):     11000000 10101000 00000000 00000010
                   -------- -------- -------- --------
                      192      168       0        2

在所有可访问到的网络里,这样的IP地址跟主机是一一对应的(比如你能够连接到的每台主机必须拥有一个唯一的IP地址)。为了区别一个网络内部和外部的主机,IP地址被分为两个部分:网络部分和主机部分。

子网掩码用来描述这种区分,它由一系列的1跟随着一系列的0组成。IP中映射在1上的部分为网络部分,另一部分为主机部分。照例,子网掩码可以描述为IP地址的形式。

代码 3.9: 区分网络/主机的例子

IP地址:        192      168      0         2
              11000000 10101000 00000000 00000010
子网掩码:    11111111 11111111 11111111 00000000
                 255      255     255        0
             +--------------------------+--------+
                      网络                 主机

也就是说,192.168.0.14仍是我们的例子网络中的成员,而192.168.1.2就不是了。

广播地址是一个跟你的网络在同一个网段的IP地址,只是它的主机部分全部为1。你的网络中所有的主机都监听这个IP地址。它真正的用途是用来广播数据包。

代码 3.10: 广播地址

IP地址:      192      168      0         2
            11000000 10101000 00000000 00000010
广播:      11000000 10101000 00000000 11111111
               192      168      0        255
           +--------------------------+--------+
                     网络                主机

为了能在互联网上冲浪,你必须知道是哪台主机在共享Internet连接。这台主机称为网关。由于它是一台普通主机,所以它有一个普通的IP地址(比如192.168.0.1)。

前面我们陈述了每台主机拥有它自己的IP地址。为了能够通过域名(而不是IP地址)连到这台主机,你需要一种服务,以将一个域名(如dev.gentoo.org)翻译成一个IP地址(如64.5.62.82)。这种服务称为域名服务。你必须在/etc/resolv.conf中定义必要的域名服务器以享用这种服务。

某些情况下,你的网关也作为域名服务器提供服务。否则就必须加入ISP提供的域名服务器。

总结一下,继续下一步之前你需要了解下列知识:

网络名词 范例
你的IP地址 192.168.0.2
子网掩码 255.255.255.0
广播 192.168.0.255
网关 192.168.0.1
域名服务器 195.130.130.5, 195.130.130.133

使用ifconfig和route

设置网络包括三个步骤。首先我们使用ifconfig为自己设置一个IP地址。然后使用route设置到网关的路由。最后我们通过将域名服务器的IP写入/etc/resolv.conf来结束整个过程。

为了设置一个IP地址,你需要先获得你的IP地址、广播地址和子网掩码。然后执行以下命令,用你的IP地址、广播地址和子网掩码分别替代${IP地址}${广播}${子网掩码}

代码 3.11: 使用ifconfig

# ifconfig eth0 ${IP地址} broadcast ${广播} netmask ${子网掩码} up

现在使用route设置路由。用你的网关IP地址代替${网关}

代码 3.12: 使用route

# route add default gw ${网关}

现在用你喜欢的编辑器(我们的例子中使用nano)打开/etc/resolv.conf

代码 3.13: 创建/etc/resolv.conf

# nano -w /etc/resolv.conf

现在使用下面的模板填写你的域名服务器。注意用适当的域名服务器地址替换${域名服务器1}${域名服务器2}

代码 3.14: /etc/resolv.conf模板

nameserver ${域名服务器1}
nameserver ${域名服务器2}

这就是全部了。现在通过ping一些互联网上的服务器(比如Google)来测试一下你的网络。如果一切正常,那就恭喜了。你现在已准备好开始安装Gentoo了。接下来请继续阅读预备磁盘


[ << ] [ < ] [ 主页 ] [ > ] [ >> ]


打印

查看全部

更新于2008年 10月 12日

总结: 要下载最新的源代码,你要先设置好网络。

Sven Vermeulen
作者

Grant Goodyear
作者

Roy Marples
作者

Daniel Robbins
作者

Chris Houser
作者

Jerry Alexandratos
作者

Seemant Kulleen
Gentoo x86开发人员

Tavis Ormandy
Gentoo Alpha开发人员

Jason Huebel
Gentoo AMD64开发人员

Guy Martin
Gentoo HPPA开发人员

Tim Yamin
Gentoo IA64开发人员

Pieter Van den Abeele
Gentoo PPC开发人员

Joe Kallar
Gentoo SPARC开发人员

Mike Frysinger
Gentoo * 开发人员

John P. Davis
编辑

Pierre-Henri Jondot
编辑

Eric Stockbridge
编辑

Rajiv Manglani
编辑

Jungmin Seo
编辑

Stoyan Zhekov
编辑

Jared Hudson
编辑

Colin Morey
编辑

Jorge Paulo
编辑

Carl Anderson
编辑

Jon Portnoy
编辑

Zack Gilburd
编辑

Jack Morgan
编辑

Benny Chuang
编辑

Erwin
编辑

Joshua Kinard
编辑

Stuart Longland
编辑

Tobias Scherbaum
编辑

Xavier Neys
编辑

Joshua Saddler
编辑

Gerald J. Normandin Jr.
审校

Donnie Berkholz
审校

Ken Nowack
审校

Lars Weiler
投稿

张乐
译者

沈辰俊
译者

杨珂
译者

叶宝泰
译者

杨小广
译者

vivian.ye
译者

余雷
译者

陈永骥
译者

王国辉
译者

娄东斌
译者

贾震
译者

余鈺炜
译者

陈代焱
译者

范华
译者

Donate to support our development efforts.

Support OSL
Gentoo Centric Hosting: vr.org
Tek Alchemy
SevenL.net
Global Netoptex Inc.
Bytemark
Edurium
Copyright 2001-2010 Gentoo Foundation, Inc. Questions, Comments? Contact us.