Sau khi cài đặt Docker thành công lên DSM 7.2, mình hí hửng cài đặt WireGuard VPN bằng Wirehole-UI thì mới biết DSM 7.2 chưa hỗ trợ WireGuard. DSM chỉ hỗ trợ các giao thức VPN cũ như: PPTP, OpenVPN, L2TP/IPSEC, thông qua app VPN Server.
Khi cài đặt WireGuard VPN thông qua wg-easy sẽ bị báo lỗi này trong logswg-easy | Error: WireGuard exited with the error: Cannot find device "wg0" wg-easy | This usually means that your host's kernel does not support WireGuard!
Code language: JavaScript (javascript)
Sau một vòng Google, mình đã tìm ra cách cài đặt WireGuard VPN trên DSM 7.2 và chia sẻ trong bài viết này.
1. Tạo WireGuard SPK cho DSM
Để sử dụng WireGuard VPN trên DSM, cần phải cài đặt thêm gói phần mềm WireGuard. Mỗi phiên bản DSM và Synology Model sẽ cần có 1 gói cài đặt (file spk) riêng, do đó chúng ta cần phải tự tạo gói phần mềm dựa trên cấu hình đang sử dụng.
Gói phần mềm WireGuard SPK sẽ được tạo bằng Docker. Bạn có thể thao tác trên bất kỳ máy tính nào đã được cài Docker.
Sử dụng lệnh sau trong Terminal để tạo gói phần mềm Wireguard SPK, bạn cần thay đổi 2 thông số sau:
PACKAGE_ARCH=<enter_yourNAS_arch>
: thay thế<enter_yourNAS_arch>
bằng mã CPU của NAS bạn đang dùng. Xem mã CPU ở đây: https://kb.synology.com/en-global/DSM/tutorial/What_kind_of_CPU_does_my_NAS_haveblackvoidclub/synobuild72
: nếu bạn dùng DSM 7.1 thì thay bằngblackvoidclub/synobuild71
sudo docker run --rm --privileged --env PACKAGE_ARCH=<enter_yourNAS_arch> --env DSM_VER=7.2 -v /volume1/docker:/result_spk blackvoidclub/synobuild72
Code language: Nginx (nginx)
Mình chạy Xpenology DS918+ và DSM 7.2 nên sẽ dùng lệnh sausudo docker run --rm --privileged --env PACKAGE_ARCH=apollolake --env DSM_VER=7.2 -v /volume1/docker:/result_spk blackvoidclub/synobuild72
Code language: Nginx (nginx)
Quá trình build sẽ mất khoảng 5-10 tùy cấu hình NAS. Sau khi hoàn tất, bạn sẽ thấy thông báo tương tự như bên dưới'conf/systemd/@eaDir/[email protected]@SynoEAStream' -> '/tmp/_test_spk/conf/systemd/@eaDir/[email protected]@SynoEAStream' 'conf/systemd/@eaDir/[email protected]@SynoResource' -> '/tmp/_test_spk/conf/systemd/@eaDir/[email protected]@SynoResource' 'PACKAGE_ICON.PNG' -> '/tmp/_test_spk/PACKAGE_ICON.PNG' 'PACKAGE_ICON_256.PNG' -> '/tmp/_test_spk/PACKAGE_ICON_256.PNG' creating package: WireGuard-geminilake-1.0.20220627.spk source: /tmp/_test_spk destination: /image/packages/WireGuard-geminilake-1.0.20220627.spk [WARNING] /tmp/_install is empty! [INFO] Install WireGuard finished! 1 projects, 0 failed, 0 blocked. [INFO] Finished SynoInstall script.
Code language: JavaScript (javascript)
Trong thư mục docker lúc này sẽ xuất hiện thêm 1 thư mục có tên tương tự như WireGuard-1.0.xxxxxxxx, bên trong sẽ có 2 file WireGuard-apollolake-1.0.20220627_debug.spk và WireGuard-apollolake-1.0.20220627.spk. Chúng ta sẽ cài đặt bằng file WireGuard-apollolake-1.0.20220627.spk
2. Cài đặt Wireguard SPK
Truy cập vào DSM, mở Package Center”
- Chọn Manual Install
- Chọn file WireGuard-apollolake-1.0.20220627.spk
Bấm Next, sau đó bấm tiếp Agree để xác nhận đồng ý cài đặt.
CHÚ Ý: KHÔNG được chọn mục Run after installation. Chúng ta sẽ kích hoạt bằng SSH sau khi cài đặt.
Sau khi cài xong, bạn cần KHỞI ĐỘNG lại Synology.
Truy cập vào SSH vào chạy lệnh sau để kích hoạt WireGuardsudo /var/packages/WireGuard/scripts/start
Code language: JavaScript (javascript)
Thông báo sẽ hiện ra như sau: WireGuard đã khởi động thành công.WireGuard has been successfully started
Code language: Nginx (nginx)
Quay lại DSM, mở Package Center, bạn sẽ thấy WireGuard đang hoạt động.
WireGuard đã được kích hoạt trên DSM. Giờ có thể cài WireGuard VPN bằng Docker được rồi.
3. Cài đặt WireGuard VPN bằng WireHole-UI
Cài đặt WireHole-UI theo hướng dẫn mình đã chia sẻ ở đây:
Nếu kích hoạt docker-compose thành công, bạn có thể truy cập được vào địa chỉ http://<NAS-IP:51821
để cấu hình Wireguard client.
Xem logs của wg-easy bằng lệnh docker-compose logs wg-easy
sẽ thấy container hoạt động êm, không bị báo lỗi nữa.wg-easy | 2024-01-05T07:18:39.406Z Server Listening on http://0.0.0.0:51821 wg-easy | 2024-01-05T07:18:39.410Z WireGuard Loading configuration... wg-easy | 2024-01-05T07:18:39.419Z WireGuard Configuration loaded. wg-easy | 2024-01-05T07:18:39.420Z WireGuard Config saving... wg-easy | 2024-01-05T07:18:39.428Z WireGuard Config saved. wg-easy | $ wg-quick down wg0 wg-easy | $ wg-quick up wg0 wg-easy | 2024-01-05T07:18:39.648Z WireGuard Config syncing... wg-easy | $ wg syncconf wg0 <(wg-quick strip wg0) wg-easy | 2024-01-05T07:18:39.696Z WireGuard Config synced.
Code language: YAML (yaml)
Vậy là xong. DSM 7.2 đã được tích hợp thêm WireGuard VPN Server ngon lành.
Nguồn : Thuan Bui