7.5. 通用网络配置

7.5.1. 建立网络接口配置文件

网络脚本开启和关闭哪些端口,一般取决于 /etc/sysconfig/ 下的文件。此文件夹应该包含要配置接口的描述文件,例如 ifconfig.xyz,其中的「xyz」用于描述网卡。(例如 eth0)就是常用的接口名称。文件的内容是此接口的属性信息,例如 IP 地址、子网掩码等。另外,文件名只能是 ifconfig

[注意]

注意

如果没有实施过上一节的内容,那么 udev 将会根据网卡的物理属性分配适当的名称。如果你不确定网卡接口的名称,则可以在系统启动之后执行 ip link 或者 ls /sys/class/net

以下命令将会为 eth0 设备建立启用静态 IP 的示例文件:

cd /etc/sysconfig/
cat > ifconfig.eth0 << "EOF"
ONBOOT=yes
IFACE=eth0
SERVICE=ipv4-static
IP=192.168.1.2
GATEWAY=192.168.1.1
PREFIX=24
BROADCAST=192.168.1.255
EOF

斜体的数值,应该根据实际情况,进行适当的更改。

如果变量 ONBOOT 设置为「yes」则 System V 网络脚本将在系统启动期间激活网卡,如果设置为其他非「yes」值则不会自动激活网卡。但是你可以通过命令 ifupifdown 手动激活或者是禁用网卡。

变量 IFACE 用于定义接口的名称,例如 eth0。所有的网络设备配置文件都依赖于它。文件扩展名必须与该值匹配。

变量 SERVICE 定义了获取 IP 地址的方式。LFS-Bootscripts 包中有模块化的 IP 分配格式,且在文件夹 /lib/services/ 中建立文件以允许其他的 IP 获取方式。在 BLFS 书中,通常它被设置为动态主机配置协议(DHCP)。

变量 GATEWAY 应该包括默认的网关 IP 地址。如果不需要,应该直接将这行注释掉。

变量 PREFIX 表示子网所用的位数。IP 地址中每一个字节是 8 位。如果子网掩码是 255.255.255.0,那么就会使用最前面的 3 个字节(24位)表达网络号。如果子网掩码是 255.255.255.240,则使用最开始的 28 位。前缀如果大于 24 位,一般都用于 DSL 或者是有线 ISP。在此示例中(PREFIX=24),子网掩码是 255.255.255.0。根据你实际的指望调整此字段,如果省略此字段,则默认为 24。

如欲获得更多信息,请浏览 ifup 的 man 手册。

7.5.2. 建立 /etc/resolv.conf 文件

如果系统连接到互联网,则需要通过 DNS 服务将域名和 IP 地址进行相互的转换。你可以从 ISP 或者是网络管理员处获得可用的 DNS 服务器,并填入 /etc/resolv.conf 文件。可以通过以下命令建立此文件:

系统需要一些 DNS(域名服务)名称解析的方法,将 Internet 的域名解析成 IP 地址,反之亦然。最佳的办法就是将,从 ISP 或网络管理员那里获取的,DNS 服务器的 IP 地址填入 /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 地址可供填写(需要备选服务器具有相关兼容性)。如果你只想要填写一个 DNS 服务器,那么将文件中的第二行 nameserver 移除即可。该 IP 地址也可能是本地网络中的路由。

[注意]

注意

Google 公共 IPv4 DNS 的服务器地址是 8.8.8.8 和 8.8.4.4。

7.5.3. 配置系统主机名称

在系统启动期间,文件 /etc/hostname 用于建立系统的主机名称。

通过以下命令建立 /etc/hostname 文件且向其中写入主机名:

echo "<lfs>" > /etc/hostname

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

7.5.4. 定制文件 /etc/hosts

文件 /etc/hosts 用于 IP 地址和完全限定域名(FQDN)及可能的别名的对应。它的语法如下:

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

127.0.0.1 localhost
127.0.1.1 <FQDN> <HOSTNAME>
<192.168.1.1> <FQDN> <HOSTNAME> [alias1] [alias2 ...]
::1       localhost ip6-localhost ip6-loopback
ff02::1   ip6-allnodes
ff02::2   ip6-allrouters

# End /etc/hosts
EOF

其中,<192.168.1.1><FQDN>,和 <HOSTNAME> 的值应该根据用户和实际需要进行更改(如果已经通过网络/系统管理员获得了 IP 地址,那么设备就可以连接到已存在的网络)。其中可选的别名可以忽略。