CentOS 设置静态 IP 说明:
在安装好 CentOS 虚拟机以后,一般我们会通过 Xshell 连接到虚拟机,而不是直接使用虚拟机里面的终端(Terminal)输入命令。
如果使用默认的动态分配 IP,虚拟机每次开机以后 IP 都会改变,Xshell 连接需要修改 IP。所以这里我们需要将 IP 设置成静态 IP,只要虚拟机开机即可连接。
问题:如果网络环境发生变化,比如从有线变成无线,或者电脑从办公室移动到家里,主机 IP(网段)发生了变化,需要重新设置虚拟机的静态 IP 吗?答案是不需要,不影响物理机与虚拟机的连接。
一、查看物理机 IP
打开 cmd,输入 ipconfig -all
如果你的电脑用的是有线网络,就找到“以太网”的 IPv4 地址:
比如 192.168.3.10(下面会用到)
如果是无线网络(WiFi),则找到 WLAN 的 IPv4 地址:比如 192.168.10.142(下面会用到)
二、虚拟机网络设置
首先是网络模式,点击虚拟机,编辑虚拟机设置:
网络适配器,网络连接需要选择:自定义——VMnet8(NAT 模式),保存。
打开“编辑”——“虚拟网络编辑器
”
注意:NAT 网络模式对应的虚拟网卡是 VMnet8。第一次设置,子网 IP 需要和物理机的网段一致(后面物理机的网段随网络环境改变了不用理会)。
比如用有线网络,子网 IP 就填成跟上面一致的 192.168.3.0
无线网络,子网 IP 就填成跟上面一致的 192.168.10.0 (你上面看到的网段是多少就填多少!最后一位是 0)
这里是灰色的,不能编辑怎么办?点右下角的“更改设置”,窗口会重新打开。子网 IP 的最后一位必须是 0。
DHCP 设置也可以检查一下,后面自定义的 IP 不要超出这个范围。比如 IP 范围是 128 到 254,最后一位写了 110 就不行。
如果改了以后网络不通,可以点左下角的“还原默认设置”,再修改。
虚拟机的网络设置好以后,下面是网络配置文件。
三、CentOS 网络配置文件
启动虚拟机,以 root 用户登录(必须是 root 用户,否则没权限修改配置文件)。
Applications——System Tools 找到 Terminal(终端)
输入命令(复制以后在终端里面 Shift+Insert 粘贴):
vi /etc/sysconfig/network-scripts/ifcfg-ens33 按回车打开配置文件。
对于第一次使用 vi 编辑器的同学来说,需要注意,VI 有两种模式,一种是“命令模式”,可以执行命令,一种是“编辑模式”,可以修改文本。
当我们用 vi 打开文本的时候,是命令模式,不能修改文本。
这个时候需要按“i”进入编辑模式。
此时左下角出现-- INSERT --提示。
我们用键盘上下左右键,移动光标,到需要修改的位置。
对于初次安装的 CentOS 操作系统来说,
有几个需要修改的地方:
- BOOTPROTO 需要改成 static
ONBOOT 改成 yes
修改以后:
注意别敲错:
BOOTPROTO="static"
- 添加 IPADDR/NETMASK/DNS1/GATEWAY
修改以后的效果(最后 4 行是添加的):
- IPADDR 就是静态 IP 地址,网段跟物理机的网段一致,比如物理机的 IP 是 192.168.10.142,只修改最后一位,比如
192.168.10.131
- 网关固定 255.255.255.0
- DNS1 固定 114.114.114.114
- 网关最后一位必须是 2,前面三位跟物理机一致如果担心敲错可以 Shift+Insert 粘贴进去:
IPADDR="192.168.10.66"
NETMASK="255.255.255.0"
DNS1="114.114.114.114" GATEWAY="192.168.10.2"
上面的操作都是在编辑模式中进行的。
如果不小心改错了,想要放弃修改怎么办?这个时候需要按
Esc 回到命令模式。
在命令模式下,左下角的-- INSERT --消失了。
如果放弃修改重来,输入(注意全部是英文符号),回车
:q!
如果要保存修改的结果,输入(英文符号),回车
:wq
网络配置文件修改以后需要重启网络才能生效,命令:(重要!每次修改了 ens33 文件都要重启网络) service network restart 测试网络:
- 物 理 机 打 开 cmd , ping 虚 拟 机 的 IP , 比 如 ping
192.168.10.131 (Ctrl+C 退出)这是正常情况:
卡住了,或者请求超时,说明物理机和虚拟机网络不通
- 虚拟机终端输入 ping baidu.com (Ctrl+C 退出)这是正常情况:
卡住了,或者提示 Name or service not known,是网络不通或者 DNS 配置错误
备注:
如果 vi 编辑 ens33 文件,弹出下面这个窗口,说明你没有保存就退出了,或者有多个窗口在同时操作 ens33 文件。
解决办法很简单:
按 E 或 Enter 继续编辑。删掉这个临时文件,下次就没有提示了:
rm /etc/sysconfig/network-scripts/.ifcfg-ens33.swp
四、Xshell 连接 CentOS
在前面两步网络验证(物理机可以连虚拟机、虚拟机可以访问互联网)没有问题之后,就可以用 Xshell 连接 CentOS 了。
从这里面下载 Xshell: note.youdao.com/noteshare?id=803aca595a26966fc1
c4853ad08455e3 把“Xshell_v7.0.0076.7z”解压出来,在“绿化处理.bat”
上,右键管理员运行
桌面会得到一个 Xshell 快捷方式。
注:如果 Xshell 启动报错,建议下载 FinalShell。
双击启动 Xshell,新建会话:名称(N)自定义,区分不同的主机。
主机(H)填写虚拟机的 IP
接下来点“用户身份验证”,输入用户名和密码保存,确定。
回到会话列表窗口,双击就可以打开连接了。
第一次连接弹出接受 SSH Key,接受就可以了。
注意事项
有些同学按照上面的步骤执行之后,遇到一些问题,就是真实机器无法 ping 通虚拟机,有几个原因,可以逐条排查:原因一
改完配置文件以后需要重启虚拟机网络: service network restart
如果网络本来连接可以,后来不行了,在网络适配器里面重启 VMNet8 这个网络(先禁用再启用)
原因二
虚拟机的网段设置不正确,这个网段不是真实机器的网段。这两个必须一致。
比如:ipconfig -all,主机是 192.168.10.x,ens33 文件里面的 IPADDR 和 GATEWAY 必须是 192.168.10.x。
如果是无线网络(WiFi),则找到 WLAN 的 IPv4 地址:
原因三
虚拟机迁移过,原本设置的网段在新的网络中无效,可以在
VMware 这个工具的如下菜单处编辑 -> 虚拟网络编辑器
还原默认设置,这个还原操作会重建虚拟网卡, 重建之后,
VMware NAT 模式的子网地址的网段会发生变化。
重置以后再编辑,修改为和物理机一致。
注意这里面还有一个 DHCP 设置(P),默认范围是 128-254,可以改成 100-254。你设置的 IP 最后一位不要超出这个范围。
原因四
VMnet8 配置了固定 IP,改为自动获得 IP
原因五
VMnet 相关的服务没有启动
右键启动。如果虚拟机每天都用,可以把这些服务全部改成
“自动”,开机就会自动启动。
原因六
还有一个设置,windows 的服务里面,勾选上
原因七
如果还是解决不了,删掉虚拟机重新安装试试
作者:无涯老师
最后更新时间:2022 年 3 月 11 日 23:02:091