《Linux From Scratch》第三部分:构建LFS系统 第七章:基本系统配置- 7.2. 通用网络配置

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介:

 本节仅在需要配置网卡时参考。

7.2.1. 网络接口配置文件

从版本 209 开始,systemd 提供了一个名为 systemd-networkd 命令用于处理基本的网络配置。

systemd-networkd 的配置文件可能在 /usr/lib/systemd/network/etc/systemd/network 中,其中 /etc/systemd/network 中的配置文件优先级更高。

有三种配置文的类型:.link.netdev.network 。可以通过查阅 man 手册的 systemd-link(5)systemd-netdev(5)systemd-network(5) 可以获得更多关于这些配置文件的详细介绍。

[Note]

注意

udev 可能根据你电脑的物理设备特性将网卡接口设置为不同的名称,比如 enp2s1。如果你不能确定你的网卡名称,可以在系统启动后执行 ip link 命令查看。

译者注:通过执行 ip link 命令,你应该能够取得类似以下的输出:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT
group default qlen 1000
link/ether fc:aa:14:2d:db:a1 brd ff:ff:ff:ff:ff:ff
3: wlp0s20u9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group
default qlen 1000
link/ether 0c:82:68:52:85:57 brd ff:ff:ff:ff:ff:ff

其中斜体的部分就是物理网卡的名称。

以下内容摘录于 ArchLinux wiki

对于有多块网卡的电脑,固定设备名称很重要。许多配置问题都是由于网络接口名称变化引起的。

udev 负责给设备命名。Systemd v197 引入了可预测的网络接口名称自动给网络设备分配静态名称,网络接口现在是以前缀 en(以太网)、wl(WLAN)、或者 ww(WWAN)附上一个自动生成的标识符,产生了一个类似于 enp2s1 的条目。

7.2.1.1. 静态 IP 配置

通过以下的命令创建静态 IP 的基本配置文件:

cat > /etc/systemd/network/10-static-eth0.network << "EOF"
[Match]
Name=eth0

[Network]
Address=192.168.0.2/24
Gateway=192.168.0.1
DNS=192.168.0.1
EOF

在配置文件中,可以指定多个 DNS 条目。

7.2.1.2. DHCP 配置

通过以下的命令创建 DHCP 的基本配置文件:

cat > /etc/systemd/network/10-dhcp-eth0.network << "EOF"
[Match]
Name=eth0

[Network]
DHCP=yes
EOF

需要注意的是,当前 systemd-networkd 仅能够处理 DHCPv4。DHCPv6 的支持正在快马加鞭的筹划中。

7.2.2. 创建 /etc/resolv.conf 文件

如果你的系统需要连接到互联网,它需要利用 DNS 服务将互联网域名解析为实际的 IP 地址,反之亦然。最好的方法是将从 ISP 或者是网络管理员那里取得的 DNS 服务器地址填入 /etc/resolv.conf

如果需要静态的 /etc/resolv.conf 文件,请使用以下命令:

cat > /etc/resolv.conf << "EOF"
# Begin /etc/resolv.conf

domain <Your Domain Name>
nameserver <IP address of your primary nameserver>
nameserver <IP address of your secondary nameserver>

# End /etc/resolv.conf
EOF

domain 声明可以忽略或者以 search 声明替换。参考 man 手册的 resolv.conf 部分获得更多信息。

其中,<IP address of the nameserver> 替换为最合适的 DNS 的 IP 地址。通常会有多个条目(需要备选服务器具有相关兼容性)。如果你只需要一台 DNS 服务器,请不要输入第二行 nameserver 的内容。该 IP 地址也可以是本地网络中的一台路由。

[Note]

注意

Google 公开 IPv4 DNS 解析服务器地址为 8.8.8.8 和 8.8.4.4。
(译者注:国内也有一些 IT 公司提供公开可用的 DNS 解析服务:
114 DNS:114.114.114.114 和 114.114.115.115
阿里 DNS:223.5.5.5 和 223.6.6.6
百度 DNS:180.76.76.76
OpenDNS:208.67.220.220)

当使用 systemd-networkd 配置网络,另一个守护进程 systemd-resolved 将会创建 /etc/resolv.conf 文件。然后在早先版本中此文件的路径并不标准,因此你需要使用以下的命令创建到标准位置的链接:

ln -sfv /run/systemd/resolve/resolv.conf /etc/resolv.conf

对于在 .network 文件中指定了 DNS 或者使用内置 DHCP 客户端获得 DNS 这两种情况,必须要做如上操作。

7.2.3. 配置系统主机名称

在系统启动过程中,/etc/hostname 文件用于创建系统的主机名称。

通过以下命令创建 /etc/hostname 文件:

echo "<lfs>" > /etc/hostname

<lfs> 替换为你想要设置的名称。请不要输入完整域名(Fully Qualified Domain Name,FQDN),它应该在 /etc/hosts 文件中。

7.2.4. 自定义 /etc/hosts 文件

将确定IP地址、完整域名(Fully-Qualified Domain Name,FQDN)和可能的别名填入/etc/hosts 文件中。语法是:

IP_address myhost.example.org aliases

除非当前电脑对互联网可见(即已经注册有域名且分配有效的 IP 段——放心吧,大多数用户都没有),否则请确保 IP 地址位于专有网络 IP 段。有效的范围是:

私人网络地址范围     		正常前缀
10.0.0.1 - 10.255.255.254           8
172.x.0.1 - 172.x.255.254           16
192.168.y.1 - 192.168.y.254         24

x 为 16-31 之间的任意值。Y 为 0-255 之间的任意值。

有效的专有 IP 地址形如 192.168.1.1,有效的完整域名形如 lfs.example.org。

就算没有网卡,也应该提供有效的完整域名,否则某些软件可能无法正常运行。

通过以下命令创建 /etc/hosts 文件:

cat > /etc/hosts << "EOF"
# Begin /etc/hosts (network card version)

127.0.0.1 localhost
::1       localhost
<192.168.0.2> <HOSTNAME.example.org> [alias1] [alias2] ...

# End /etc/hosts (network card version)
EOF

<192.168.0.2> <HOSTNAME.example.org> 应该更改为需要设置的值(如果此 IP 地址是由网络/系统管理员分配的且电脑可以连接到存在的网络)。别名可以省略。

如果暂时不打算进行以上的配置,那直接运行下面的命令创建最通用的 /etc/hosts 文件:

cat > /etc/hosts << "EOF"
# Begin /etc/hosts (no network card version)

127.0.0.1 <HOSTNAME.example.org> <HOSTNAME> localhost
::1       localhost

# End /etc/hosts (no network card version)
EOF

::1 为 IPv6 对应的 127.0.0.1,且为 IPv6 的回环接口。

相关文章
|
6天前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
118 78
|
9天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
42 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
5天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
49 13
|
6天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
24 0
|
7月前
|
域名解析 网络协议 Linux
linux网络配置详解
linux网络配置详解
163 0
|
Linux
Linux网络配置详解
<p><span style="font-size: 14pt;"> 搭建LAMP的形式分为:</span><br><span style="font-size: 14pt;">   ①:rpm----&gt;系统自带的软件(二进制软件包)</span><br><span style="font-size: 14pt;">   ②:.tar.gz----&gt; 源码的压缩文件</sp
1207 0
|
1月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
96 8
|
1月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
279 6
|
1月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
80 3