Translations:Handbook:Parts/Full/Installation/4/zh-cn

From Gentoo Wiki
Jump to:navigation Jump to:search


自动网络检测配置

它能够自动检测到么?

如果系统接入到一个具有 IPv6 路由或 DHCP 服务器的以太网络,那么系统很可能会自动配置好网络。这样就不需要进一步进行高级配置了。你可以这样测试网络连接

使用DHCP

DHCP(动态主机配置协议)协助网络配置,并可提供各种参数的配置,包括:IP地址、网络掩码、路由、DNS服务器、NTP服务器等。

DHCP 需要服务器和请求“lease”的客户端在相同的“layer 2”(以太网)网段上运行。DHCP 经常用于 RFC1918(“私有”)网络,但也经常用于从 ISP 获取公共 IP 信息。

Tip
官方 Gentoo “启动介质”将在启动时自动运行 dhcpcd。你可以向“启动介质”的kernel 命令行中添加nodhcp以禁用此行为。

如果其未在运行,enp1s0 上的 dhcpcd 可以这样启动:

root #dhcpcd enp1s0

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

root #dhcpcd -HD enp1s0

如果要停止 dhcpcd,可以使用 -x

root #dhcpcd -x
sending signal Term to pid 10831
waiting for pid 10831 to exit
See also
使用 Dhcpcd

测试网络

正确配置的“默认”路由是互联网连接的重要组成部分,可通过以下方法检查路由配置:

root #ip route
default via 192.168.0.1 dev enp1s0

如果“默认”路由未定义,则无法连接互联网,需要进行额外配置。

基础互联网连接可以通过 ping 进行验证:

root #ping -c 3 1.1.1.1
Tip
首先 ping 一个已知的 IP 地址而不是主机名,这样做很有帮助。这可以排除 DNS 问题对于基本互联网连接检验的干扰。

可通过以下方式确认出站 HTTPS 访问和 DNS 解析:

root #curl --location gentoo.org --output /dev/null

如果没有出现curl报错,或者其他测试失败,安装进程可以直接跳到准备磁盘

如果 curl 报错,但互联网出站的 ping 请求正常工作,DNS 也许需要进行配置

如果还没有建立互联网连接,应先核实接口信息,然后:

获取接口信息

如果网络连接不能正常工作,则必须采取其他步骤启用互联网连接。一般来说,第一步是列出主机网络接口。

ip 命令,属于 sys-apps/iproute2 软件包,他可以用来查询和配置系统网络。

link 参数可以用来显示网络接口的链接:

root #ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
4: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether e8:40:f2:ac:25:7a brd ff:ff:ff:ff:ff:ff

address 参数可以查询设备地址信息:

root #ip address
2: enp1s0: <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 enp1s0
       valid_lft forever preferred_lft forever
    inet6 fe80::ea40:f2ff:feac:257a/64 scope link 
       valid_lft forever preferred_lft forever

此命令的输出包含每一次系统网络接口的信息。条目从设备索引开始,随后是设备名称:enp1s0

Tip
如果使用标准的ifconfig命令没有显示除了lo(“loopack”)以外的接口,则说明硬件有错误,或者接口驱动没有加载到内核中。这些情况都超过本手册的范围。联系#gentoo (webchat)寻求支持。

为了保持一致性,本手册中假设主要的网络接口为 enp1s0

Note
因为名称变成了预测的网络接口名称(Predictable Network Interface Names),所以系统的接口名称可能和旧的 eth0 命名规则很不一样。现代的Gentoo启动介质使用的接口名称带有前缀,如eno0ens1enp5s0

可选:应用特殊配置

下面的方法一般来说并不是必须的,但在需要进一步配置网络连接时也许有所帮助。

可选:配置网络代理

如果需要通过代理来访问互联网。那么必须为 Portage 定义代理信息,这样才能正确访问每个支持协议的代理。 Portage 使用 http_proxyftp_proxyRSYNC_PROXY 环境变量,通过 wgetrsync 的检索机制来下载软件包。

link等某些基于文本的网络浏览器也可以使用环境变量来配置网络代理;特别是 HTTPS 访问需要https_proxy环境变量进行定义。在调用过程中,Portage 不会传递额外的运行时参数,而 links 则需要设置代理。

大多数情况下,只要将这个环境变量定义为代理服务器主机名。在下面的例子中,假定代理服务器的主机是 proxy.gentoo.org 并且端口为 8080。

Note
下列命令中的 # 符号是注释。添加 # 符号只是为了清楚起见,在输入命令时需要输入 # 符号。

