CentOs7.x系列IP地址由动态改静态(解决远程连接掉线问题)
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static # 改为 static,表示静态 IP
NAME=ens33
DEVICE=ens33
ONBOOT=yes # 开机自动启用该接口
IPADDR=172.16.198.10 # 设置静态 IP 地址
NETMASK=255.255.255.0 # 子网掩码,根据你的网络环境设置
GATEWAY=172.16.198.1 # 网关地址,根据你的网络环境设置
DNS1=8.8.8.8 # DNS 服务器,可以设置为你的 DNS 或公共 DNS
DNS2=8.8.4.4
注意:
NETMASK 也可以用 PREFIX=24 的方式表示(如 PREFIX=24 等同于 NETMASK=255.255.255.0),但推荐使用 NETMASK 更直观。
GATEWAY 和 DNS 需要根据你所在的实际网络环境填写,如果你不确定,可以暂时参考其他已正确配置的机器
当按照上述方式配置时,遇到了一个问题,我的配置无法保存:
问题分析
从图片中可以看到,在编辑网络配置文件 /etc/sysconfig/network - scripts/ifcfg - ens33
时,出现了 E212: 无法打开并写入文件
的错误提示。这通常是由于权限不足导致无法对该文件进行写入操作。
解决方案
在 Linux 系统中,/etc/sysconfig/network - scripts/
目录下的网络配置文件通常只有 root 用户才有写入权限。以下是几种常见的解决方法:
方法一:使用 sudo 命令(如果当前用户属于 sudoers 组)
如果你当前登录的用户具有 sudo 权限,可以在执行编辑命令时加上 sudo
。原本的命令是:
vi /etc/sysconfig/network - scripts/ifcfg - ens33
修改为:
sudo vi /etc/sysconfig/network - scripts/ifcfg - ens33
然后输入当前用户的密码,回车后即可获得 root 权限进行文件编辑和保存操作。
方法二:切换到 root 用户
你可以使用 su
或 sudo -i
命令切换到 root 用户,然后再进行文件编辑。
- 使用
su
命令:
输入 root 用户的密码,切换到 root 用户后,再执行编辑命令:
vi /etc/sysconfig/network - scripts/ifcfg - ens33
- 使用
sudo -i
命令
sudo -i
输入当前用户的密码,直接进入 root 用户的 shell 环境,接着执行:
vi /etc/sysconfig/network - scripts/ifcfg - ens33
完成文件编辑并保存退出后,你可以根据需要重启网络服务使配置生效,例如:
systemctl restart network
(不同 Linux 发行版重启网络服务的命令可能略有不同,如 CentOS 7 及以上可以使用此命令,Debian/Ubuntu 可能是 systemctl restart networking
或 systemctl restart NetworkManager
等) 。
同时,第二个问题,当我在末行模式中输入:!q强制退出:
出现了如下情况
解决方案:
Ctrl+c
发现无效,还是上述结果
尝试按下 Ctrl + Z 组合键将当前进程放到后台暂停,然后使用 jobs 命令查看后台任务列表,找到对应的进程编号,再使用 kill %<编号> (<编号> 替换为实际的进程编号)命令来终止该进程。最后可以输入 exit 命令退出终端。
使用
kill -9 %1
删除编号为1的进程。
然后切换为root账号
su - root
再次编辑vim文本
vi /etc/sysconfig/network-scripts/ifcfg-ens33
自此IP地址由DHCP自动分配,修改为为静态IP