重要前提:确定您的网络管理器
在开始配置前,了解您系统上使用的网络管理器至关重要,它决定了您应该使用哪种配置方式。

- NetworkManager (nm):这是目前所有现代 SUSE 发行版(openSUSE Leap/Tumbleweed, SLES12 SP2+, SLES15)的默认和推荐的网络管理器,它功能强大,支持动态配置、有线、无线、VPN 等,并且拥有优秀的命令行和图形工具。
- wicked:在 SLES12 SP2 之前和 openSUSE Leap 42 中是默认管理器,虽然现在仍被支持,但 NetworkManager 是首选。
- traditional ifcfg:一种非常传统的基于
/etc/sysconfig/network/目录下配置文件的方法,不推荐新用户使用,但在维护旧系统时可能会遇到。
检查当前网络管理器:
# 查看正在运行的网络管理器服务 systemctl status NetworkManager # 或者 systemctl status wicked # NetworkManager 是默认的,它的服务应该是活跃的
NetworkManager 服务是活跃的,请优先使用以下 NetworkManager 相关的方法。
使用 YaST 图形化工具(推荐新手)
YaST (Yet another Setup Tool) 是 SUSE Linux 的王牌图形化配置工具,功能全面且直观。
-
启动 YaST:
(图片来源网络,侵删)- 在桌面环境中,通过应用程序菜单找到 "YaST Control Center" 并打开。
- 在命令行中,以
root身份运行:sudo yast2
-
配置网络:
- 打开 YaST 后,在左侧导航栏中选择 "Network Settings"。
- 系统会要求您输入
root密码以继续。
-
配置以太网(有线网络):
- 在 "Overview" 选项卡下,您会看到所有已发现的网络接口(如
eth0,enp3s0)。 - 选择您要配置的有线网卡,然后点击右侧的 "Edit..." 按钮。
- 在弹出的窗口中:
- General 选项卡:
- Configuration: 选择 "Statically assigned address"(静态IP)或 "DHCP"(动态IP)。
- 如果选择静态IP,请填写 IP Address, Subnet Mask, Gateway。
- Hostname/DNS 选项卡:
- 可以设置主机名。
- 在 "DNS Servers" 字段中填入 DNS 服务器地址(如
8.8.8,1.1.1或您的内网DNS),多个地址用空格隔开。
- Routes 选项卡:如果需要配置静态路由,可以在这里添加。
- General 选项卡:
- 点击 "OK" 保存设置。
- 在 "Overview" 选项卡下,您会看到所有已发现的网络接口(如
-
应用并重启网络服务:
- 返回到 "Network Settings" 主窗口,点击右下角的 "Finish" 按钮。
- YaST 会提示您是否要立即应用更改,选择 "Yes",系统会短暂重启网络服务。
使用 nmcli 命令行工具(推荐高级用户和自动化)
nmcli 是 NetworkManager 的官方命令行接口,功能强大且非常适合脚本自动化。

场景1:配置静态 IP 地址
假设网卡名为 enp3s0,配置如下:
- IP 地址:
168.1.100 - 子网掩码:
255.255.0(或/24) - 网关:
168.1.1 - DNS 服务器:
8.8.8和1.1.1
# 1. 添加一个名为 "my-static-connection" 的新连接(如果已存在,可以修改)
sudo nmcli con add ifname enp3s0 type ethernet con-name my-static-connection
# 2. 修改该连接的配置
sudo nmcli con mod my-static-connection \
ipv4.method manual \
ipv4.addresses 192.168.1.100/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns "8.8.8.8 1.1.1.1" \
ipv4.ignore-auto-dns yes
# 3. 启用该连接(如果之前是禁用的状态)
sudo nmcli con up my-static-connection
场景2:配置 DHCP(自动获取IP)
# 1. 修改连接为DHCP模式 sudo nmcli con mod enp3s0 ipv4.method auto # 2. 重启连接以应用新配置 sudo nmcli con down enp3s0 && sudo nmcli con up enp3s0 # 或者直接 up 命令通常就足够了 sudo nmcli con up enp3s0
常用 nmcli 命令
# 查看所有连接的列表 nmcli con show # 查看某个连接的详细配置 nmcli con show my-static-connection # 查看网络接口的实时状态 nmcli dev status # 查看某个接口的详细信息 nmcli dev show enp3s0 # 删除一个连接 sudo nmcli con delete my-static-connection
直接编辑 NetworkManager 的配置文件(不推荐,但有时必要)
这种方法直接修改 NetworkManager 的配置文件,适合需要精确控制或图形工具无法解决问题时使用。
-
找到配置文件: NetworkManager 的连接配置文件通常存放在
/etc/NetworkManager/system-connections/目录下,文件名就是您在nmcli中定义的连接名。ls /etc/NetworkManager/system-connections/ # 可能输出:my-static-connection.nmconnection
-
编辑文件: 使用
vi或nano等编辑器打开文件。注意:您需要root权限。sudo vi /etc/NetworkManager/system-connections/my-static-connection.nmconnection
-
: 文件内容如下所示,您需要修改或取消注释(删除
[ ]前面的 )相应的条目。[connection] id=my-static-connection uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx type=ethernet interface-name=enp3s0 [ipv4] method=manual addresses=192.168.1.100/24 gateway=192.168.1.1 dns=8.8.8.8;1.1.1.1; # ignore-auto-dns=yes # 通常不需要手动添加,method=manual 时默认生效 [ipv6] method=ignore # 禁用IPv6,如果不需要的话
-
重启 NetworkManager 服务: 保存文件后,需要重启服务使配置生效。
sudo systemctl restart NetworkManager
使用传统 ifcfg 文件(仅适用于旧系统)
如果您维护的是非常旧的 SUSE 系统(如 SLES11 或 openSUSE Leap 42),您需要使用这种方法。
-
定位配置文件: 配置文件位于
/etc/sysconfig/network/和/etc/sysconfig/network/ifcfg-<interface>。ls /etc/sysconfig/network/ifcfg-* # 可能输出:ifcfg-lo, ifcfg-enp3s0
-
编辑网卡配置文件: 编辑
/etc/sysconfig/network/ifcfg-enp3s0文件。sudo vi /etc/sysconfig/network/ifcfg-enp3s0
-
: 设置静态IP的示例:
# 设备类型 TYPE='Ethernet' # 是否启动时激活 BOOTPROTO='static' # IP 地址和子网掩码 IPADDR='192.168.1.100' NETMASK='255.255.255.0' # 网关 STARTMODE='auto' BROADCAST='192.168.1.255' # 可选 REMOTE_IPADDR='' # 可选 # DNS 服务器配置(需要单独文件) # DNS=('8.8.8.8' '1.1.1.1') -
配置 DNS: DNS 服务器通常在
/etc/resolv.conf中指定,但为了持久化,应该在/etc/sysconfig/network/config中设置,或者创建一个单独的文件/etc/sysconfig/network/resolv.conf。# 在 /etc/sysconfig/network/config 中找到或添加以下行 NETCONFIG_DNS_STATIC_SERVERS="8.8.8.8 1.1.1.1"
-
重启网络服务:
# 对于 wicked (SLES12 SP1及之前) sudo systemctl restart wicked # 或者对于传统的 service sudo /etc/init.d/network restart
网络配置常用命令(通用)
无论您使用哪种方法,以下命令都是排查和验证网络状态的基础。
# 1. 查看所有网络接口的IP信息 ip a # 或者旧命令 ifconfig # 2. 查看路由表,确认网关是否正确 ip r # 或者 route -n # 3. 测试网络连通性(ping) ping 8.8.8.8 ping www.baidu.com # 4. 查看DNS解析是否正常 nslookup www.baidu.com # 或者 dig www.baidu.com # 5. 查看网络连接状态(类似Windows的netstat) ss -tulnp # 或者 netstat -tulnp # 6. 查看系统日志中的网络相关错误(非常重要!) journalctl -u Network.service # 或者对于 NetworkManager journalctl -u NetworkManager.service
总结与建议
| 方法 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| YaST (图形) | 新手,习惯图形界面的用户 | 直观,不易出错,功能全面 | 需要图形环境,不适合自动化 |
| nmcli (命令行) | 高级用户,服务器,自动化脚本 | 高效,强大,适合脚本,无需图形界面 | 需要学习命令语法 |
| 编辑配置文件 | 排查问题,特殊需求 | 精确控制 | 容易出错,不直观,不同管理器文件格式不同 |
| 传统 ifcfg | 维护旧版 SUSE 系统 | - | 已过时,不推荐在新系统上使用 |
对于现代 SUSE Linux (SLES15, openSUSE Leap 42.3+):
- 首选
nmcli:对于命令行操作,它是最佳选择。 - 次选 YaST:对于不熟悉命令行的用户,它是最安全、最方便的选择。
- 仅在必要时:当其他方法无效或需要精细调整时,才考虑直接编辑 NetworkManager 的配置文件。
