之前写过一篇文章:Debian/Ubuntu/Raspbian 时间同步
我这里引用一下:
先使用如下命令查看自己系统设置的时区
date -R
如果输出的不是+8000,那么需要调整时区:
dpkg-reconfigure tzdata
选择asia,中国的城市即可。
调整时间
apt-get install ntpdate
ntpdate ntp.sjtu.edu.cn
然后再次运行:
date
时间就是正确的。
然后我遇到的问题是我的Linux虚拟机无法访问NTP服务器,因为在内网:
-> # ntpdate ntp.sjtu.edu.cn
11 Jul 17:53:52 ntpdate[2444]: no server suitable for synchronization found
这里就涉及到如何使用代理同步系统时间。
但是NTP使用UDP协议,不走代理!!!
我在Super User上找到了一个很好的答案:ntp - How to use ntpdate behind a proxy? -
命令是这样的:
sudo date -s "$(wget -S "http://www.google.com/" 2>&1 | grep -E '^[[:space:]]*[dD]ate:' | sed 's/^[[:space:]]*[dD]ate:[[:space:]]*//' | head -1l | awk '{print $1, $3, $2, $5 ,"GMT", $4 }' | sed 's/,//')"
意思是手动获取时间,进行时间的设置,很好用。

本文介绍了在Linux系统中如何同步时间,包括检查和调整时区、安装ntpdate并尝试连接NTP服务器。当Linux虚拟机在内网无法直接访问NTP服务器时,提供了解决方法,通过手动命令`ntpdate -s time.nist.gov`来设置系统时间,即使NTP协议通常不使用代理,此方法也能有效解决内网时间同步问题。
384





