Show Table of Contents
2.4. 使用命令行界面(CLI)
2.4.1. 使用 ifcfg 文件配置网络接口
接口配置文件控制各个独立网络设备的软件接口。系统引导后,它会使用这些文件决定激活哪些接口,以及如何配置它们。这些文件通常名为
ifcfg-name,其后缀指的是该配置文件控制的设备名称。通常 ifcfg 文件的后缀与配置文件本身的 DEVICE 指令给出的字符串相同。
静态网络设置
要让名为 eth0 的接口使用
ifcfg 文件配置使用静态网络设置的接口,请在 /etc/sysconfig/network-scripts/ 目录中生成名为 ifcfg-eth0 的文件,如下所示:
DEVICE=eth0 BOOTPROTO=none ONBOOT=yes PREFIX=24 IPADDR=10.0.1.27另外还可使用
HWADDR 指令指定硬件或 MAC 地址。注:这可能会影响设备命名步骤,如 第 8 章 一致网络设备命名 所述。不需要指定网络或广播地址,因为 ipcalc 会自动计算这些数值。
动态网络设置
要使用
ifcfg 文件为名为 em1 的接口配置使用动态网络设置的接口,请按照如下操作在 /etc/sysconfig/network-scripts/ 目录中生成名为 ifcfg-em1 的文件:
DEVICE=em1 BOOTPROTO=dhcp ONBOOT=yes另外还可以使用
HWADDR 指令指定硬件或 MAC 地址。注:这可能会影响设备命名过程,如 第 8 章 一致网络设备命名 所述。
要配置一个向
DHCP 服务器发送不同的主机名的接口,请在 ifcfg 文件中添加以下行:DHCP_HOSTNAME=hostname
要将接口配置为忽略由
DHCP 服务器发送的路由,请在 ifcfg 文件中添加以下行:PEERDNS=no这样可防止网络服务使用从
DHCP 服务器接收的 DNS 服务器更新 /etc/resolv.conf。
要配置一个接口以便使用具体
DNS 服务器,请如上所述设定 PEERDNS=no,并在 ifcfg 文件中添加以下行:
DNS1=ip-address DNS2=ip-address其中 ip-address 是
DNS 服务器的地址。这样就会让网络服务使用指定的 DNS 服务器更新 /etc/resolv.conf。
将配置文件设定为自动获取地址,或者将接口配置文件的 BOOTPROTO 设定为
dhcp 后,NetworkManager 将默认调用 DHCP 客户端 dhclient。需要 DHCP 时,会为每个互联网协议启动 dhclient,即每个接口中的 IPv4 和 IPv6。若未运行 NetworkManager,或者未管理接口,旧的网络设备将根据需要调用 dhclient 实例。
配置 DHCP 客户端
2.4.2. 使用 ip 命令配置网络接口
可使用 ip 程序为接口分配
IP 地址。这个命令的格式如下:ip addr [ add | del ] address dev ifname
使用 ip 命令分配静态地址
请作为
root 使用以下命令为接口分配 IP 地址:
~]#更多示例及命令选项请查看ip address add 10.0.0.3/24 dev eth0The address assignment of a specific device can be viewed as follows: ~]#ip addr show dev eth02: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether f0:de:f1:7b:6e:5f brd ff:ff:ff:ff:ff:ff inet 10.0.0.3/24 brd 10.0.0.255 scope global global eth0 valid_lft 58682sec preferred_lft 58682sec inet6 fe80::f2de:f1ff:fe7b:6e5f/64 scope link valid_lft forever preferred_lft forever
ip-address(8) manual page。
使用 ip 命令配置多个地址
因为 ip 程序支持为同一接口分配多个地址,所以不再需要使用别名接口方法在同一接口中绑定多个地址。可重复多次使用 ip 命令分配地址,这样就可以分配多个地址。例如:
~]#ip address add 192.168.2.223/24 dev eth1~]#ip address add 192.168.4.223/24 dev eth1~]#ip addr3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:fb:77:9e brd ff:ff:ff:ff:ff:ff inet 192.168.2.223/24 scope global eth1 inet 192.168.4.223/24 scope global eth1
有关 ip 程序的命令,请参考
ip(8) manual page。
注意
系统重启后会丢失命令行中给出的 ip 命令。
2.4.3. 静态路由及默认网关
静态路由是用于流量,不得用于或不应用于默认网关。路由通常是由网络中专门用于路由的设备提供(虽然所有设备都可被配置为执行路由)。因此,通常不需要在 Red Hat Enterprise Linux 服务器或客户端中配置静态路由。那些必须通过加密 VPN 通道,或者那些因为成本或安全原因应使用具体路由的流量除外。默认网关是用于那些目标不是本地网络,且未在路由表中指定首选路由的流量。默认网关通常是一个专用网络路由器。
注意
要扩展您的专业领域,Red Hat 系统管理 I (RH124) 培训课程可能会对您有所帮助。
使用命令行配置静态路由
如果需要静态路由,可使用
ip route add 命令在路由表中添加,使用 ip route del 命令删除。最常使用的 ip route 命令格式如下:ip route [ add | del | change | append | replace ] destination-address 有关选项及格式的详情,请查看 ip-route(8) man page。
使用不附带任何选项的
ip route 命令显示 IP 路由表。例如:
~]$ ip route default via 192.168.122.1 dev ens9 proto static metric 1024 192.168.122.0/24 dev ens9 proto kernel scope link src 192.168.122.107 192.168.122.0/24 dev eth0 proto kernel scope link src 192.168.122.126
要在主机地址中添加一个静态路由,即
IP 地址,请作为 root 运行以下命令:
ip route add 192.0.2.1 via 10.0.0.1 [dev ifname]
其中 192.0.2.1 是用点分隔的十进制符号中的 IP 地址,10.0.0.1 是下一个跃点,ifname 是进入下一个跃点的退出接口。
要在网络中添加一个静态路由,即代表
IP 地址范围的 IP 地址,请作为 root 运行以下命令:
ip route add 192.0.2.0/24 via 10.0.0.1 [dev ifname]
其中 192.0.2.1 是用点分隔的十进制符号中目标网络的 IP 地址,10.0.0.1 是网络前缀。网络前缀是在子网掩码中启用的位元。这个网络地址/网络前缀长度格式有时是指无类别域际路由选择(CIDR)表示法。
可在
/etc/sysconfig/network-scripts/route-interface 文件中为每个接口保存其静态路由配置。例如:接口 eth0 的静态路由可保存在 /etc/sysconfig/network-scripts/route-eth0 文件中。route-interface 文件有两种格式:ip 命令参数和网络/子网掩码指令,如下所述。
有关
ip route 命令的详情,请查看 ip-route(8) man page。
配置默认网关
确定默认网关时,首先是使用网络脚本解析
/etc/sysconfig/network 文件,然后是为处于 “up” 的接口解析 ifcfg 文件 。ifcfg 文件是按照数字升序的顺序解析,使用最后读取的 GATEWAY 指令编写路由表中的默认路由。
因此,默认路由可使用 GATEWAY 指令代表,并可在全局或具体接口的配置文件中指定。但在 Red Hat Enterprise Linux 中,已经不再使用全局
/etc/sysconfig/network 文件,现在只能在每个接口的配置文件中指定网关。
在动态网络环境中,当使用 NetworkManager 管理主机时,网关信息一般是指具体接口,而且最好是由
DHCP 分配。在某些特殊情况下,如果要影响 NetworkManager 选择用来连接网关的退出接口,请在 ifcfg 文件中为那些不想连接默认网关的接口使用 DEFROUTE=no 命令。
2.4.4. 在 ifcfg 文件中配置静态路由
在命令提示符后使用 ip 设定的静态路由会在系统关机或重启后丢失。要配置静态路由以便在系统重启后仍可保留,则必须将其放在
/etc/sysconfig/network-scripts/ 目录中。该文件名的格式应为 route-ifname。在该配置文件中使用两类命令,即 ip,如 第 2.4.4.1 节 “使用 IP 命令参数格式的静态路由” 所述;及 网络/子网掩码 格式,如 第 2.4.4.2 节 “网络/子网掩码指令格式” 所述。
2.4.4.1. 使用 IP 命令参数格式的静态路由
如果需要根据接口设置的配置文件,例如
/etc/sysconfig/network-scripts/route-eth0 中第一行定义默认网关的路由。只有不是使用 DHCP 设置的网关需要此操作,且不会在 /etc/sysconfig/network 文件中进行全局设置:
default via 192.168.1.1 dev interface
其中 192.168.1.1 是默认网关的
IP 地址。interface 是连接到,或可连接网关的接口。可省略 dev 选项,它是自选项。注:这个设置可覆盖 /etc/sysconfig/network 文件中的设置。
如果需要路由到远程网络,可按以下方式指定静态路由。每行都解析为一个独立路由:
10.10.10.0/24 via 192.168.1.1 [dev interface]
其中 10.10.10.0/24 是网络地址及远程或目标网络的前缀长度。地址 192.168.1.1 是远程网络的第一个
IP 地址。首选下一个跃点地址,但也可以使用退出接口。“下一个跃点”的含义是链接的远端点,例如网关或路由器。可使用 dev 选项指定退出接口 interface,但不一定要这么做。根据需要添加所有静态路由。
以下是使用 ip 命令参数格式的
route-interface 文件示例。默认网关是 192.168.0.1,接口为 eth0,以及 192.168.0.10 中的租用专线或 WAN 连接。两个静态路由是用来连接 10.10.10.0/24 网络和 172.16.1.10/32 主机:
default via 192.168.0.1 dev eth0 10.10.10.0/24 via 192.168.0.10 dev eth0 172.16.1.10/32 via 192.168.0.10 dev eth0
在以上示例中,会将进入本地
192.168.0.0/24 网络的数据包指向附加到那个网络的接口。会将进入 10.10.10.0/24 网络和 172.16.1.10/32 主机的数据包指向 192.168.0.10。进入未知、远程、网络的数据包将使用默认网关,因此只应在默认路由不适用时为远程网络或主机配置静态路由。在这里远程是指没有直接连接到该系统的网络或主机。
指定退出接口为自选项,要强制让流量离开某个具体接口时有用。例如:在使用 VPN 时,可强制让流量通过远程网络使用 tun0 接口,即便该接口处于不同于目标网络的子网中。
重要
如果已由
DHCP 分配默认网关,且在配置文件中指定了使用同一跃点的同一网关,则会在启动时出错,或者在激活某个接口时出错,并显示以下出错信息:"RTNETLINK answers: File exists"。可忽略该信息。
2.4.4.2. 网络/子网掩码指令格式
还可以在
route-interface 文件中使用网络/子网掩码指令格式。以下是网络/子网掩码格式示例,并随后提供具体说明:
ADDRESS0=10.10.10.0 NETMASK0=255.255.255.0 GATEWAY0=192.168.1.1
ADDRESS0=10.10.10.0是要连接的远程网络或主机的网络地址。NETMASK0=255.255.255.0是使用ADDRESS0=10.10.10.0定义的网络地址的子网掩码。GATEWAY0=192.168.1.1是默认网关,或用来连接ADDRESS0=10.10.10.0的IP地址。
以下为使用网络/子网掩码指令格式的
route-interface 文件示例。默认网关为 192.168.0.1,但租用线路或 WAN 连接位于 192.168.0.10。这两个静态路由分别用于连接 10.10.10.0/24 和 172.16.1.0/24 网络:
ADDRESS0=10.10.10.0 NETMASK0=255.255.255.0 GATEWAY0=192.168.0.10 ADDRESS1=172.16.1.10 NETMASK1=255.255.255.0 GATEWAY1=192.168.0.10
后面的静态路由必须以数字顺序排列,且不能跳过任意数值。例如:
ADDRESS0、ADDRESS1、ADDRESS2 等等。
2.4.5. 配置 VPN
Red Hat Enterprise Linux 7 中常见 VPN 的首选方法是使用 Libreswan 的 IPsec。使用命令行配置 IPsec VPN 的详情,请参考《Red Hat Enterprise Linux 7 安全指南》。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.