一个节点一直以来用着好好的,突然出现问题:浏览器访问网页,一会能访问一会不行,能访问的时候网页还可能加载不全:



查看服务器节点的最新日志:

journalctl -u sing-box -e


发现很多bad timestamp的报错:



好像和服务器时间相关?看一下服务器当前的时间:

timedatectl


发现比我本地的时间快了几十秒:



不知道为啥会快几十秒,但是从上面的命令输出结果也可以看到系统是没有启用时间同步(NTP)的,那我配置一下NTP应该就可以解决这个问题了。配置NTP的软件有很多,比如Chrony、systemd-timesyncd,我这里就用更轻量的systemd-timesyncd了:

apt update
apt install systemd-timesyncd


安装完成后应该是自动启动的,可以查看一下运行状态:

systemctl status systemd-timesyncd


这是系统层面的解决办法。如果不依赖系统本身,sing-box自身也有一个NTP的配置项可用:

{
  "log": {
    "level": "info"
  },
  "dns": {
    "servers": [
      {
        "address": "tls://8.8.8.8"
      }
    ]
  },
  "ntp": {
    "enabled": true,
    "server": "time.apple.com",
    "server_port": 123,
    "interval": "10m",
    "detour": "direct"
  },
  "inbounds": [
    {
      "type": "shadowsocks",
      "listen": "::",
      "listen_port": 8080,
      "sniff": true,
      "method": "2022-blake3-aes-128-gcm",
      "password": "hidden"
    }
  ],
  "outbounds": [
    {
      "type": "direct",
      "tag": "direct"
    },
    {
      "type": "dns",
      "tag": "dns-out"
    }
  ],
  "route": {
    "rules": [
      {
        "protocol": "dns",
        "outbound": "dns-out"
      }
    ]
  }
}


重启:

systemctl restart sing-box


我真的得吐槽一下,这个节点我主要是拿来玩游戏的,昨天出问题后导致我游戏上不去,我游戏内的东西都过期了,气死我了,这傻吊服务器早不出问题晚不出问题偏偏要在最关键的时候整活。。。