[排错] 解决 openSUSE & SLE 通过 YaST 设置 IP 地址时报错 “Network is currently handled by NetworkManager”

报错代码

Network is currently handled by NetworkManager

解决方法

步骤一:报错现象和原因分析

1.1 报错现象

通过 yast 给 openSUSE 和 SUSE 设置 IP 地址时可能会出现以下报错

(图:1)

1.2 原因分析

如果是带桌面安装 openSUSE 和 SUSE ,系统则会默认使用 NetworkManager 管理网络,这样会导致 yast 无法设置 IP 地址

步骤二:排错

2.1 取消开机自启 NetworkManager

# systemctl disable NetworkManager

2.2 停止 NetworkManager 服务

# systemctl stop NetworkManager

2.3 在 yast 中将 General Network Settings 从 NetworkManager Service 换成 Wicked Service

2.3.1 进入 yast
# yast
2.3.2 进入 System 下面的 Network Settings
2.3.3 在 Global Options 选项中将 General Network Settings 从 NetworkManager Service 换成 Wicked Service
(图:2)

[内容] Linux 网络代理的设置 (全局模式)

内容一:Linux 代理环境变量的种类

1) http_proxy
2) https_proxy
3) ftp_proxy
4) socket_proxy
5) all_proxy
6) no_proxy


补充:
1) 变量可以使用通配符
2) 添加多个变量时可以使用 “,” 号分割
3) 不填种类默认以 http 协议传输

内容二:环境变量的格式

2.1 没有用户和密码的格式

export <environment variable>=http://<IP address>:<port>

2.2 有用户和密码的格式

export <environment variable>=https://<user>:<password>@<IP address>:<port>

(注意:如果密码中也有一个 “@” 符号,则需要把 “@” 符号转义一下,转义成 %40)

内容三;可以设置代理变量的文件

1) /etc/profile
2) ~/.bashrc
3) /etc/profile.d/<文件名前缀>.sh

内容四:控制设置的代理

4.1 开启设置的代理

4.1.1 方法一
# reboot
4.1.2 方法二
# source /etc/profile

4.2 显示目前生效的代理

4.2.1 显示 http_proxy 代理
# echo $http_proxy

或者:

# env | grep http_proxy
4.2.2 显示 https_proxy 代理
# echo $https_proxy

或者:

# env | grep https_proxy
4.2.3 显示 ftp_proxy 代理
# echo $ftp_proxy

或者:

# env | grep ftp_proxy
4.2.4 显示 socket_proxy 代理
# echo $socket_proxy

或者:

# env | grep socket_proxy
4.2.5 显示 no_proxy 代理
# echo $no_proxy

或者:

# env | grep no_proxy
4.2.6 显示 all_proxy 代理
# echo $all_proxy

或者:

# env | grep proxy

4.3 取消目前生效的代理

4.3.1 取消 http_proxy 代理
# unset http_proxy
4.3.2 取消 https_proxy 代理
# unset https_proxy
4.3.3 取消 ftp_proxy 代理
# unset ftp_proxy
4.3.4 取消 socket_proxy 代理
# unset socket_proxy
4.3.5 取消 no_proxy 代理
# unset no_proxy
4.3.6 取消 all_proxy 代理
# unset all_proxy

内容五:设置网络代理的案例

5.1 案例一:临时设置网络代理

# export http_proxy=http://8.8.8.8:80

(补充:这里以设置 http 的网络代理,代理不使用无密码,且 IP 和端口为 8.8.8.8:8080 为例)

或者:

# setenv http_proxy=http://8.8.8.8:80

(补充:这里以设置 http 的网络代理,代理不使用无密码,且 IP 和端口为 8.8.8.8:8080 为例)

5.2 案例二:永久设置网络代理

5.2.1 如果是 Rocky Linux & RHEL & openSUSE & SLE
5.2.1.1 修改 /etc/profile 配置文件
# vim /etc/profile

添加以下内容:

……
export http_proxy=http://8.8.8.8:80
export https_proxy=http://admin:123@8.8.8.8:8080
export no_proxy=”localhost, 127.0.0.1, ::1″


补充:这里以设置
1) 这里以设置 http 的网络代理,代理不使用无密码,且 IP 和端口为 8.8.8.8:8080
2) 这里以设置 https 的网络代理,代理使用密码,用户是 admin 密码是 123 ,且 IP 和端口为 8.8.8.8:8080 为例
3) 网络代理不影响 localhost、127.0.0.1 和 ::1
为例

