3. 配置您的网络连接
3.a. 您可以不联网安装, 不过...
谁可以不用联网?
取决于您先前选择的用以安装 gentoo 的媒介, 您将可以或不可以不联网安装. 我们可没和您开玩笑哦 =)
普遍而言, 您需要配置网络连接. 不过呢, Gentoo 也提供了离线安装的可能性. 只要您选择使用 Gentoo Universal LiveCDs.
我为啥需要联网?
联网安装的一大好处就是您可以得到一个最新的系统. 您会得到一个基于最新 portage 树 (包含了许许多多的软件包以及我们提供给您的, 用以管理软件包的工具) 的系统. 这也是为什么联网安装方式会更好的原因. 不过, 有些朋友则不能或不想联网安装 Gentoo.
如果您属于这种情况, 请使用 Gentoo Universal LiveCD. 这张 LiveCD 包含了源代码, portage-tree 的 snapshot 以及用以安装 gentoo 基本系统和系统其他部分的一些工具. 这一安装方式的成本是: 您将不能拥有最新的软件, 尽管可能新旧软件间的差别并不大.
如果您打算按照无网络方式安装, 您就需要使用这一 Gentoo Universal LiveCD, 略过以下章节, 直接跳到预备硬盘分区这章. 否则, 请跟随我们下面联网方式安装的部分.
可选: 配置代理服务器
如果您是通过代理服务器连接到网络的, 您将需要在安装过程中设置好代理服务器的信息. 要设置代理服务器其实非常简单: 您仅需要设置一个包含了代理服务器信息的环境变量.
大部分情况下, 您可以直接使用代理服务器的主机名以定义该环境变量. 例如, 我们假设代理服务器的主机名为 proxy.gentoo.org其端口为 8080, 则:
代码清单 1: 设定代理服务器 |
(如果代理服务器过滤 (允许?) 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" |
如果您的代理服务器要求用户名和密码, 您需要使用以下的表达方式来定义代理服务器变量:
代码清单 2: 往代理服务器变量中添加用户名/密码 |
http://username:password@server |
例如, 以用户名 "john" 和密码 "f00b_r" 使用我们前述的代理服务器, 您需要写成:
代码清单 3: 需用户认证的代理设定 |
# export http_proxy="http://john:f00b_r@proxy.gentoo.org:8080" |
3.b. 自动网络检测
说不定本来就已联网?
如果您的机器是以 DHCP 方式接入以太网, 很有可能的是您的网络已经自动配置好了. 如果是这样, 您将能够享受到如 ssh, scp, ping, irssi, wget 以及 links 等网络相关 (network-aware) 工具带来的诸多便利.
如果您的网络已经自动配置好, 运行 /sbin/ifconfig 应该会列出除 lo 之外的一些其他网络接口 (network interfaces)比如 eth0:
代码清单 4: /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 |
测测网络连接
您或许希望 ping 一下您的 ISP 的 DNS 服务器 (在 /etc/resolv.conf 中可以找到) 或者某个网站, 以确保您的机器确实已联网, 而且 DNS 域名解释正常.
代码清单 5: 进一步网络测试 |
# ping -c 3 www.yahoo.com |
您确实可以使用网络么? 如果是, 您就可以略过如下部分, 直接前进到预备硬盘分区. 如果还不行, 那就郁闷啦, 您还需要再跟着我们下面的步骤多努力一点点东西 :)
3.c. 自动网络配置
如果网络未能立即工作起来, 有些安装媒介让您可以使用 net-setup (普通网络设置) 或 adsl-setup (ADSL 用户) 或 pptp (PPTP 用户 - 仅于 x86 上可用) 来配置网络.
如果您的安装媒介上这些工具一个都没有或者您的网络还没起作用, 请跳到手动网络配置.
- 普通以太网用户请阅读默认: 使用 net-setup
- ADSL 用户请阅读替代: 使用 RP-PPPoE
- PPTP 用户请阅读替代: 使用 PPTP
默认: 使用 net-setup
网络要没能自动工作起来, 配置它的最简单办法就是使用 net-setup 脚本:
代码清单 6: 运行 net-setup 脚本 |
# net-setup eth0 |
net-setup 会问您一些关于您的网络环境的问题. 完成之后, 您应该可以获得一个可用的网络连接. 使用前面提到过的方法以测试网络连接情况. 如果测试成功, 恭喜! 你可以开始安装 Gentoo 了. 略过下面的内容, 直接跳到预备硬盘分区.
如果您的网络还是不能用, 请阅读手动网络配置.
替代: 使用 RP-PPPoE
假设您得通过 PPPoE 来连接到网络, LiveCD (任何版本) 已带了 rp-pppoe 这一工具来帮您轻松达成目标. 请使用我们提供的 adsl-setup 脚本来配置您的网络连接. 您需要按提示输入您用以连接到 adsl 猫的网络设备, 您的用户名和密码, 您的 DNS 服务器地址, 以及您是否需要防火墙.
代码清单 7: 使用 rp-pppoe |
# adsl-setup # adsl-start |
如果出错, 请再次检查 /etc/ppp/pap-secrets 或 /etc/ppp/chap-secrets 俩文件中您是否已正确地输入了用户名和用户密码, 同时确认您使用了正确的网络设备. 如果您的网络设备不存在, 您就需要加载合适的网络模块. 这种情况下, 请跳到手动网络配置, 在那里我们会向您阐释如何加载网络模块.
如果一切工作正常, 请继续预备硬盘分区.
替代: 使用 PPTP
如果您需要 PPTP 支持, 您可以使用 LiveCD 中提供的 pptpclient. 但首先您得确认您的配置是正确的. 编辑 /etc/ppp/pap-secrets 或 /etc/ppp/chap-secrets 来加入用户名和密码:
代码清单 8: 编辑 /etc/ppp/chap-secrets |
# nano -w /etc/ppp/chap-secrets |
需要的话请调整 /etc/ppp/options.pptp 中的设置:
代码清单 9: 编辑 /etc/ppp/options.pptp |
# nano -w /etc/ppp/options.pptp |
完成后, 运行 pptp (加上您不能在 options.pptp 中设置的参数) 以连接到服务器:
代码清单 10: 连接到拨入 (dial-in) 服务器 |
# pptp |
下面请看预备硬盘分区.
3.d. 手动网络配置
加载恰当的网络 模块
Gentoo LiveCD 启动的时候, 它会检测您机器上所有的硬件设备并试图载入合适的内核模块 (驱动) 以支持您的硬件. 大部分情况下, 它都工作良好. 但有时候, 它未必能自动载入您所需的 模块.
如果 net-setup 或 adsl-setup 不成功, 很有可能就是您的网卡没被正确地识别. 于是, 您就需要自己手动载入合适的内核模块.
使用 ls 来看看我们都提供了那些网络内核模块:
代码清单 11: 搜索已提供的模块 |
# ls /lib/modules/`uname -r`/kernel/drivers/net |
如果您找到了网卡驱动, 请用 modprobe 来加载这一内核模块:
代码清单 12: 使用 modprobe 来 加载内核模块 |
(As an example, we load the pcnet32 module) # modprobe pcnet32 |
要检测您的网卡现在能不能被检测到, 请用 ifconfig. 检测到的网卡通常会输出类似如下的结果:
代码清单 13: 测试您的网卡是否可用, 成功例 |
# 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) |
如果您看到的是下面这样的错误, 那么您的网卡还是没被检测到:
代码清单 14: 测试您的网卡是否可用, 失败例 |
# ifconfig eth0 eth0: error fetching interface information: Device not found |
如果您的系统中有多个网卡, 它们会被命名为 eth0, eth1, 依此类推. 请确保您想用的那个网卡工作正常, 且在整个手册中 (提到网卡的例子里) 都使用 (和您的网卡一致的) 正确的命名. 我们假设使用的是网卡 eth0.
假设您的网卡已被检测到, 您重新运行 net-setup 或 adsl-setup 试试 (这回应该就可以了). 对于 hardcore (Cure: 没合适的词, 郁闷) 用户, 我们将向您阐释如何完全手工地配置网络.
请根据您的网络设置情况选择下面其中一个小节来阅读:
- 使用 DHCP 自动获取 IP
- 准备无线连接 -- 如果您有一个无线网卡
- 理解网络术语向您阐释您需要了解网络中的哪些知识
- 使用 ifconfig 和 route 向您阐释如何手工配置网络
使用 DHCP
DHCP (Dynamic Host Configuration Protocol - 动态主机配置协议) 让我们的机器可以自动地获取网络信息 (IP 地址, 子网掩码, 广播地址, 网关, 域名服务器等等), 前提是您的网络中有一个 DHCP 服务器 (或者您的提供商提供了 DHCP 服务). 要让网络接口自动获得这些信息, 运行 dhcpcd:
代码清单 15: 使用 dhcpcd |
# dhcpcd eth0 有些网络管理员要求您使用 DHCP 服务器所提供的主机名和域名 这种情况下, 使用 # dhcpcd -HD eth0 |
如果能行 (试着 ping 一些网络服务器, 如 google), 那就搞定了. 跳过下面的内容, 继续预备硬盘分区.
准备无线连接
注: 不是每张 LiveCD 都有 iwconfig 这一命令. 如果您的没有, 您还是可以根据 linux-wlan-ng 项目中的步骤以让无线网卡工作起来. |
如果您使用的是无线 (802.11) 网卡, 则需要首先设置好它才能继续后面的步骤. 要查看您当前无线网卡的设置, 运行 iwconfig. 您应该会看到类似如下的输出:
代码清单 16: 显示当前的无线设置 |
# 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 |
注: 有些无线网卡的设备名可能是 wlan0 而非 eth0. |
对于大部分用户来说, 只有两个参数有必要改变, ESSID (即无线网卡的名字) 和 WEP 键. If the ESSID and Access Point address listed are already that of your access point and you are not using WEP, 那么您的无线网卡即已正常工作. 您若需要改变 ESSID, 或 WEP 键, 则运行下面的命令:
代码清单 17: 变更 ESSID 与/或添加 WEP 键 (key) |
(下面将网络名称设为 "GentooNode") # iwconfig eth0 essid GentooNode (以下设置一个十六进制的 WEP 键 (hex WEP key)) # iwconfig eth0 key 1234123412341234abcd (以下设置 ASCII 键 - 以 "s:" 为前缀) # iwconfig eth0 key s:some-password |
然后, 您可以用 iwconfig 来确认您的无线网卡配置情况. 当您的无线网卡开始工作了, 您可以继续下一部分 (理解网络术语) 中配置 IP 级别网络参数 (IP level networking options) 的内容, 或是使用前述的 net-setup.
理解网络术语
注: 如果您知道自己的 IP 地址, 广播地址, 子网掩码以及域名服务器. 那么可以跳过以下部分, 直接到使用 ifconfig 和 route |
如果上面那些手段都失败了, 您这回就真得全手工配置网络了. 别慌, 没啥难的. 不过我们首先得向您阐释一些必要的网络知识, 以便在您随后有足够能力按需配置网络. 您读完这部分之后, 将会明白网关 (gateway) 是什么, 子网掩码 (netmask) 用来干啥, 广播地址 (broadcast) 是如何构成的 以及为啥需要域名服务器 (nameservers).
在一个网络中, 每台主机是通过其 IP 地址 (Internet Protocol address) 来被识别的. 该地址由取值范围为 0 到 255 的四个数字组成. 至少它看起来是这样的. 而实际上, 一个 IP 地址由 32 个比特 (bits) 位 (其值为 0 或 1) 组成. 我们来看个例子:
代码清单 18: IP 地址例 |
IP Address (numbers): 192.168.0.2 IP Address (bits): 11000000 10101000 00000000 00000010 -------- -------- -------- -------- 192 168 0 2 |
在可以访问到的所有网络中, 每台主机的 IP 地址都必需是唯一的 (也就是说, 您可以访问到的每台机器都必需拥有唯一的 IP). 为了可以分开一个网络中的主机和网络外的主机, IP 地址被分成两部分: 网络 (network) 部分和主机 (host) 部分.
这样的分割是和由一堆 0 和 1 构成的子网掩码 (netmask) 一起写下来的 (written down). IP 地址中和掩码里的一映射 (mapped on) 在一起的部分即是网络部分 (network-part), 其他的则是主机部分 (host-part). 通常, 子网掩码可以写成 IP 地址那样的形式.
代码清单 19: 网络/主机分割例 |
IP-address: 192 168 0 2 11000000 10101000 00000000 00000010 Netmask: 11111111 11111111 11111111 00000000 255 255 255 0 +--------------------------+--------+ Network Host |
换句话说, 192.168.0.14 是我们示例网络中的一台主机, 而 192.168.1.2 则不是.
广播地址是这样一个 IP 地址: 它的网络部分和您所在的网络相同, 而主机部分则是一堆的一. 您网络中的所有主机都会一直侦听这一 IP 地址. 它确实是用来广播一些数据包 (packets) 的.
代码清单 20: 广播地址 |
IP-address: 192 168 0 2 11000000 10101000 00000000 00000010 Broadcast: 11000000 10101000 00000000 11111111 192 168 0 255 +--------------------------+--------+ Network Host |
要想上网冲浪, 您就得知道到底哪台主机连着因特网. 这台主机就被成为网关. 由于它就是一台普通的主机, 所以它也拥有一个普通的 IP 地址 (如 192.168.0.1).
我们前面说过每台主机都有其唯一的 IP 地址. 如果您想通过该主机的名字 (而非 IP 地址) 访问到它, 您就需要一种可以把名字 (如 dev.gentoo.org) 解释成 IP 地址 (如 64.5.62.82) 的服务. 这样一种服务称之为域名服务. 要使用该服务, 您就得在 /etc/resolv.conf 中定义必需的域名服务器 (name servers).
一些情况下, 您的网关也会充当域名服务器的角色. 否则, 您就得输入 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 设定到网关的路由 (route), 最后我们把域名服务器的 IP 地址写到 /etc/resolv.conf 中.
要设定 IP 地址, 您需要知道自己的 IP 地址, 广播地址以及子网掩码. 然后运行下面的命令, 把其中的 ${IP_ADDR} 换成您的 IP 地址, ${BROADCAST} 换成广播地址, ${NETMASK} 换成子网掩码:
代码清单 21: 使用 ifconfig |
# ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up |
然后用 route 命令来设定路由. 把下面的 ${GATEWAY} 换成您的网关:
代码清单 22: 使用 route |
# route add default gw ${GATEWAY} |
再用您最喜欢的编辑器 (我们还以 nano 为例) 打开 /etc/resolv.conf:
代码清单 23: 创建 /etc/resolv.conf |
# nano -w /etc/resolv.conf |
现在模仿下面的 模板填入您的每个域名服务器. 请将 ${NAMESERVER1}, ${NAMESERVER2} 替换成您实际的域名服务器地址.
代码清单 24: /etc/resolv.conf 模板 |
nameserver ${NAMESERVER1} nameserver ${NAMESERVER2} |
就这么多, 现在 ping 网络上的一些服务器 (比如 google) 来测试一下您的网络情况. 如果运转正常, 恭喜! 您可以开始安装 Gentoo 啦. 我们继续下一章预备硬盘分区.