配置网络

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:AMD64/Installation/Networking and the translation is 100% complete.
AMD64 手册
安装
关于安装
选择安装媒介
配置网络
准备磁盘
安装 stage3
安装基础系统
配置内核
配置系统
安装系统工具
配置引导程序
安装收尾
使用 Gentoo
Portage 介绍
USE 标记
Portage 功能特性
Initscript 系统
环境变量
使用 Portage
文件和目录
变量
混合使用不同的软件分支
额外的工具
自定义软件包仓库
高级特性
配置网络
开始
高级配置
模块化网络
无线网络
添加功能
动态管理


自动网络检测配置

它能够自动检测到么?

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

使用DHCP

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

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

提示
官方 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
另请参阅
使用 Dhcpcd

测试网络

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

root #ip route
default via 192.168.0.1 dev enp1s0

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

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

root #ping -c 3 1.1.1.1
提示
首先 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

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

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

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

可选:应用特殊配置

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

可选:配置网络代理

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

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

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

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

定义一个 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

警告
除非万不得已,不要使用 WEP。在开放网络上,WEP 基本不提供安全性保障
重要
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
附注
一些无线网卡的设备名可能是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
附注
如果无线网络配置为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或“静态寻址”。

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

互联网和 IP 基础

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

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

接口和地址

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

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

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

网络和 CIDR

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

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

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

  • “CIDR”值通常以/开始,表示网络大小。
    • 公式“2 ^ (32 - CIDR)”可用于计算网络大小。
    • 计算出网络规模后,可用节点数必须减少2。
      • 网络中第一个 IP 地址是“网络地址”,最后一个是“广播地址”。这些地址是特殊的,且不能用于普通服务器。
提示
最常见的“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)上的任何设备交流。

互联网

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

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

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

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

总结来说:

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

域名系统

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

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

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

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

手动配置网络

配置接口地址

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

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

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

配置默认路由

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

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

通过default路由设定为192.168.0.1

root #ip route add default via 192.168.0.1

配置 DNS

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

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

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

root #nano /etc/resolv.conf

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

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

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

root #ping -c 3 gentoo.org

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