(注意:如果密码中也有一个 “@” 符号,则需要把 “@” 符号转义一下,转义成 %40)

5.2.1.2 让修改的配置文件生效
# source /etc/profile

或者退出后重新登录:

(步骤略)

5.2.1.3 显示目前生效的代理
# echo $http_proxy ; echo $https_proxy
5.2.2 如果是 openSUSE & SLE
5.2.2.1 修改 /etc/sysconfig/proxy 配置文件
# vim /etc/sysconfig/proxy

将部分内容修改如下:

......
PROXY_ENABLED="yes"
......
HTTP_PROXY="http://8.8.8.8:80"
......
HTTPS_PROXY="http://admin:123@8.8.8.8:8080"
......
NO_PROXY="localhost, 127.0.0.1, ::1"
......


补充:这里以设置
1) 开启网络代理
2) 这里以设置 http 的网络代理,网络代理不使用密码,且 IP 和端口为 8.8.8.8:8080
3) 这里以设置 https 的网络代理,网络代理使用密码,用户是 admin 密码是 123 ,且 IP 和端口为 8.8.8.8:8080 为例
4) 网络代理不影响 localhost、127.0.0.1 和 ::1
为例

5.2.2.2 让修改的配置文件生效

退出登录后重新登录:

(步骤略)

5.2.2.3 显示目前生效的代理
# echo $http_proxy ; echo $https_proxy

参考文献:

https://access.redhat.com/solutions/1351253

[内容] Linux 网络的设置 (临时 IP 地址)

内容一:使用 ifconfig 命令

1.1 使用 ifconfig 命令添加临时 IP 地址的格式

# ifconfig <network card name> <static IP address> netmask <subnet mask> up

或者:

# ifconfig <network card name> <static IP address>/<subnet mask> up

1.2 使用 ifconfig 命令给网卡添加临时 IP 地址的案例

# ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up

或者:

# ifconfig eth0 192.168.1.1/24 up

(补充:这里以给 eth0 添加临时 IP 地址 192.168.1.1/24 为例)

1.3 使用 ifconfig 命令给子网卡添加临时 IP 地址的案例

# ifconfig eth0:1 192.168.1.1 netmask 255.255.255.0 up

或者:

# ifconfig eth0:1 192.168.1.1/24 up

(补充:这里以给 eth0 添加临时 IP 地址 192.168.1.1/24 为例)

内容二:使用 ip 命令

2.1 使用 ip 命令添加临时 IP 地址的格式

# ip a/addr/address add <static IP address>/<subnet mask> dev <network card name>

2.2 使用 ip 命令给网卡添加临时 IP 地址的案例

# ip a/addr/address add 192.168.1.1/24 dev eth0

(补充:这里以给 eth0 添加临时 IP 地址 192.168.1.1/24 为例)

2.3 使用 ip 命令给子网卡添加临时 IP 地址的案例

# ip a/addr/address add 192.168.1.1/24 dev eth0:1

(补充:这里以给 eth0:1 添加临时 IP 地址 192.168.1.1/24 为例)

补充一:删除临时 ip 地址的格式

# ip a/addr/address del/delete <static IP address>/<subnet mask> dev <network card name>

补充二:删除网卡临时 ip 地址的案例

# ip a/addr/address del/delete 192.168.1.1/24 dev eth0

(补充:这里删除 eth0 临时 IP 地址 192.168.1.1/24 为例)

补充三:删除子网卡临时 ip 地址的案例

# ip a/addr/address add 192.168.1.1/24 dev eth0:1

(补充:这里删除 eth0:1 临时 IP 地址 192.168.1.1/24 为例)

[内容] Linux 网络的显示 (网关 IP 地址)

内容一:使用命令来显示现有网关 IP 地址

1.1 通过 route 命令

# route -n

1.2 通过 ip 命令

# ip route show

1.3 通过 traceroute 命令

# traceroute eternalcenter.com

(补充:输出的第一行就是现在的网关)

1.4 通过 netstat 命令

# netstat -nr

1.5 通过 nmcli 命令

# nmcli connection <network card name> | grep ipv4.ga

内容二:通过网路配置文件来显示现有网关 IP 地址

如果是 Rocky Linux & RHEL:

# cat /etc/sysconfig/network-scripts/ifcfg-<network card name>

如果是 openSUSE & SLE:

# cat /etc/sysconfig/network/routes