背景
以前装了虚拟机后,一开始设置的是动态IP, dhcp 的,好长时间没用了;
最近重新开始使用虚拟机了,一开始IP是 192.168.169.128 ,然后就三天两头的变化,每次变化都增加1,这过了大概一星期,IP已经变到了 192.168.169.131 ,就想着看怎么把这个IP固定下来。
环境
[root@hadoop1 local]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
[root@hadoop1 local]# uname -a
Linux hadoop1 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
虚拟机的IP经常变化,怎么办?
动态IP
刚安装好虚拟机,CentOS7操作系统,通过 ip a 或者 ifconfig 未查看到IP地址;
# 配置动态IP
[root@hadoop1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
bootproto=dhcp
onboot=yes
# 重启
[root@hadoop1 ~]# reboot
这是一开始配置的动态IP,然后就出现了在几天时间内,IP地址莫名其妙地发生变化,接着便想办法把IP固定下来。
静态IP
# 配置静态IP
[root@hadoop1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
IPADDR=192.168.169.130
# 重启
[root@hadoop1 ~]# reboot
Note:根据操作系统版本的不同,在 /etc/sysconfig/network-scripts/ 目录下不一定有 ifcfg-ens33 这个文件,但应该有一个类似文件名的配置文件。
验证:通过 ip a 或者 ifconfig 可以看到配置的IP地址,并且之后IP地址固定不变。
域名ping不通了
- 问题
采用上述方式配置了静态IP后,发现NTP服务无法正常同步,接着ping了下百度。
[root@hadoop1 ~]# ntpdate ntp1.aliyun.com
Error resolving ntp1.aliyun.com: Name or service not known (-2)
23 Jul 12:38:40 ntpdate[118769]: Can't find host ntp1.aliyun.com: Name or service not known (-2)
23 Jul 12:38:40 ntpdate[118769]: no servers can be used, exiting
[root@hadoop1 ~]# ping www.baidu.com
ping: www.baidu.com: 未知的名称或服务
- 解决方法
# 配置静态IP
[root@hadoop1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=192.168.169.2
GATEWAY=192.168.169.2
# 重启网络:
[root@hadoop1 ~]# service network restart
Restarting network (via systemctl): [ OK ]
Note:GATEWAY与DNS1必须都配置了,否则还会报错:
# 不配GATEWAY
[root@hadoop1 ~]# ping www.baidu.com
connect: 网络不可达
# 不配DNS1
[root@hadoop1 ~]# ping www.baidu.com
ping: www.baidu.com: 未知的名称或服务
总结
最终的配置如下,以下配置解决了我的虚拟机IP三天两头变化的问题;
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=6663e0ef-a2c8-48c7-b982-0569ba0bad8f
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.169.130
DNS1=192.168.169.2
GATEWAY=192.168.169.2
虚拟机的日期时间与实际不一致,怎么办?
-
使用虚拟机时,经常遇到电脑休眠后,虚拟机也休眠,导致虚拟机启动后的时间不同步,这时可通过NTP服务进行时间同步;
-
虚拟机执行
date命令发现日期不正确,与当前时间差了12小时,格式是EDT。使用NTP(Network Time Protocol)同步后,依然不正确。此时就需要进行如下设置了。
# 实际时间 2021年7月26日12:50:38
[root@hadoop2 ~]# date
2021年 07月 26日 星期一 00:50:47 EDT
# NTP时钟同步
[root@hadoop2 ~]# ntpdate ntp1.aliyun.com
26 Jul 00:51:16 ntpdate[67431]: step time server 120.25.115.20 offset -2.724103 sec
# NTP时钟同步后,依然不正确
[root@hadoop2 ~]# date
2021年 07月 26日 星期一 00:51:20 EDT
方法一
修改时区: timedatectl set-timezone Asia/Shanghai
# 原来,时区设置指向了美国纽约
[root@hadoop2 ~]# ll /etc/localtime
lrwxrwxrwx. 1 root root 38 7月 30 2020 /etc/localtime -> ../usr/share/zoneinfo/America/New_York
# 修改时区
[root@hadoop2 ~]# timedatectl set-timezone Asia/Shanghai
[root@hadoop2 ~]# date
2021年 07月 26日 星期一 12:56:13 CST
# 查看新的软链接
[root@hadoop2 ~]# ll /etc/localtime
lrwxrwxrwx. 1 root root 35 7月 26 12:56 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
方法二
创建软链接: ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 备份
[root@hadoop2 ~]# mv /etc/localtime /etc/localtime.bak
# 创建软链接
[root@hadoop2 ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
方法三
直接覆写: cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 备份
[root@hadoop2 ~]# mv /etc/localtime /etc/localtime.bak
# 使用新时区覆盖
[root@hadoop2 ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Note:NTP时钟同步可实现服务器时间校准:
- yum install ntpdate
- ntpdate ntp1.aliyun.com 或者 ntpdate cn.pool.ntp.org 或者ntp[1-7].aliyun.com
If you have any questions or any bugs are found, please feel free to contact me.
Your comments and suggestions are welcome!
本文已参与「新人创作礼」活动,一起开启掘金创作之路。