定义一个 HTTP 代理(用于 HTTP 和 HTTPS 流量):

root #export http_proxy="http://proxy.gentoo.org:8080" # 同时应用到 Portage 和 Links
root #export https_proxy="http://proxy.gentoo.org:8080" # 只应用到 Links

如果代理需要验证,使用下面的语法来设置用户名和密码:

root #export http_proxy="http://username:password@proxy.gentoo.org:8080" # 同时应用到 Portage 和 Links
root #export https_proxy="http://username:password@proxy.gentoo.org:8080" # 只应用到 Links

使用下列参数启动可以为 links 使用代理:

user $links -http-proxy ${http_proxy} -https-proxy ${https_proxy}

为 Portage 和 links 定义 FTP 代理:

root #export ftp_proxy="ftp://proxy.gentoo.org:8080" # 同时应用到 Portage 和 Links

使用下列参数启动可以为 links 使用 FTP 代理:

user $links -ftp-proxy ${ftp_proxy}

为 Portage 定义 RSYNC 代理:

root #export RSYNC_PROXY="proxy.gentoo.org:8080" # 应用到 Portage:Links 不支持 rsync 代理

对 ADSL 使用 pppoe-setup

如果需要使用 PPPoE 访问互联网,Gentoo“启动介质”包含pppoe-setup脚本以简化ppp配置。

安装时,pppoe-setup 会询问:

  • 连接到 ADSL 调制解调器的以太网 接口 名称。
  • PPPoE 用户名和密码。
  • DNS 服务器 IP。
  • 是否需要防火墙。
root #pppoe-setup
root #pppoe-start

如果出现故障,则应验证 /etc/ppp/pap-secrets/etc/ppp/chap-secrets 中的凭证。如果凭证正确,则应检查 PPPoE 以太网接口选择。

使用 PPTP

如果需要 PPTP 支持,可以使用 pptpclient,但是需要在使用前提前配置。

编辑 /etc/ppp/pap-secrets 或者 /etc/ppp/chap-secrets,让他们包含正确的用户名和密码:

root #nano /etc/ppp/chap-secrets

如果需要,继续调整/etc/ppp/options.pptp

root #nano /etc/ppp/options.pptp

配置完成后,运行 pptp(带着一些options.pptp无法设定的选项)来连接到服务器:

root #pptp <server ipv4 address>

配置 WEP

Warning
除非万不得已,不要使用 WEP。在开放网络上,WEP 基本不提供安全性保障
Important
iw只有在下列架构中可用:amd64, x86, arm, arm64, ppc, ppc64, and riscv

当使用一块无线(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
Note
一些无线网卡的设备名可能是wlan0ra0而不是 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
Note
如果无线网络配置为WPA或WPA2,则需要使用wpa_supplicant。关于为Gentoo Linux配置无线网络的更多信息,请阅读Gentoo手册中的无线网络章节

使用iw dev wlp9s0 link确认无线设置。如果无线已经工作,继续按下一章节(了解网络属于)配置IP级别的网络选项或者使用前面描述的net-setup工具。

使用 net-setup

如果自动网络配置不成功,Gentoo“启动介质”会提供脚本来帮助进行网络配置。net-setup 可用于配置无线网络信息和静态 IP。

root #net-setup enp1s0

net-setup将会询问关于网络环境的一些问题,并用这些信息配置wpa_supplicant或“静态寻址”。

Important
在进行任何配置后,网络的状态都需要检验。在配置脚本不起作用的情况下,需要手动配置网络

互联网和 IP 基础

如果上述方法都失败,则必须手动配置网络。这并不是一件特别困难的事情,但在操作过程中应考虑周全。本节旨在阐明术语,并向用户介绍与手动配置互联网连接有关的基本网络概念。

Tip
一些CPE运营商提供设备)包含了“路由”、“接入点”、“调解器”、和“DNS 服务器”功能。我们必须分清设备功能和物理设备的不同。

接口和地址

网络“接口”是网络设备的逻辑表示。“接口”需要一个“地址”才能与“网络”上的其他设备通信。虽然只需要一个“地址”,但可以为一个“接口”分配多个地址。这对于双协议栈(IPv4 + IPv6)配置尤其有用。

为了保证一致性,本指南假定接口为enp1s0并将使用192.168.0.2地址。

Important
IP 地址可以任意设定。因此,这有可能造成多个设备使用相同的 IP 地址,从而导致“地址冲突”。地址冲突可以通过使用 DHCP 或 SLAAC 得到解决。
Tip
IPv6 通常使用无状态地址自动配置StateLess Address AutoConfiguration, SLAAC)进行地址配置。在多数情况下,手动配置IPv6不是个好操作。如果希望使用特定的地址后缀,可以使用接口识别令牌

