配置网络

来自 Alpine Linux

本页面介绍了 Alpine Linux 中可用的各种网络选项,并帮助您使用网络设置脚本或手动配置您的网络,以及测试您的互联网连接。

ifupdown-ng 软件包作为 alpine-base 的一部分安装,提供了管理网络配置的必要工具。有关其他工具,请参阅NetworkManager

默认的无线守护程序 wpa_supplicant 可以通过 setup-interfaces 脚本配置,但 Alpine Linux 也完全支持 iwd

网络设置脚本

以下网络相关脚本可从 alpine-conf 软件包中获得,作为 Alpine 设置脚本的一部分。

以上所有实用程序都是交互式的。当安装 Alpine Linux 时,setup-alpine 脚本应该为您提供了设置以太网/网络的选项。如果您需要在安装后设置网络,可以使用 setup-interfaces 脚本。该脚本配置无线和以太网接口以及其他类型,并将满足大多数简单的配置。

setup-interfaces

通过运行以下命令启动脚本

# setup-interfaces

Available interfaces are: eth0 wlan0.
Enter '?' for help on bridges, bonding and vlans.
Which one do you want to initialize? (or '?' or 'done') [eth0]

选择 eth0 用于以太网或 wlan0 用于无线设备,视情况而定。

如果询问

Ip address for eth0? (or 'dhcp', 'none', '?') [dhcp]

选择 dhcp

现在它会询问 Do you to do any manual network configuration? (y/n) [n]

在大多数情况下,您可以接受默认选项 n 。选择 y 以在 vi 编辑器中打开 /etc/network/interfaces 文件进行编辑,以继续进行手动网络配置。

上述脚本配置了网络服务,添加到启动运行级别并启动该服务。如果需要手动完成此操作,请参阅网络服务部分。

如果您的网络需求更高级,您必须参考以下详细指南进行手动网络配置。

设置主机名

要设置系统主机名

# echo "shortname" > /etc/hostname

然后,要激活更改

# hostname -F /etc/hostname

如果您使用 IPv6,您还应该将以下特殊 IPv6 地址添加到您的 /etc/hosts 文件中

/etc/hosts 的内容

... ::1 localhost ipv6-localhost ipv6-loopback fe00::0 ipv6-localnet ff00::0 ipv6-mcastprefix ff02::1 ipv6-allnodes ff02::2 ipv6-allrouters ff02::3 ipv6-allhosts
提示:如果您要使用自动 IP 配置,例如 IPv4 DHCP 或 IPv6 无状态自动配置,您可以跳到配置 DNS。否则,如果您要使用静态 IPv4 或 IPv6 地址,请继续阅读。

对于静态 IP 配置,通常还需要将您刚刚设置的机器主机名(如上所述)添加到 /etc/hosts 文件中。

这是一个 IPv4 示例

/etc/hosts 的内容

... 192.168.1.150 shortname.domain.com ...

这是一个 IPv6 示例

/etc/hosts 的内容

... 2001:470:ffff:ff::2 shortname.domain.com ...

配置 DNS

提示:对于 IPv4 DHCP 用户:请注意,/etc/resolv.conf 将被 DHCP 提供的任何名称服务器完全覆盖。如果 DHCP 未提供任何名称服务器,则 /etc/resolv.conf 仍将被覆盖,但不会包含任何名称服务器!

对于静态 IP 地址和静态名称服务器,请使用以下示例之一。

对于 IPv4 名称服务器,编辑您的 /etc/resolv.conf 文件,使其看起来像这样
以下示例使用Google 的公共 DNS 服务器

/etc/resolv.conf 的内容

nameserver 8.8.8.8 nameserver 8.8.4.4

对于 IPv6 名称服务器,编辑您的 /etc/resolv.conf 文件,使其看起来像这样
以下示例使用Hurricane Electric 的公共 DNS 服务器。

/etc/resolv.conf 的内容

nameserver 2001:470:20::2

您也可以使用 Hurricane Electric 的公共 IPv4 DNS 服务器

