分配静态 IP 地址¶
本指南介绍如何分配静态 IP 地址。在网络中并无 DHCP 服务器等情况下,此举可能会有帮助。
确定哪个程序正在管理接口¶
全新安装的 Clear Linux* OS 使用 NetworkManager 作为所有网络连接的默认网络接口管理器。
注解
- 云 Clear Linux OS 映像继续使用 systemd-networkd 来管理网络连接。
- 在较早的 Clear Linux OS 版本中,systemd-network 用于管理以太网接口,而 NetworkManager 用于管理无线接口。
定义分配静态 IP 地址的配置之前,请确认哪个程序正在管理网络接口。
检查 nmcli device 的输出,确认 NetworkManager 是否正在管理设备。
nmcli device status
如果设备的 STATE 列显示 connected 或 disconnected,则网络配置由 NetworkManager 管理,此时请按照 使用 NetworkManager 中的说明执行操作。
如果设备的 STATE 列显示 unmanaged,则检查设备是否由 systemd-networkd 管理。
检查 networkctl list 的输出,确认 systemd-networkd 是否正在管理设备。
networkctl list
如果设备的 SETUP 列显示 configured,则网络配置由 systemd-networkd 管理,此时请按照 使用 systemd-networkd 中的说明执行操作。
使用 NetworkManager¶
由 NetworkManager 管理的网络连接在 /etc/NetworkManager/system-connections/
目录中存储为扩展名为 .nmconnection
的文件。
有些工具可协助处理由 NetworkManager 管理的网络连接:
- nmcli - 命令行工具
- nmtui - 在终端中提供伪图形菜单的文本用户界面
- nm-connection-editor - 图形用户界面
下面的方法使用命令行工具 nmcli 修改网络连接。
找出现有的连接名称:
nmcli connection show
示例输出:
NAME UUID TYPE DEVICE Wired connection 1 00000000-0000-0000-0000-000000000000 802-3-etherneten01
如果不存在连接,请使用 nmcli connection add 命令创建一个连接。
修改连接以使用静态 IP 地址。使用合适的值替换括号中的变量。将 [CONNECTION_NAME] 替换为上面命令中的 NAME。
sudo nmcli connection modify "[CONNECTION_NAME]" \ ipv4.method "manual" \ ipv4.addresses "[IP_ADDRESS]/[CIDR_NETMASK]" \ ipv4.gateway "[GATEWAY_IP_ADDRESS]" \ ipv4.dns "[PRIMARY_DNS_IP],[SECONDARY_DNS_IP]"
有关更多配置选项,请参阅 nmcli developer page。执行高级配置时,可以直接编辑
/etc/NetworkManager/system-connections/*.nmconnection
。重启 NetworkManager 服务器以重新加载 DNS 服务器:
sudo systemctl restart NetworkManager
确认静态 IP 地址详细信息是否已设置:
nmcli
使用 systemd-networkd¶
由 systemd-networkd 管理的网络连接在 /etc/systemd/network/
目录中存储为扩展名为 .network
的文件。
用来处理由 systemd-networkd 管理的网络连接的文件必须手动创建。
如果
/etc/systemd/network
目录尚不存在,请创建该目录:sudo mkdir -p /etc/systemd/network
创建一个
.network
文件并添加以下内容。使用合适的值替换括号中的变量。将 [INTERFACE_NAME] 替换为之前运行的 networkctl list 命令输出中的 LINK。sudo $EDITOR /etc/systemd/network/70-static.network [Match] Name=[INTERFACE_NAME] [Network] Address=[IP_ADDRESS]/[CIDR_NETMASK] Gateway=[GATEWAY_IP_ADDRESS] DNS=[PRIMARY_DNS_IP] DNS=[SECONDARY_DNS_IP]
有关更多配置选项,请参阅 systemd-network man page。
重启 systemd-networkd 服务:
sudo systemctl restart systemd-networkd
确认静态 IP 地址详细信息是否已设置:
networkctl status