)
WSL 時間不同步怎么辦3 條命令修好 WSL 時鐘與 Windows 時區同步附診斷表【免費下載鏈接】WSLWindows Subsystem for Linux項目地址: https://gitcode.com/GitHub_Trending/ws/WSLWSL 和 Windows 時間對不上、時區錯位、/mnt/c 里的文件時間戳錯亂——這三類問題最傷開發效率。下面直接給解法先對照診斷表定位再用手動同步 WSL 時鐘命令、wsl.conf 時區配置、chrony 自動同步三條路把 WSL 時間同步修好最后用一條命令驗證。1 分鐘定位問題出在哪先對號入座再按對應小節修現象可能原因對應小節合蓋/睡眠后 WSL 時間跳變幾分鐘WSL 2 虛擬機的時鐘恢復后未追平WSL 時鐘手動同步命令date時區偏移不對啟動時的 Windows 時區映射失敗wsl.conf 時區配置Windows 任務計劃時間與 WSL 差固定小時數源頭在 Windows 主機時鐘主機時間源同步/mnt/c 下文件時間戳異常drvfs 掛載直接暴露 Windows 時間戳drvfs 時間戳核對按場景修復WSL 時鐘手動同步命令喚醒后跳變現象合蓋再打開WSL 里date比 Windows 慢或快幾十分鐘。 原因WSL 2 運行在輕量虛擬機里掛起期間內核時鐘暫停恢復時不會自動追平系統里沒有硬件時鐘可用。 修復sudo apt-get install -y chrony sudo chronyd date # 與 Windows 任務欄對照驗證等 30 秒后date的偏差應在 1 秒內。WSL 時區錯位跟隨 Windows 時區映射失敗現象date顯示 UTC 或偏移與 Windows 不一致。 原因WSL 啟動時會把 Windows 時區映射成 IANA 名寫進系統——時區同步由 src/linux/init/timezone.cpp 的UpdateTimezone實現把/etc/localtime軟鏈到/usr/share/zoneinfo/下對應條目再把標識寫入/etc/timezone映射失敗或缺少 tzdata 包時它只會打警告跳過于是停留在舊值。 修復cat /etc/timezone; readlink /etc/localtime sudo apt-get install -y tzdata # 缺 tzdata 時先補上 sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime驗證date的偏移如 0800與 Windows 任務欄一致。主機時間源同步Windows 時間本身不準現象WSL 與 Windows 的差值是固定的且 Windows 側也不準。 原因WSL 的時區映射和時間源都跟著 Windows 走源頭不對WSL 修得再勤也沒用。 修復PowerShellw32tmn /resync wsl --shutdown wsl -e date驗證wsl -e date與任務欄時鐘一致。drvfs 時間戳核對/mnt/c 文件時間戳異常現象/mnt/c 下的文件stat出來的時間與 Windows 里顯示的不一樣。 原因WSL 2 中 /mnt/c 是 drvfs 掛載時間戳直接讀自 Windows 文件系統屬性不是 WSL 自己存的。 核對stat -c %y /mnt/c/某文件.txt touch /mnt/c/tst.txt; stat -c %y /mnt/c/tst.txt # 應等于當前時間驗證與資源管理器里修改日期一致即正常不一致優先回到上一節修 Windows 時鐘。一次配置長期生效wsl.conf 時區持久化/etc/wsl.conf的[time]段控制啟動時是否跟隨 Windows 時區開關默認開啟見 src/linux/init/WslDistributionConfig.h 中useWindowsTimezone默認true[time] useWindowsTimezone true改完必須執行wsl --shutdown再重新進入 WSL 才生效——配置只在啟動時讀取一次。驗證date加readlink /etc/localtime。chrony 自動時鐘同步chrony 是 NTP 的輕量客戶端裝上后長期自動追平漂移sudo apt-get install -y chrony echo makestep 1 3 server ntp.aliyun.com iburst | sudo tee -a /etc/chrony/chrony.confmakestep讓啟動后幾分鐘內的大偏差直接步進修正WSL 沒有硬件時鐘不需要rtcfreq之類針對 RTC 的配置。驗證chronyc tracking中System time偏差趨近 0。避坑清單只保留一個同步源啟用 chrony 前先timedatectl確認沒有 systemd-timesyncd 在同時調鐘兩者打架會越調越偏Windows 是時間源頭WSL 側反復修不好時先w32tmn /resync改/etc/wsl.conf后記得wsl --shutdown配置不會熱加載跨 WSL 與 Windows 的腳本統一用 UTC 時間戳date -u比較別依賴本地時區/mnt/c 下文件時間戳歸 Windows 文件系統管構建腳本別拿 /mnt 下的時間戳做增量判斷如果按上面步驟還修不好把date、chronyc tracking和 Windows 側w32tmn /query /status的輸出整理成 Issue 反饋給項目維護者。【免費下載鏈接】WSLWindows Subsystem for Linux項目地址: https://gitcode.com/GitHub_Trending/ws/WSL創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考