This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
手册:Alpha/安装/配置网络
Alpha Handbook |
---|
安装 |
关于安装 |
选择安装媒介 |
配置网络 |
准备磁盘 |
安装stage3 |
安装基本系统 |
配置Linux内核 |
配置系统 |
安装系统工具 |
配置系统引导程序Bootloader |
收尾安装工作 |
使用Gentoo |
Portage介绍 |
USE标记 |
Portage功能特性 |
初始化脚本(Initscript)系统 |
环境变量 |
使用Portage |
文件和目录 |
变量 |
混合使用不同的软件分支 |
额外的工具 |
定制Portage树 |
高级特性 |
网络配置 |
入门 |
高级配置 |
模块化网络 |
无线 |
添加功能 |
动态管理 |
自动网络检测
它能够自动检测到么?
如果系统接入到一个有DHCP服务器的以太网络,网络配置非常可能会自动设置。这样的话,安装CD所包含的很多网络命令,比如ssh、scp、ping、irssi、wget、links,以及其他的一些, 都可以立即工作。
识别接口名称
ifconfig命令
如果网络已配置,ifconfig命令应该会列出一个或多个网络接口(围绕着lo)。在下面的示例中显示为eth0:
root #
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
作为预测的网络接口名称控制的结果, 系统的接口名称可以和旧的eth0命名规则很不一样。近期的安装媒介可能显示常规网络接口名字像是eno0、ens1或enp5s0。查看ifconfig输出中找到有你本地网络相关的IP地址的接口。
如果使用标准的ifconfig命令没有显示出接口,尝试使用带有
-a
选项的相同的命令。这个选项强制这个工具去显示系统检测到的所有的网络接口,不管他们是up或down状态。如果ifconfig -a没有提供结果,则硬件有错误或者接口驱动没有加载到内核中。这些情况都超过本手册的范围。联系#gentoo需求支持。ip命令
作为ifconfig的一个备选,ip命令可以用来识别接口名称。下面的示例展示了ip addr(由于是另外一个系统,所以显示的信息不同于前一个示例)的输出:
root #
ip addr
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether e8:40:f2:ac:25:7a brd ff:ff:ff:ff:ff:ff inet 10.0.20.77/22 brd 10.0.23.255 scope global eno1 valid_lft forever preferred_lft forever inet6 fe80::ea40:f2ff:feac:257a/64 scope link valid_lft forever preferred_lft forever
上面的输出读起来可能比另外的更乱一点。在上面的示例中,接口名称直接跟在数字后面;它是eno1。
在本文档的其余部分,手册中假设要操作的网络接口叫作eth0。
可选:配置代理
如果要通过代理访问互联网,则在安装过程中需要设置代理信息。定义一个代理十分容易:只需要定义一个包含代理服务器信息的变量即可。
大多数情况下,只要将这个变量定义为代理服务器主机名。作为示例,我们假定代理叫作proxy.gentoo.org并且端口为8080。
设置一个HTTP代理(用于HTTP或HTTPS流量):
root #
export http_proxy="http://proxy.gentoo.org:8080"
设置一个FTP代理:
root #
export ftp_proxy="ftp://proxy.gentoo.org:8080"
设置一个RSYNC代理:
root #
export RSYNC_PROXY="proxy.gentoo.org:8080"
如果代理要求用户名和密码,针对变量使用下面语言:
http://username:password@proxy.gentoo.org:8080
测试网络
尝试ping你的ISP的DNS服务器(可在/etc/resolv.conf中找到)和选择一个网站。这可确信网络正常工作并且网络包可以到达网络,DNS名称解析能正常工作等等。
root #
ping -c 3 www.gentoo.org
如果这些都工作,则本章节中其余的部分可跳过,直接跳到安装介绍的下一步骤(准备磁盘)。
自动网络配置
如果网络没有立即工作,一些安装媒介允许用户使用net-setup(针对常规或无线网络),pppoe-setup(针对ADSL用户)或pptp(针对PPTP用户)。
如果安装媒介没有包含这些工具,继续手动配置网络。
- 常规以太网用户应该继续默认:使用net-setup
- ADSL用户应该继续备选:使用PPP
- PPTP用户应该继续备选:使用PPTP
默认:使用net-setup
如果网络没有自动配置,最简单的方式是运行net-setup脚本来设置:
root #
net-setup eth0
net-setup将会询问关于网络环境的一些问题。当所有这些完成后,网络连接就应该工作。以前面的方式测试网络连接。如果测试通过,恭喜!跳过本章节剩余部分并继续准备磁盘。
如果网络还是不能工作,继续手动配置网络。
可选:使用PPP
假设需要使用PPPoE连接到互联网,安装CD(任何版本)包含ppp来使这件事变得容易。使用提供的pppoe-setup脚本来配置连接。设置过程中将询问已连接到你的ADSL调制解调器的以太网设备、用户名和密码、DNS服务器的IP地址,以及是否需要一个简单的防火墙。
root #
pppoe-setup
root #
pppoe-start
如果还是有什么错误,再次在etc/ppp/pap-secrets或/etc/ppp/chap-secrets中检查用户名和密码都是正确的,并且确保使用了正确的以太网设备。如果以太网设备不存在,则需要加载合适的网络模块。如果是那样,继续手动网络配置将解释如何加载合适的网络模块。
如果所有事都还,继续准备磁盘。
可选:使用PPTP
如果需要PPTP支持,使用安装CD提供的pptpclient。但是首先确保配置是正确的。编辑/etc/ppp/pap-secrets或/etc/ppp/chap-secrets让它包含正确的用户名/密码组合:
root #
nano -w /etc/ppp/chap-secrets
如果需要,继续调整/etc/ppp/options.pptp:
root #
nano -w /etc/ppp/options.pptp
当所有事都已完成,运行pptp(带着一些options.pptp无法设定的选项)来连接到服务器:
root #
pptp <server ip>
现在继续准备磁盘。
手动配置网络
加载适当的网络模块
安装光盘在启动时,会尝试检测所有硬件设备并加载适当的内核模块(驱动程序)以支持你的硬件。绝大多数情况下,它都做得非常好。尽管如此,在某些情况下它可能还是无法自动载入你所需要的内核模块。
如果net-setup或pppoe-setup都失败,则可能是网络没有立即被找到。也就是说用户可能需要手动加载合适的内核模块。
要找出什么内核模块提供网络,使用ls命令:
root #
ls /lib/modules/`uname -r`/kernel/drivers/net
如果找到一个针对网络设备的驱动,使用modprobe来加载内核模块。比如,要加载pcnet32模块:
root #
modprobe pcnet32
要检查网卡现在是否检测到,使用ifconfig。一个检测到的网卡应该在结果中像这样(再一次,这里的eth0只是一个示例):
root #
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)
不过如果你得到如下错误信息,说明没有检测到网卡:
root #
ifconfig eth0
eth0: error fetching interface information: Device not found
系统中可用网络接口命名可以通过/sys文件系统列出。
root #
ls /sys/class/net
dummy0 eth0 lo sit0 tap0 wlan0
在上面的示例中,找到了6个接口。eth0是最像(有线)以太网络适配器,而wlan0 是无线的。
假设现在网络已经检测到了,重新尝试net-setup或pppoe-setup(现在应该工作了),但是对于铁杆的人,我们还是要解释如何手动配置网络。
基于你的网络从下面的章节中选择一个进行设置:
- 使用DHCP 针对自动获取IP
- 准备无线访问 如果使用无线网络
- 了解网络术语 解释了关于网络的基础
- 使用ifconfig和route 解释了如何手动设置网络
使用DHCP
DHCP(动态主机配置协议)使自动接受网络信息(IP地址、掩码、广播地址、网关、名称服务器等)变得容易。这只在网络中有DHCP服务器(或者如果ISP提供商提供一个DHCP服务)时有用。要使一个网络接口自动接受信息,使用dhcpcd:
root #
dhcpcd eth0
一些网络管理员要求你使用DHCP服务器所提供的主机名和域名。 这种情况下请用:
root #
dhcpcd -HD eth0
如果这个工作的话(试着ping一些Internet服务器,像Google的8.8.8.8 或者 Cloudflare的 1.1.1.1 译者注:中国的114.114.114.114),则所有事情都设置好了并可以继续。跳过剩下的章节并继续到准备磁盘。
准备无线网络链接
当使用一块无线(802.11)网卡,在继续之前需要先配置无线设置。要查看当前无线网卡的设置,你可以使用iw。运行iw可能会显示如下:
root #
iw dev wlp9s0 info
Interface wlp9s0 ifindex 3 wdev 0x1 addr 00:00:00:00:00:00 type managed wiphy 0 channel 11 (2462 MHz), width: 20 MHz (no HT), center1: 2462 MHz txpower 30.00 dBm
检查当前连接:
root #
iw dev wlp9s0 link
Not connected.
或
root #
iw dev wlp9s0 link
Connected to 00:00:00:00:00:00 (on wlp9s0) SSID: GentooNode freq: 2462 RX: 3279 bytes (25 packets) TX: 1049 bytes (7 packets) signal: -23 dBm tx bitrate: 1.0 MBit/s
一些无线网卡的设备名可能是wlan0或ra0而不是wlp9s0。运行ip link 来识别正确的设备名称。
对于大多数用户,只需要两个设置来连接,即ESSID(也称无线网络名称)和可选的WEP密钥。
- 首先,确保接口处于活动状态:
root #
ip link set dev wlp9s0 up
- 连接到名为“GentooNode”的开放网络:
root #
iw dev wlp9s0 connect -w GentooNode
- 设置一个WEP密钥:使用
d:
前缀:
root #
iw dev wlp9s0 connect -w GentooNode key 0:d:1234123412341234abcd
- 使用ASCII WEP密钥连接:
root #
iw dev wlp9s0 connect -w GentooNode key 0:some-password
使用iw dev wlp9s0 link确认无线设置。如果无线已经工作,继续按下一章节(了解网络术语)配置IP级别的网络选项或者使用前面描述的net-setup工具。
网络术语解读
如果IP地址、广播地址、掩码和名称服务器这些全都了解,则可以跳过这个子章节,进入到使用ifconfig和route。
如果以上所做的全部失败,你将不得不手动配置你的网络。这其实一点也不难。不过,你需要熟悉一些网络术语,才能配置好网络令自己满意。读完本节之后,你将了解到什么是网关,子网掩码是作什么用的,广播地址是如何形成的,以及为什么需要名称服务器。
在网络中,主机通过它们的IP地址(互联网协议地址)来标识。这个地址被看为是由四个0到255的数字来组成。很好,至少在使用IPv4(IP版本4)时。实事上,这样的一个IPv4地址包括32个位(1和0)。让我们来看一个示例:
IP地址(数字): 192.168.0.2 IP地址(位): 11000000 10101000 00000000 00000010 -------- -------- -------- -------- 192 168 0 2
比IPv4更成功的IPv6使用128位(1和0)。在这章节中,我们只关注IPv4地址。
在所有可访问到的网络里,这样的IP地址跟主机是一一对应的(比如你能够连接到的每台主机必须拥有一个唯一的IP地址)。为了区别一个网络内部和外部的主机,IP地址被分为两个部分:网络部分和主机部分。
由一堆1后面跟着一堆0的掩码写出了网络的分离。IP映射到1的部分是网络部分,剩下的是主机部分。通常,掩码可以写成IP地址。
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不是。
广播地址是一个拥有相同网络部分,但是主机部分全是1的IP地址。网络上的每一个主机都监听这个IP地址。它的真正用途是用来广播包。
IP地址: 192 168 0 2 11000000 10101000 00000000 00000010 广播: 11000000 10101000 00000000 11111111 192 168 0 255 +--------------------------+--------+ 网络 主机
为了能在互联网上冲浪,网络中的每个主机必须知道哪个主机共享着互联网连接。这个主机叫作网关。它同样是一台常规主机,它有一个常规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设置到网关的路由
- 通过/etc/resolv.conf设置名称服务器的IP完成
要指派一个IP地址,需要IP地址、广播地址和掩码。运行下面的命令,替换${IP_ADDR}为正确的IP地址、${BROADCAST}为正确的广播地址以及${NETMASK}为正确的掩码:
root #
ifconfig eth0 ${IP_ADDR} broadcast ${BROADCAST} netmask ${NETMASK} up
使用route设置路由。替换${GATEWAY}为正确的网络IP地址:
root #
route add default gw ${GATEWAY}
现在打开/etc/resolv.conf:
root #
nano -w /etc/resolv.conf
使用下面的模板填入名称服务器。确保替换${NAMESERVER1}和${NAMESERVER2}为合适的名称服务器地址:
nameserver ${NAMESERVER1} nameserver ${NAMESERVER2}
就是这样。现在通过ping一些互联网服务器(像Google的8.8.8.8 或者 Cloudflare的 1.1.1.1 译者注:中国的114.114.114.114)来测试网络。如果这个工作的话,再次恭喜。继续到准备磁盘。