Trước giờ mình mình chỉ toàn thiết lập WireGuard làm VPN server trên Linux, rồi sau đó sử dụng WireGuard client trên Windows, macOS, iOS để kết nối.
Từ khi chuyển qua dùng EndeavourOS, mình phải nghiên cứu cách cài đặt WireGuard client trên Linux để kết nối vào VPN Server. Sau vài giờ loay hoay, mình đã tìm ra bí kíp nên ghi lại trong bài viết này để sau này lỡ quên có thể mò lại được.
Các thao tác được thực hiện trên EndeavourOS. Tuy nhiên, bạn hoàn toàn có thể áp dụng tương tự trên các bản phân phối Linux khác.
Mục Lục
I. Cài đặt WireGuard Tools
Cài đặt WireGuard Tools bằng lệnh sau và khởi động lại máy.
yay -S wireguard-tools
sudo reboot
Code language: Nginx (nginx)
II. Tải file cấu hình WireGuard peer về máy
File cấu hình .conf sau khi tải về từ WireGuard VPN Server có dạng như sau
[Interface] Address = x.x.x.x/24 DNS = 8.8.8.8, 8.8.4.4 PrivateKey = iPp8KmZQzsxxxxxxxxxxxxxxxxxxxxxz9X0OO8ED0A= [Peer] PublicKey = 4SJMlcxxxxxxxxxxxxxxxxxxxxxxxxxxxxf2s9nzM= PresharedKey = dtZgt7SEElxxxxxxxxxxxxxxxxxxxxxxxxxxxe0qICQ6N2w= AllowedIPs = 0.0.0.0/0, ::/0 Endpoint = x.x.x.xx:51820 PersistentKeepalive = 25
Mình lưu file này với tên gọi Lenovo.conf trong thư mục Downloads.
III. Tạo kết nối WireGuard Interface
Mặc định trong máy đã có cài đặt và kích hoạt sẵn Network Manager để quản lý kết nối mạng. Công cụ này hỗ trợ tạo WireGuard Interface nên mình sẽ sử dụng cái này luôn cho dễ quản lý.
1. Sử dụng GUI
Mở Network Manager và bấm vào dấu + để tạo kết nối mới
Chọn WireGuard ở phần Connection Type, bấm Create…
Nhập vào thông số ở tab WireGuard dựa vào file Lenovo.conf ở trên
- Connection name: Home140
- Interface name: Home140
- Private key: copy từ mục PrivateKey ở trên
Bấm vào nút Add ở phần Peers
Nhập nội dung của phần [Peer] trong file cấu hình vào đây và bấm Apply
Thông số ở tab WireGuard đã xong. Bấm qua tab IPv Settings để chỉnh tiếp IP Address
Nhập vào địa chỉ IP như trong phần [Interface] của file cấu hình
- Address: 10.6.0.5
- Netmask: 24
- Gateway: để trống
- DNS Servers: 10.2.0.100
Bấm Save để lưu lại.
2. Sử dụng CLI
Thay vì phải copy / paste mất thời gian như ở trên, mình có thể tạo kết nối WireGuard trực tiếp từ file cấu hình bằng cách sử dụng dòng lệnh.
Truy cập đến thư mục đang lưu file cấu hình Wireguard peer
cd ~/Downloads
Code language: Bash (bash)
Sử dụng lệnh nmcli
để import file cấu hình vào hệ thống.
nmcli connection import type wireguard file "Lenovo.conf"
Code language: JavaScript (javascript)
Kết quả trả về thành công
Connection 'Lenovo' (1f0199cc-5c58-41b1-9416-f11b121037eb) successfully added.
Code language: Nginx (nginx)
Kiểm tra lại danh sách kết nối
nmcli connection show
Code language: Nginx (nginx)
Kết quả trả về sẽ gồm có kết nối wifi, ethernet và wireguard
NAME UUID TYPE DEVICE
Space19 3b871a2c-162a-4dd3-adb1-f503e8c7b387 wifi wlan0
Lenovo 1f0199cc-5c58-41b1-9416-f11b121037eb wireguard Lenovo
Home140 707c9bcc-47af-48d2-82b0-cf94f75fab2d wireguard --
Purna_5G 1f776b7b-4c58-4c2f-bdb9-93c714c4f0b7 wifi --
Wired connection 1 d77c4a56-4127-3023-b62d-040c96a1022d ethernet --
Code language: Nginx (nginx)
IV. Kích hoạt kết nối WireGuard VPN
Để kích hoạt kết nối WireGuard, mình bấm chuột vào biểu tượng Network Manager ở Tray Icon, bấm vào VPN Connections và chọn vào kết nối tương ứng.
Hoặc mình có thể kích hoạt WireGuard trong Terminal bằng lệnh sau
nmcli connection up Home140
Code language: Nginx (nginx)
Kết nối thành công sẽ hiện ra thông báo
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
Code language: JavaScript (javascript)
Để ngắt kết nối WireGuard, dùng thay up
bằng down
trong lệnh ở trên
nmcli connection down Home140
Code language: Nginx (nginx)
Thế là xong. Cấu hình WireGuard client tưởng rắc rối nhưng hóa ra dễ ẹc. Thao tác bằng dòng lệnh nhanh gọn, tiện lợi hơn hẳn so với trên Windows hay macOS.
Chúc bạn thực hiện thành công!
Nguồn: https://blogs.gnome.org/thaller/2019/03/15/wireguard-in-networkmanager/
[convertkit form=7087807]
Lưu ý: Nếu bạn cần hỗ trợ kỹ thuật, vui lòng gửi câu hỏi trực tiếp ở phần Thảo luận bên dưới, mình sẽ trả lời sớm. Đừng vào hỏi trong fanpage Yêu Chạy Bộ, sẽ không có phản hồi đâu!