手册:X86/安装/配置网络
自动网络检测配置
它能够自动检测到么?
如果系统接入到一个具有 IPv6 路由或 DHCP 服务器的以太网络,那么系统很可能会自动配置好网络。这样就不需要进一步进行高级配置了。你可以这样测试网络连接。
使用DHCP
DHCP(动态主机配置协议)协助网络配置,并可提供各种参数的配置,包括:IP地址、网络掩码、路由、DNS服务器、NTP服务器等。
DHCP 需要服务器和请求“lease”的客户端在相同的“layer 2”(以太网)网段上运行。DHCP 经常用于 RFC1918(“私有”)网络,但也经常用于从 ISP 获取公共 IP 信息。
如果其未在运行,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
如果“默认”路由未定义,则无法连接互联网,需要进行额外配置。
基础互联网连接可以通过 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 也许需要进行配置。
如果还没有建立互联网连接,应先核实接口信息,然后:
- 使用 net-setup 协助网络配置。
- 特殊应用配置可能需要进行。
- 手动网络配置也可以尝试。
获取接口信息
如果网络连接不能正常工作,则必须采取其他步骤启用互联网连接。一般来说,第一步是列出主机网络接口。
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
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启动介质使用的接口名称带有前缀,如eno0、ens1或enp5s0。
可选:应用特殊配置
下面的方法一般来说并不是必须的,但在需要进一步配置网络连接时也许有所帮助。
可选:配置网络代理
如果需要通过代理来访问互联网。那么必须为 Portage 定义代理信息,这样才能正确访问每个支持协议的代理。 Portage 使用 http_proxy、ftp_proxy 和 RSYNC_PROXY 环境变量,通过 wget 和 rsync 的检索机制来下载软件包。
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
一些无线网卡的设备名可能是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工具。
使用 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 地址的行按定义顺序查询:
nameserver 9.9.9.9
nameserver 149.112.112.112
nameserver 1.1.1.1
nameserver 1.0.0.1
DNS 状态可以通过 ping 一个域名进行检查:
root #
ping -c 3 gentoo.org