Bật/tắt máy tính từ xa bằng Wake-on-LAN: cẩm nang triển khai từng bước
Tác giả
Administrator
Ngày đăng
Một chiếc máy tính đang tắt tưởng như là khối kim loại vô tri, nhưng card mạng của nó vẫn còn điện chờ và vẫn đang nghe ngóng. Bài viết này là cẩm nang triển khai từng bước một hệ thống bật/tắt máy tính Windows từ xa qua Wake-on-LAN — chạy ổn định, không phải mở cổng ra Internet, và dùng được cả khi nhà mạng cấp IP sau CGNAT.
Mọi địa chỉ IP, tên máy và địa chỉ MAC trong bài đều là giá trị mẫu.
Nguyên lý hoạt động
Máy tính khi tắt vẫn còn một dòng điện chờ nuôi card mạng. Card nằm im nghe ngóng, thấy đúng gói tin đặc biệt gọi là magic packet — 6 byte FF rồi lặp lại địa chỉ MAC của chính nó 16 lần — thì kích nguồn cho máy khởi động. Đó là toàn bộ Wake-on-LAN: không phần mềm nào chạy trên máy đang tắt, việc này do phần cứng card mạng làm.
Điểm mấu chốt: magic packet là gói quảng bá ở lớp 2, chỉ lan trong phạm vi một mạng LAN. Router không định tuyến gói quảng bá ra Internet. Nghĩa là một máy chủ đặt ngoài Internet không thể tự bắn gói đánh thức vào LAN văn phòng. Cách giải quyết: đặt một chương trình nhỏ (agent) trên một máy luôn bật trong LAN; agent chủ động gọi ra máy chủ vài giây một lần để hỏi có lệnh gì không, nhận lệnh rồi bắn gói đánh thức ngay trong LAN.
Sơ đồ hệ thống
Mọi kết nối đều do máy bên trong LAN chủ động gọi ra. Máy chủ không bao giờ gọi ngược vào mạng nội bộ, nên không phải mở cổng, không cần IP tĩnh, chạy được cả sau CGNAT của nhà mạng.
Ba vai trò máy xuất hiện xuyên suốt bài, mỗi khối lệnh đều ghi rõ chạy trên máy nào:
Vai trò | Là máy nào |
|---|---|
MÁY ĐÍCH | Máy Windows cần bật/tắt từ xa |
MÁY AGENT | Máy luôn bật, cùng dải mạng với máy đích |
MÁY CHỦ | Nơi chạy phần mềm quản lý |
Phần 00 — Chuẩn bị
Cần có | Yêu cầu |
|---|---|
Máy đích | Windows 10/11, cắm dây mạng (Wi-Fi không dùng được), quyền Administrator |
Máy agent | Luôn bật 24/7, cùng dải mạng với máy đích, có Python 3.9+, mở được địa chỉ máy chủ bằng trình duyệt |
Tài khoản | Tài khoản quản trị trên hệ thống |
Máy agent không được là máy đích — máy đang tắt không tự đánh thức chính nó. Văn phòng không có thiết bị nào chạy 24/7 thì phải bổ sung một mini PC hoặc Raspberry Pi.
Bộ giá trị mẫu dùng xuyên suốt bài (triển khai thật thì thay đồng loạt):
Thông tin | Giá trị mẫu | Lấy ở đâu |
|---|---|---|
Địa chỉ máy chủ | Địa chỉ đang dùng để vào hệ thống | |
Máy agent | 192.168.10.9 · NAS Synology | Thiết bị luôn bật trong LAN |
Máy đích | PC-VANPHONG-01 · 192.168.10.50 | Bước 1.3, đặt IP cố định ở bước 1.4 |
MAC máy đích | AA:BB:CC:11:22:33 | Bước 1.3 — getmac /v, card Ethernet |
Broadcast của LAN | 192.168.10.255 | Dải 192.168.10.x/24 → đổi số cuối thành 255 |
Tài khoản Windows | nhanvien | Chỉ cần khi bật chức năng tắt máy (phần 5) |
Phần 01 — Máy đích Windows
Phần hay sai nhất. Bấm nút mà máy không lên thì 90% nguyên nhân nằm ở đây chứ không phải phần mềm.
1.1 BIOS/UEFI
Khởi động, bấm Del hoặc F2. Máy ASUS bấm thêm F7 để vào Advanced Mode. Tìm mục APM Configuration:
Mục trong BIOS | Đặt |
|---|---|
Power On By PCI-E/PCI (hoặc Wake on LAN / Resume by PCI-E) | Enabled |
ErP Ready (chế độ siêu tiết kiệm điện) | Disabled |
Deep Sleep / Deep Sx | Disabled |
ErP Ready là thủ phạm thầm lặng. Nó cắt sạch dòng điện chờ nuôi card mạng khi máy tắt. Bật nó thì gói đánh thức gửi tới cũng vô ích, dù mọi thứ khác đều đúng.
1.2 Tắt Fast Startup — bắt buộc
Windows mặc định coi lệnh Shut down là một dạng ngủ đông, và ở trạng thái đó card mạng bị cắt điện chờ. Đây là nguyên nhân số một của hiện tượng "hôm qua bật được, hôm nay không".
MÁY ĐÍCH PowerShell quyền Administrator
powercfg /h off # tắt hibernate, kéo theo tắt Fast Startuppowercfg /devicequery wake_armed # phải liệt kê tên card Ethernet
Lệnh thứ hai không thấy card Ethernet thì mở Device Manager → card mạng → Properties: tab Power Management tích Allow this device to wake the computer và Only allow a magic packet…; tab Advanced đặt Wake on Magic Packet = Enabled (card Intel có thêm Shutdown Wake-On-Lan — cũng bật).
1.3 Lấy địa chỉ MAC
MÁY ĐÍCH CMD hoặc PowerShell
getmac /v # lấy dòng có Connection Name là Ethernetipconfig # ghi lại IPv4 Address của card đó
Chỉ lấy MAC của card Ethernet. Bỏ qua dòng Wi-Fi, Bluetooth, Tailscale hay VirtualBox — những card đó không đánh thức máy được.
1.4 Đặt IP cố định
Vào router, mục DHCP Reservation (có nơi gọi Address Reservation / Static DHCP), gán IP cố định cho MAC vừa lấy. Không làm bước này thì vẫn bật máy được, nhưng cột trạng thái hay hiện "Chưa rõ" và lệnh tắt máy sẽ gửi nhầm địa chỉ.
Phần 02 — Khai điểm mạng và lấy token
Một điểm mạng là một mạng LAN. Mỗi chi nhánh khai một điểm mạng riêng, mỗi điểm một agent.
MÁY CHỦ SSH
cd /root/ntcom_quote_systembash deploy/backup.sh # sao lưu trước cho chắcgit pullvenv/bin/python manage.py migrate # tạo bảng + nhóm quyềnvenv/bin/python manage.py collectstatic --noinputsystemctl restart ntcom # BẮT BUỘC: gunicorn không tự nạp lại mã
Trên web vào mục Điểm mạng, thêm điểm mạng mới:
Ô | Điền |
|---|---|
Tên điểm mạng | Văn phòng chính |
Mã | vp-chinh — không dấu, không khoảng trắng |
Địa chỉ broadcast | 192.168.10.255 — không chắc thì để 255.255.255.255 |
Cách gửi lệnh bật | Qua agent trong LAN |
Nhịp hỏi việc của agent | 10 giây |
Lưu xong, trang hiện token của điểm mạng và các nút tải file agent. Token là chìa khoá điều khiển toàn bộ máy của điểm mạng đó: không gửi qua nhóm chat, không chụp màn hình gửi ra ngoài. Nghi lộ thì cấp lại token rồi cập nhật lại agent.ini.
Phần 03 — Cài agent
Trước khi bắt đầu, mở trình duyệt ngay trên máy agent và vào địa chỉ máy chủ — không vào được thì xử lý mạng trước, cài agent cũng vô ích.
Agent trên Windows
Cài Python từ python.org, khi cài nhớ tích "Add python.exe to PATH". Nên chọn Install for all users — Python cài riêng cho một tài khoản thì tác vụ chạy nền dưới tài khoản SYSTEM sẽ không tìm thấy.
MÁY AGENT PowerShell quyền Administrator
New-Item -ItemType Directory -Force C:\ProgramData\ntcom-wolMove-Item $HOME\Downloads\ntcom_wol_agent.py C:\ProgramData\ntcom-wol\ -ForceMove-Item $HOME\Downloads\cai-dat-windows.ps1 C:\ProgramData\ntcom-wol\ -Forcecd C:\ProgramData\ntcom-wolnotepad agent.ini # Notepad hỏi tạo file mới → Yes
Nội dung agent.ini:
[server]url = http://100.100.10.20:8000token = DÁN_TOKEN_TỪ_TRANG_ĐIỂM_MẠNGprobe_interval = 60log_file = C:\ProgramData\ntcom-wol\wol-agent.logverify_tls = yes
MÁY AGENT chạy thử rồi cho chạy nền
dir # phải thấy CẢ 3 file: .py, .ps1, agent.inipython ntcom_wol_agent.py --config agent.ini --once --verbose# Chạy thử sạch lỗi thì cài chạy nền (tác vụ lúc khởi động, tài khoản SYSTEM):Set-ExecutionPolicy -Scope Process Bypass -Force.\cai-dat-windows.ps1 -Url "http://100.100.10.20:8000" -Token "TOKEN"Get-ScheduledTask -TaskName "NTCOM WoL Agent" | Select TaskName, State
Hai lệnh Set-ExecutionPolicy và .\cai-dat-windows.ps1 là hai dòng riêng, Enter sau mỗi dòng. Dán dính thành một dòng sẽ báo "A positional parameter cannot be found".
Agent trên NAS Synology (DSM)
Bật SSH: DSM → Control Panel → Terminal & SNMP → tích Enable SSH service. Cài Python: DSM → Package Center → Python 3 → Install.
Tạo thư mục chia sẻ tên ntcom-wol ở gốc volume (Control Panel → Shared Folder → Create). Dùng thư mục chia sẻ, không tạo trong home — thư mục trong home thuộc riêng một tài khoản DSM, trong khi tác vụ nền chạy bằng root. Không biết NAS dùng volume nào: File Station → chuột phải thư mục → Properties, dòng Location ghi rõ; hoặc SSH gõ ls -d /volume*.
MÁY AGENT SSH vào NAS
ssh admin@192.168.10.9 # tài khoản admin của DSMsudo -i # mọi lệnh phần này chạy bằng root
Kiểm tra thiết bị TUN — làm trước, đỡ mất buổi. Nếu máy chủ nằm trong mạng riêng ảo (Tailscale/WireGuard), NAS phải có card mạng ảo thật sự. Thiếu nó thì phần mềm VPN chạy chế độ userspace: chính tiến trình VPN nói chuyện được, còn mọi chương trình khác trên NAS thì không.
MÁY AGENT kiểm tra và tạo TUN
ip addr show tailscale0 # "does not exist" = đang thiếu TUNls -l /dev/net/tun # không có file = đang thiếu TUN# Nếu thiếu, tạo TUN rồi khởi động lại gói VPN:find /lib/modules -name 'tun*' # lấy đường dẫn thật của moduleinsmod /lib/modules/tun.komkdir -p /dev/netmknod /dev/net/tun c 10 200chmod 0666 /dev/net/tunsynopkg restart Tailscalesleep 15 && ip addr show tailscale0 # giờ phải thấy địa chỉ của mạng riêng ảo
Module nạp bằng insmod mất sau mỗi lần NAS khởi động lại — phải tạo tác vụ Boot-up để nạp lại.
MÁY AGENT tạo cấu hình và chạy thử
cd /volume1/ntcom-wolchmod +x synology-start.shcat > agent.ini <<'HET'[server]url = http://100.100.10.20:8000token = DÁN_TOKEN_TỪ_TRANG_ĐIỂM_MẠNGprobe_interval = 60log_file = /volume1/ntcom-wol/wol-agent.logverify_tls = yesHETchmod 600 agent.inipython3 ntcom_wol_agent.py --config agent.ini --once --verbose# Không có lệnh python3: ls -d /var/packages/Python3*/target/bin/python3
Cho chạy nền bằng ba tác vụ trong DSM → Control Panel → Task Scheduler, tất cả User: root:
Tên tác vụ | Kiểu | Nội dung |
|---|---|---|
NTCOM TUN – boot | Triggered Task → Boot-up | insmod /lib/modules/tun.ko · mkdir -p /dev/net · mknod /dev/net/tun c 10 200 · chmod 0666 /dev/net/tun · sleep 5 · synopkg restart Tailscale |
NTCOM Agent – boot | Triggered Task → Boot-up | sleep 30 · sh /volume1/ntcom-wol/synology-start.sh |
NTCOM Agent – giữ sống | Scheduled Task, lặp mỗi giờ | sh /volume1/ntcom-wol/synology-start.sh |
Tác vụ lặp là lưới an toàn, chạy bao nhiêu lần cũng vô hại: script tự thoát ngay nếu agent đang sống, chỉ dựng lại khi tiến trình đã chết. Nếu DSM chỉ cho lặp theo giờ thì nhớ đặt Last run time = 23:00, để 00:00 là nó chỉ chạy đúng một lần lúc nửa đêm.
Agent trên Linux
MÁY AGENT bash
sudo mkdir -p /opt/ntcom-wol && cd /opt/ntcom-wolsudo cp ~/ntcom_wol_agent.py .sudo tee agent.ini >/dev/null <<'HET'[server]url = http://100.100.10.20:8000token = DÁN_TOKEN_TỪ_TRANG_ĐIỂM_MẠNGprobe_interval = 60log_file = /opt/ntcom-wol/wol-agent.logverify_tls = yesHETsudo chmod 600 agent.inisudo python3 ntcom_wol_agent.py --config agent.ini --once --verbose
MÁY AGENT chạy nền bằng systemd
sudo cp ~/ntcom-wol-agent.service /etc/systemd/system/sudo systemctl daemon-reloadsudo systemctl enable --now ntcom-wol-agentjournalctl -u ntcom-wol-agent -f # xem log trực tiếp
Agent trên macOS
macOS không kèm sẵn Python đầy đủ. Chạy python3 --version; nếu hệ thống mời cài Command Line Tools thì đồng ý, hoặc cài Python từ python.org / Homebrew rồi sửa đường dẫn trong file plist.
MÁY AGENT Terminal
sudo mkdir -p /opt/ntcom-wol && cd /opt/ntcom-wolsudo cp ~/Downloads/ntcom_wol_agent.py .sudo tee agent.ini >/dev/null <<'HET'[server]url = http://100.100.10.20:8000token = DÁN_TOKEN_TỪ_TRANG_ĐIỂM_MẠNGprobe_interval = 60log_file = /opt/ntcom-wol/wol-agent.logverify_tls = yesHETsudo chmod 600 agent.inisudo python3 ntcom_wol_agent.py --config agent.ini --once --verbose
MÁY AGENT chạy nền bằng launchd
sudo cp ~/Downloads/com.ntcom.wol-agent.plist /Library/LaunchDaemons/sudo chown root:wheel /Library/LaunchDaemons/com.ntcom.wol-agent.plistsudo launchctl bootstrap system /Library/LaunchDaemons/com.ntcom.wol-agent.plisttail -f /opt/ntcom-wol/wol-agent.out # xem log# Gỡ bỏ: sudo launchctl bootout system/com.ntcom.wol-agent
Vào System Settings → Energy/Battery, tắt chế độ ngủ của máy agent. Mac ngủ là agent ngừng hỏi việc, bấm nút không ai nghe.
Nghiệm thu phần 3: mở trang Điểm mạng, badge phải chuyển sang "Agent đang trực" trong vòng 30 giây và giữ xanh. Xanh một lát rồi đỏ lại nghĩa là mới chỉ chạy --once, chưa cài phần chạy nền.
Phần 04 — Khai báo máy đích
Ô | Điền |
|---|---|
Điểm mạng | Điểm vừa tạo ở phần 2 |
Tên máy | PC-VANPHONG-01 |
Địa chỉ MAC | AA:BB:CC:11:22:33 |
Địa chỉ IP | 192.168.10.50 — IP đã đặt cố định ở bước 1.4 |
Hệ điều hành | Windows |
Cổng WoL | 9 |
Cách tắt máy | Để "Không cho tắt từ xa" — bật ở phần 5 |
Cổng dò trạng thái | 0 — hệ thống tự chọn |
Lưu xong, cuối trang Sửa máy hiện dòng ID máy. Ghi lại con số đó — phần 5 cần đúng số này.
MÁY ĐÍCH thử bật thật
shutdown /s /t 0 # tắt bằng lệnh, KHÔNG giữ nút nguồn
Đợi 10 giây cho card mạng vào chế độ chờ, rồi bấm nút Bật trên web. Máy phải lên trong 5–60 giây.
MÁY AGENT không lên thì bắn thử trực tiếp, bỏ qua máy chủ
python3 ntcom_wol_agent.py --test-wake AA:BB:CC:11:22:33 --broadcast 192.168.10.255
Lệnh này chạy được mà máy vẫn im thì gói đánh thức đã rời máy agent đúng cách — lỗi nằm ở máy đích, quay lại phần 1 kiểm tra BIOS và Fast Startup.
Phần 05 — Bật chức năng tắt máy từ xa
Tuỳ chọn. Bật máy là việc của phần cứng, còn tắt máy cần đăng nhập được vào Windows — dùng SSH bằng khoá, không dùng mật khẩu, để máy chủ không phải giữ bí mật nào.
MÁY ĐÍCH bật OpenSSH Server, PowerShell quyền Administrator
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0Set-Service -Name sshd -StartupType AutomaticStart-Service sshd# Quy tắc tường lửa thường đã có sẵn -> kiểm tra trước khi tạo, tránh báo trùngif (-not (Get-NetFirewallRule -Name sshd -ErrorAction SilentlyContinue)) {New-NetFirewallRule -Name sshd -DisplayName "OpenSSH Server" -Enabled True `-Direction Inbound -Protocol TCP -Action Allow -LocalPort 22}Enable-NetFirewallRule -Name sshd
Khoá riêng ở lại máy agent, không đi đâu cả.
MÁY AGENT tạo khoá — Synology / Linux / macOS
ssh-keygen -t ed25519 -f /volume1/ntcom-wol/id_ed25519 -N ''cat /volume1/ntcom-wol/id_ed25519.pub # chép CẢ dòng này
MÁY AGENT tạo khoá — nếu agent chạy Windows
ssh-keygen -t ed25519 -f C:\ProgramData\ntcom-wol\id_ed25519 -N '""'type C:\ProgramData\ntcom-wol\id_ed25519.pub
Windows dùng hai file khoá khác nhau tuỳ tài khoản, đặt nhầm là bị từ chối mà không báo gì thêm. Khối lệnh dưới tự chọn đúng file.
MÁY ĐÍCH cài khoá công khai, PowerShell quyền Administrator
$user = "nhanvien"$khoa = 'ssh-ed25519 AAAA...dán cả dòng vừa chép...'$admin = [bool](Get-LocalGroupMember -Group "Administrators" |Where-Object { $_.Name -like "*\$user" })if ($admin) {$f = 'C:\ProgramData\ssh\administrators_authorized_keys'Set-Content -Path $f -Value $khoa -Encoding asciiicacls $f /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"icacls $f /setowner "BUILTIN\Administrators"} else {New-Item -ItemType Directory -Force "C:\Users\$user\.ssh" | Out-Null$f = "C:\Users\$user\.ssh\authorized_keys"Set-Content -Path $f -Value $khoa -Encoding asciiicacls $f /inheritance:r /grant "${user}:F" /grant "SYSTEM:F"}Restart-Service sshdicacls $f # CHỈ được có Administrators và SYSTEMGet-Content $f -Encoding Byte -TotalCount 4 # 239 187 191 = dính BOM, phải ghi lại
Hai cái bẫy của bước này. Một: dùng -Encoding utf8 thì PowerShell chèn ba byte BOM vô hình vào đầu file, sshd đọc không ra khoá — luôn dùng ascii. Hai: chỉ cần danh sách quyền còn sót một tài khoản người dùng riêng lẻ (kể cả tài khoản đó là admin), sshd coi file quá hở và từ chối.
MÁY AGENT thử lại
ssh -i /volume1/ntcom-wol/id_ed25519 -o BatchMode=yes \-o StrictHostKeyChecking=accept-new nhanvien@192.168.10.50 "echo OK"
In ra OK thì vào web: Sửa máy → Cách tắt máy = SSH, Tên đăng nhập = tài khoản vừa thử. Rồi bổ sung khoá vào agent.ini trên máy agent:
# Số sau dấu hai chấm là ID MÁY THẬT lấy ở cuối trang Sửa máy,# KHÔNG phải số trong ví dụ. Sai số là agent coi như không có khoá.[machine:1]ssh_key = /volume1/ntcom-wol/id_ed25519
Đường dẫn khoá tính trên máy agent. Cuối cùng khởi động lại agent, rồi thử nút Tắt.
Phần 06 — Điều khiển qua Telegram
Tuỳ chọn. Bot không thay thế web: nó ghi lệnh vào cùng hàng đợi, cùng nhật ký, cùng agent — chỉ là thêm một lối vào ngay trong khung chat.
Tạo bot: trên Telegram nhắn @BotFather → gõ /newbot → đặt tên hiển thị và username → BotFather trả về token dạng 123456789:AAxxxxx…
MÁY CHỦ khai token
cd /root/ntcom_quote_systemecho 'TELEGRAM_BOT_TOKEN=123456789:AAxxxxx...' >> .envsystemctl restart ntcom# Chạy thử — phải in ra "Bot @tên_bot đã sẵn sàng", rồi Ctrl+C để dừngvenv/bin/python manage.py telegram_bot
MÁY CHỦ cho bot chạy nền
sed -e 's#/opt/ntcom_quote_system#/root/ntcom_quote_system#g' \-e 's#^User=ntcom#User=root#' -e '/^Group=/d' \deploy/ntcom-telegram.service > /etc/systemd/system/ntcom-telegram.servicesystemctl daemon-reloadsystemctl enable --now ntcom-telegramsystemctl is-enabled ntcom-telegram # phải là: enabledsystemctl is-active ntcom-telegram # phải là: activejournalctl -u ntcom-telegram -f
Bot dùng long polling — nó gọi ra api.telegram.org chứ không chờ ai gọi vào, nên máy chủ không cần tên miền công khai và không mở thêm cổng nào. Cùng một lý lẽ với agent trong LAN.
Liên kết tài khoản: trên web vào mục Telegram, bấm Tạo mã liên kết (mã sống 10 phút, dùng một lần), rồi nhắn cho bot /dangky MÃ_VỪA_LẤY.
Lệnh | Bot trả về |
|---|---|
/may | Danh sách máy kèm nút Bật, Tắt, Khởi động lại, Kiểm tra |
/trangthai | Tóm tắt máy nào đang bật, máy nào đang tắt |
/dangky <mã> | Liên kết tài khoản — chỉ làm một lần |
Nút Tắt chỉ hiện khi máy đã khai Cách tắt máy ở phần 5. Khai xong nhớ nhắn lại /may — tin nhắn cũ giữ nguyên bộ nút của lúc nó được gửi, Telegram không tự vẽ lại.
Về bảo mật: bot chỉ nghe những tài khoản Telegram đã liên kết; người lạ dò ra tên bot nhắn tới chỉ nhận được câu hướng dẫn. Quyền tính theo tài khoản hệ thống đã liên kết — rút một người khỏi nhóm quản trị là Telegram của họ hết tác dụng ngay. Lệnh tắt và khởi động lại có một bước xác nhận, vì nút trên điện thoại rất dễ chạm nhầm.
Phần 07 — Nghiệm thu
Đủ các mục dưới đây mới coi là bàn giao được:
- Đăng nhập bằng tài khoản có quyền → thấy menu điều khiển máy từ xa
- Trang Điểm mạng hiện "Agent đang trực" và giữ xanh liên tục
- Tắt máy đích rồi bấm Bật → máy lên trong 60 giây
- Cột trạng thái tự chuyển sang "Đang bật" trong vòng 1 phút
- Trang Nhật ký ghi đúng người bấm, thời điểm, kết quả
- Khởi động lại máy agent → badge tự xanh lại, không cần ai đụng vào
- Khởi động lại máy đích rồi tắt lại → vẫn bật được (BIOS đã lưu đúng)
- Nếu dùng Telegram: nhắn /may cho bot → hiện danh sách máy kèm nút bấm
- Đã bàn giao: ai được cấp quyền, gỡ quyền ở đâu, gọi ai khi sự cố
Phần 08 — Sự cố thường gặp
Hiện tượng | Nguyên nhân | Xử lý |
|---|---|---|
Nhật ký ghi "đã gửi magic packet" mà máy vẫn im | Fast Startup còn bật, hoặc BIOS chưa mở Wake-on-LAN / ErP Ready còn bật | Phần 1.1 và 1.2. Tắt máy bằng lệnh rồi thử lại, đừng giữ nút nguồn |
Badge "Agent mất kết nối" sau khi vừa xanh một lát | Mới chỉ chạy --once, chưa cài phần chạy nền | Làm nốt bước cài dịch vụ nền |
Agent trên NAS báo timed out khi gọi máy chủ | Thiếu /dev/net/tun → VPN chạy userspace, chương trình khác không ra được | Phần 3 mục TUN. Dấu hiệu: tailscale ping chạy được nhưng curl thì không |
Permission denied (publickey) khi tắt máy | Sai file khoá, khoá dính BOM, quyền file quá rộng, hoặc agent.ini khai sai ID máy | Phần 5. Chạy tay ssh -i … "echo OK" để tách bạch lỗi khoá với lỗi cấu hình |
Sửa agent.ini xong vẫn không có tác dụng | Bản agent cũ đọc cấu hình một lần lúc khởi động | Cập nhật agent, hoặc khởi động lại agent |
Nút Tắt mờ trên web, không hiện trên Telegram | Máy chưa khai Cách tắt máy | Phần 5. Khai xong nhớ nhắn lại /may |
Cột trạng thái luôn "Chưa rõ" | Máy chưa khai IP, IP bị đổi, hoặc tường lửa chặn hết cổng dò | Đặt DHCP reservation; hoặc khai Cổng dò trạng thái = 3389 nếu đã bật Remote Desktop |
PowerShell báo "is not recognized" hoặc "No such file" | Đứng sai thư mục, hoặc file chưa tải về | cd vào đúng thư mục và chạy dir kiểm tra file trước khi gọi lệnh |
Máy lên nhưng dừng ở màn hình khoá đòi PIN | PIN của Windows Hello chỉ dùng được khi ngồi trước máy | Bật Remote Desktop trên máy đích, đăng nhập từ xa bằng mật khẩu (không phải PIN) |
Nguyên tắc gỡ rối: luôn tách bạch lỗi hệ thống với lỗi máy đích bằng lệnh --test-wake chạy ngay trên máy agent. Lệnh đó chạy được nghĩa là toàn bộ phần mềm đã làm xong việc của nó.
Tên mục trong BIOS và tuỳ chọn driver thay đổi theo hãng và đời máy — đối chiếu tài liệu của chính model thiết bị trước khi áp dụng. Mọi IP, tên máy và địa chỉ MAC trong bài đều là giá trị mẫu.
Bình luận(0)
Chưa có bình luận. Hãy là người đầu tiên chia sẻ ý kiến!