/etc/resolv.conf 的内容

nameserver 74.82.42.42
提示:如果您决定使用 Hurricane Electric 的名称服务器,请注意它是“Google 白名单”中的。这意味着什么?它允许您通过 IPv6 访问 Google 的许多服务。(只是不要将其他非白名单中的名称服务器添加到 /etc/resolv.conf 中 — 具有讽刺意味的是,例如 Google 的公共 DNS 服务器。)阅读 此处 以获取更多信息。

接口配置

如果您的 Alpine Linux 设置没有/使用 ifupdown-ng,则将使用内置的 busybox-ifupdown。在这种情况下,请勿在 /etc/network/interfaces 文件中使用 192.168.1.150/24 格式。而是使用此处显示的格式

/etc/network/interfaces 的内容

... address 192.168.1.150 netmask 255.255.255.0 ...

环回配置

注意:环回配置是强制性的,并且必须首先出现在 /etc/network/interfaces 中,以防止网络问题。

要配置环回,请将以下内容添加到新文件 /etc/network/interfaces

/etc/network/interfaces 的内容

... auto lo iface lo inet loopback

以上操作可设置 IPv4 环回地址 (127.0.0.1) 和 IPv6 环回地址 (::1) — 如果您启用了 IPv6。

无线配置

Alpine Linux 支持两个无线守护程序,即 wpa_supplicantiwdsetup-interfaces 脚本使用 wpa_supplicant 来配置无线接口。同时使用两个无线守护程序会导致冲突。

以太网配置

对于以下以太网配置示例,我们将假设您正在使用以太网设备 eth0

初始配置

将以下内容添加到 /etc/network/interfaces 文件中,在 eth0 的任何 IP 配置之上

/etc/network/interfaces 的内容

... auto eth0 ...

IPv4 DHCP 配置

将以下内容添加到 /etc/network/interfaces 文件中,在 auto eth0 定义下方

/etc/network/interfaces 的内容

... iface eth0 inet dhcp ...

默认情况下,busybox DHCP 客户端 (udhcpc) 从 DHCP 服务器请求一组静态选项。如果您需要扩展此集合,您可以通过在接口配置中为 DHCP 客户端设置一些附加命令行选项(通过 udhcpc_opts)来完成。以下示例请求 domain-search 选项

/etc/network/interfaces 的内容

... iface eth0 inet dhcp udhcpc_opts -O search ...

有关 udhcpc 的完整命令行选项列表,请参阅此文档

IPv4 静态地址配置

将以下内容添加到 /etc/network/interfaces 文件中,在 auto eth0 定义下方

/etc/network/interfaces 的内容

... iface eth0 inet static address 192.168.1.150/24 gateway 192.168.1.1 ...
附加 IP 地址

/etc/network/interfaces 的内容

... iface eth0 inet static address 192.168.1.150/24 gateway 192.168.1.1 iface eth0 inet static address 192.168.1.151/24 ...

IPv6 DHCP 配置

ifupdown-ng 工具支持三个 DHCP 客户端:来自 BusyBox 的 udhcpc、dhclient 和 dhcpcd。在这些客户端中,只有 dhcpcd 可以从同一进程与 DHCP 和 DHCPv6 交互,这是 ifupdown-ng 所要求的。因此,上面给出的 IPv4 DHCP 配置也将导致使用 DHCPv6,但这仅在安装了 dhcpcd 软件包时才有效。ifupdown-ng 脚本根据 /usr/libexec/ifupdown-ng/dhcp 脚本优先使用 dhcpcd 而不是 udhcpc。

注意:v3.21 起,Alpine Linux 中不再提供 dhclient

IPv6 无状态自动配置

将以下内容添加到 /etc/network/interfaces 文件中,在 auto eth0 定义下方

/etc/network/interfaces 的内容

... iface eth0 inet6 auto ...

IPv6 静态地址配置

将以下内容添加到 /etc/network/interfaces 文件中,在 auto eth0 定义下方

/etc/network/interfaces 的内容