网络和 CIDR

当选定一个地址后,如何让一台设备知道怎样与其他设备交流呢?

IP“地址”关联着“网络”。IP“网络”是连续逻辑地址范围。

“无类别域间路由”或“CIDR”符号用于区分网络大小。

  • “CIDR”值通常以/开始,表示网络大小。
    • 公式“2 ^ (32 - CIDR)”可用于计算网络大小。
    • 计算出网络规模后,可用节点数必须减少2。
      • 网络中第一个 IP 地址是“网络地址”,最后一个是“广播地址”。这些地址是特殊的,且不能用于普通服务器。
Tip
最常见的“CIDR”值是/24/32,分别表示254个节点和一个节点。

/24的“CIDR”实际上是默认网络地址大小。这对应着子网掩码“255.255.255.0”,其中最后8位保留用于网络上的节点 IP 地址。

符号192.168.0.2/24可以解释为:

  • “地址”192.168.0.2
  • 位于“网络”192.168.0.0
  • 拥有大小 254(2 ^ (32 - 24) - 2)
    • 可用的 IP 段为 192.168.0.1 - 192.168.0.254
  • 具有“广播地址”192.168.0.255
    • 在多数情况下,最后一个网络地址是“广播地址”,但也可以修改。

使用这个配置,一台设备就可以与同一“网络”(192.168.0.0)上的任何设备交流。

互联网

当一个设备接入网络时,它如何知道怎样与互联网上的设备交流?

为了和本地“网络”之外的设备交流,就必须使用“路由”。“路由器”是一个简单的网络设备,用于转发其他设备的信息。术语“默认路由”或“网关”通常指当前网络上用于外部网络访问的任何设备。

Tip
将“网关”设定为网络上的第一个或最后一个 IP 地址是标准操作。

如果连接互联网的路由器位于192.168.0.1,它可以设定为“默认路由”,掌管互联网访问。

总结来说:

  • 接口必须配置了“地址”或“网络”信息,例如“CIDR”值。
  • 本地网络访问用于与“路由器”连接到同一网络上。
  • “默认路由”需要配置,从而向外部网络发送的信息会被转发到“网关”,提供互联网访问。

域名系统

记忆 IP 地址很难。为了建立的“域名”与“IP 地址”的映射关系,我们建立了“域名系统”。

Linux 系统使用/etc/resolv.conf来定义用于“DNS解析”的“域名服务器”。

Tip
很多“路由器”也有 DNS 服务器的功能,使用本地 DNS 服务器可以保护隐私并通过缓存提升查询速度。

许多 ISP 都运行 DNS 服务器,通常通过 DHCP 向 “网关 ”发布广告。使用本地 DNS 服务器往往会改善查询延迟,但大多数公共 DNS 服务器都会返回相同的结果,因此服务器的使用主要取决于偏好。

手动配置网络

配置接口地址

Important
手动配置 IP 地址时,必须考虑本地网络拓扑结构。IP 地址可以任意设置,但冲突可能会导致网络中断。

为了将 enp1s0 配置到地址 192.168.0.2 和 CIDR /24上:

root #ip address add 192.168.0.2/24 dev enp1s0
Tip
此命令的开头可以简写为ip a

配置默认路由

为接口配置地址和网络信息将配置 link 路由,并允许与此 network segment 通信:

root #ip route
192.168.0.0/24 dev enp1s0 proto kernel scope link src 192.168.0.2
Tip
此命令可以简写为ip r

通过default路由设定为192.168.0.1

root #ip route add default via 192.168.0.1

配置 DNS

域名服务信息通常需要使用 DHCP,但也可以通过在/etc/resolv.conf添加nameserver条目手动设定。

Warning
如果“dhcpcd”正在运行,/etc/resolv.conf的更改不会立即生效。可以通过ps x | grep dhcpcd查看状态。

nano包含在Gentoo“启动介质”中,可用于编辑/etc/resolv.conf

root #nano /etc/resolv.conf

包含关键字 nameserver 和 DNS 服务器 IP 地址的行按定义顺序查询:

FILE /etc/resolv.conf使用Quad9 DNS
nameserver 9.9.9.9
nameserver 149.112.112.112
FILE /etc/resolv.conf使用 Cloudflare DNS
nameserver 1.1.1.1
nameserver 1.0.0.1

DNS 状态可以通过 ping 一个域名进行检查:

root #ping -c 3 gentoo.org

确认连接成功后,请继续进行准备磁盘