Windows
Linux
说明
linux下根据各发行版的不同,使用的命令行工具也不同。
nmcli
说明
nmcli命令行工具,是NetworkManager的命令行接口,只有安装了才能使用。有些发行版自带。
命令
#查看当前网络连接信息
nmcli connection show
#修改网络配置(静态)
nmcli connection modify <connection-name> ipv4.method manual ipv4.addresses <new-ip>/<subnet-mask> ipv4.gateway <new-gateway> ipv4.dns <dns-server1>,<dns-server2>
#示例
nmcli connection modify enp2s0 ipv4.method manual ipv4.addresses 192.168.5.123/24 ipv4.gateway 192.168.5.1 ipv4.dns 8.8.8.8,114.114.114.114
#修改网络配置(动态)
nmcli connection modify <connection-name> ipv4.method auto
#下面的行需执行,不然配置文件还是有保留原有的静态IP信息,导致ip a可以看到两个ip,传空值代表删除该配置
nmcli connection modify <connection-name> ipv4.addresses "" ipv4.gateway "" ipv4.dns ""
#重新加载网络连接(只能执行该命令,修改的配置才能生效)
nmcli connection up <connection-name>
#示例
nmcli connection up enp2s0
配置文件路径
每个网卡的配置文件对应在此文件夹下:/etc/NetworkManager/system-connections/
修改配置文件实现功能
直接修改配置文件也是可以达到配置网络的功能,只不过在修改时要确保正常,不然网络会不可用。
在UOS系统,原来的网卡配置内容如不正确,系统会自动生成新的网卡配置。
- 直接用编辑工具,如vi编辑网卡配置,如
vi /etc/NetworkManager/system-connections/enp2s0.nmconnection
- 使用sed命令进行自动替换(静态)
#下面代码实现配置网络信息(比较繁琐)
#其中<配置文件路径>替换为具体要修改的配置文件,如/etc/NetworkManager/system-connections/enp2s0.nmconnection
#删除address
sed -i '/address1=/d' <配置文件路径>
#增加address
sed -i '/ipv4/a\address1=192.168.5.123/24,192.168.5.1' <配置文件路径>
#删除dns(包含dns和ignore-auto-dns属性)
sed -i '/dns=/d' <配置文件路径>
#增加dns
sed -i '/ipv4/a\dns=8.8.8.8;114.114.114.114' <配置文件路径>
#增加ignore-auto-dns,该属性为true代表使用自己配置的dns,为false代表自动,不存在该属性代表自动
sed -i '/ipv4/a\ignore-auto-dns=true' <配置文件路径>
#配置成静态
sed -i 's/method=.*/method=manual/g' <配置文件路径>
#ipv6由于上面修改,需要回正
sed -i '$d' <配置文件路径>
echo 'method=auto' >> <配置文件路径>
- 使用sed命令进行自动替换(动态)
#下面代码实现配置网络信息(比较繁琐)
#其中<配置文件路径>替换为具体要修改的配置文件,如/etc/NetworkManager/system-connections/enp2s0.nmconnection
#删除address
sed -i '/address1/d' <配置文件路径>
#修改method
sed -i 's/method=.*/method=auto/g' <配置文件路径>
#删除dns(包含dns和ignore-auto-dns属性)
sed -i '/dns=/d' <配置文件路径>