... iface eth0 inet6 static address 2001:470:ffff:ff::2/64 gateway 2001:470:ffff:ff::1 pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra ...

示例:双栈配置

此示例显示了双栈配置。

/etc/network/interfaces 的内容

auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.150/24 gateway 192.168.1.1 iface eth0 inet6 static address 2001:470:ffff:ff::2/64 gateway 2001:470:ffff:ff::1 pre-up echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_ra

网络服务

/etc/network/interfaces 所做的更改可以通过运行以下命令激活

# rc-service networking restart

启动(或重启)网络服务

# rc-service networking --quiet start &

要添加网络服务以便在启动时启动

# rc-update add networking boot

防火墙

Alpine Linux 提供了多种防火墙软件。下面列出了一些著名的防火墙软件

故障排除

连接性测试

通过尝试 ping 出站来测试网络是否配置正确

$ ping www.google.com PING www.l.google.com (74.125.47.103) 56(84) 字节的数据。 64 字节来自 yw-in-f103.1e100.net (74.125.47.103): icmp_seq=1 ttl=48 time=58.5 ms 64 字节来自 yw-in-f103.1e100.net (74.125.47.103): icmp_seq=2 ttl=48 time=56.4 ms 64 字节来自 yw-in-f103.1e100.net (74.125.47.103): icmp_seq=3 ttl=48 time=57.0 ms 64 字节来自 yw-in-f103.1e100.net (74.125.47.103): icmp_seq=4 ttl=48 time=60.2 ms ^C --- www.l.google.com ping 统计 --- 4 个数据包已发送,4 个已接收,0% 数据包丢失,时间 3007ms rtt min/avg/max/mdev = 56.411/58.069/60.256/1.501 ms

对于 IPv6 路由跟踪,运行 traceroute6

$ traceroute6 ipv6.google.com traceroute to ipv6.l.google.com (2001:4860:8009::67) from 2001:470:ffff:ff::2, 30 hops max, 16 byte packets 1 2001:470:ffff:ff::1 (2001:470:ffff:ff::1) 3.49 ms 0.62 ms 0.607 ms 2 * * * 3 * * * 4 pr61.iad07.net.google.com (2001:504:0:2:0:1:5169:1) 134.313 ms 95.342 ms 88.425 ms 5 2001:4860::1:0:9ff (2001:4860::1:0:9ff) 100.759 ms 100.537 ms 89.907 ms 6 2001:4860::1:0:5db (2001:4860::1:0:5db) 115.563 ms 102.946 ms 106.191 ms 7 2001:4860::2:0:a7 (2001:4860::2:0:a7) 101.754 ms 100.475 ms 100.512 ms 8 2001:4860:0:1::c3 (2001:4860:0:1::c3) 99.272 ms 111.989 ms 99.835 ms 9 yw-in-x67.1e100.net (2001:4860:8009::67) 101.545 ms 109.675 ms 99.431 ms

iproute2

安装 iproute2 软件包,该软件包提供了 'ss' 命令,它是 netstat 的替代品。

# apk add iproute2

显示正在监听的 tcp 端口

$ ss -tl

显示正在监听的 tcp 端口和关联的进程

$ ss -ptl

显示正在监听和已建立的 tcp 连接

$ ss -ta

显示套接字使用情况摘要

$ ss -s

显示更多选项

$ ss -h

drill

安装 drill(它还将安装 'ldns' 软件包),它是 nslookup 和 dig 等的优秀替代品

# apk add drill

然后像使用 dig 一样使用它

$ drill alpinelinux.org @8.8.8.8

要执行反向查找(从 IP 获取名称),请使用以下语法

$ drill -x 8.8.8.8 @208.67.222.222

缺少接口

有时安装介质无法检测到网络接口。请参阅检查接口的步骤。有关无线接口的相关问题,请参阅Wifi 故障排除页面。如果没有任何效果,您可能必须使用备用接口进行安装(例如 USB 转以太网适配器)。

参见

您可能还希望查看以下网络相关文章