我正在运行一个 openvpn 客户端,它似乎通过更改我的机器的系统时间给我的系统带来了问题。
有没有办法可以隔离 Linux 系统日志(Ubuntu)中系统时间的更改,以了解谁在更改系统时间、何时更改以及为什么更改?
例子:
cat ./syslog | egrep -i '(date|time)'
答案1
我知道这不是一个完整的答案,但对于评论来说也太多了——我希望它仍然可以帮助你。
如果你想全押,你需要检查哪个时钟实际上发生了变化,因为有多个时钟,而且大多数都是堆叠的 delta 在另一个之上。
例如,如果你现在正在追捕clock_settime比如使用date
设置时间的命令,你可以考虑通过以下方式跟踪对该系统调用的任何调用ftrace。
但这可能有点过分,最常见的“网络更改时的时间更改”是由于 DHCP 被允许将 ntp 服务器信息推送到系统。如果现在您的 openvpn 连接可能运行 dhlient(不常见但可能)或已将显式选项设置为通过 dhcp 推送信息您可能会得到一个确实导致系统改变时间的名称服务器设置。
一般来说,检查 ntp 配置(如timedatectl timesync-status
和/或chronyc sources
(如果您已通过 systemd-timesyncd 安装了它)openvpn 拨入前/后的变化将是一个很好的开始。如果它确实在我要调试的地方,如果它dhclient
直接使用类似的东西,您可以 - 例如 - 禁用 ntp 选项,/etc/dhcp/dhclient.conf
这将使客户端不再要求这些选项。
整个问题有太多“如果”和“视情况而定”的问题,无法给出完美的答案。但也许这足以让你首先为问题添加更多细节 :-)。