WireGuard Easy là một script giúp cài đặt và tạo nhiều tài khoản WireGuard trên Linux thông qua Docker, có thể quản lý trực quan bằng giao diện web, đỡ phải tạo bằng lệnh qua ssh như thông thường
NextDNS là 1 dịch vụ chặn quảng cáo thông qua DNS mà mình cũng đã có giới thiệu, bạn nào quan tâm có thể ấn vào bài đọc kĩ hơn
Kết hợp WireGuard Easy và NextDNS chúng ta có 1 hệ thống VPN mạnh mẽ, nhẹ nhàng, tối ưu về tốc độ mà vẫn tiết kiệm pin cho các thiết bị di động, lại có thể chặn quảng cáo trên các thiết bị khó nhằn như iOS, iPadOS … việc thêm bớt tài khoản cho bạn bè hay người thân thì siêu nhàn và đơn giản 😀
Cụ thể ở đây mình áp dụng trên con host đang chạy cho thèng bibica.net, sử dụng hệ điều hành Ubuntu 22.04 LTS (Jammy Jellyfish)
Cài đặt NextDNS
Vào NextDNS đăng kí 1 tài khoản miễn phí
Chú ý thông số DNS Servers
NextDNS Ads & Trackers Blocklist EasyList AdGuard DNS filter AdGuard Mobile Ads filter AdGuard Social Media filter ABPVN List
Đây là bộ lọc chặn quảng cáo mình hay dùng, mọi người có thể tùy chỉnh thêm tùy nhu cầu
Cài đặt WireGuard Easy
Bước này mình viết lại, cấu hình với mục đích sau này có thể chuyển VPS sang nơi khác mà vẫn có thể dùng lại được cấu hình cũ, vì tình huống sử dụng thực tế xảy ra nó sẽ như này
Bạn tạo khoảng 10-20 tài khoản để dùng trên 10-20 thiết bị, sau đó bạn đổi VPS sang nơi khác, cấu hình cũ dùng không được, do IP mới đã đổi, phải tạo lại từ đầu, rất phiền nếu số lượng thiết bị hoặc người dùng khác nhau
1. Cài đặt Docker và docker compose
curl -sSL https://get.docker.com | sh sudo usermod -aG docker $(whoami) sudo systemctl start docker sudo systemctl enable docker apt install docker-compose -y
2. Cài đặt WireGuard Easy
Quản lý đơn giản nhất thì bạn có thể dùng qua Dockge – Docker Manager
version: "3.8" services: wg-easy: environment: # ⚠️ Required: # Change this to your host's public address - WG_HOST=vn.bibica.net - PASSWORD=2jmM34Bsxv8B5n8CvmVq - WG_DEFAULT_DNS=45.90.28.39,45.90.30.39 - WG_MTU=1420 # - WG_ALLOWED_IPS= [SUBNET]/[MASK] # - WG_PRE_UP=echo "Pre Up" > /etc/wireguard/pre-up.txt # - WG_POST_UP=echo "Post Up" > /etc/wireguard/post-up.txt # - WG_PRE_DOWN=echo "Pre Down" > /etc/wireguard/pre-down.txt # - WG_POST_DOWN=echo "Post Down" > /etc/wireguard/post-down.txt image: weejewel/wg-easy container_name: wg-easy volumes: - ./data:/etc/wireguard ports: - 51820:51820/udp - 51821:51821/tcp restart: unless-stopped cap_add: - NET_ADMIN - SYS_MODULE sysctls: - net.ipv4.ip_forward=1 - net.ipv4.conf.all.src_valid_mark=1
WG_HOST
là IP Public của VPS
Đổi nó thành dạng subdomain như vn.bibica.net
, ý tưởng là sau này bạn có chuyển VPS sang nơi khác, chỉ cần đổi vn.bibica.net
sang IP mới trên DNS của domain, phía user không phải đổi lại
PASSWORD
: đây là passowrd để login vào quản trị admin (thay bằng password khác của bạn)WG_DEFAULT_DNS
: lấy ở bước tạo tài khoản NextDNS bên trên, của mình là 45.90.28.39, 45.90.30.39WG_MTU=1420
đây là giá trị mặc định WireGuard Easy sử dụng, mình thấy chạy ổn trên PC, iPhone hay iPad, trong trường hợp bạn dùng thấy chập chờn, có thể hạ xuống MTU = 1280, đây là con số an toàn mà mọi thiết bị Android đều có thể chạy tốt (lý thuyết thì có thể nó không max speed tốc độ thôi)
Để test MTU thì đơn giản nhất bạn cứ vào speedtest.net thấy Finding optimal server… nhanh, hoặc vào thẳng github.com, thấy hiện ra bình thường là được 😀 MTU không phù hợp vào 2 trang này load chậm lắm
volumes:
- ./data:/etc/wireguard
Mình đã đưa các file cấu hình /etc/wireguard
vào thư mục /data
, nằm trong thư mục cấu hình WireGuard Easy, mục đích là để sau chuyển VPS, bạn chỉ cần copy nguyên các thư mục này sang VPS, nó sẽ có sẵn các cấu hình cũ bạn đã tạo
Nếu bạn cũng dùng Dockge để quản lý docker thì các file cấu hình sẽ có cấu trúc như thế, copy thư mục /opt/stacks/wg-easy sang VPS là các cấu hình cũ sẽ được dùng lại
Nếu bạn dùng theo cấu hình như trên, cần vào DNS của domain, add record vn.bibica.net
= IP Public VPS vào
3. Login vào quản trị của WireGuard Easy
Cài đặt xong bạn có thể truy cập vào WireGuard Easy bằng IP-Public:51821, hoặc localhost:51821
Bạn có thể dùng Cloudflare Tunnels, Nginx, Caddy …. làm Reverse Proxy thay thế cho dãy localhost:51821
Cụ thể trên Nginx, mình sẽ tạo Reverse Proxy cho subdomain vpn.bibica.net
có cấu hình tương tự như sau
location / { proxy_set_header Connection ""; proxy_http_version 1.1; proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; proxy_ignore_headers Set-Cookie; proxy_intercept_errors on; proxy_pass http://localhost:51821; }
Trước đây thì mình hay dùng cấu hình IP-Public:51821, mà mỗi lần đổi VPS, phải vào sửa lại từng cấu hình, nên hiện tại mình dùng dạng localhost:51821, sau này chuyển VPS sang nơi khác, không cần sửa lại IP trong cấu hình Reverse Proxy
Login nhập password 2jmM34Bsxv8B5n8CvmVq (hoặc pass nào đó bạn đổi ở trên) rồi tạo các tài khoản WireGuard bằng cách click vài cái
Có thể down file config hoặc quét mã QR Code vào WireGuard như thông thường
4. Linked IP WireGuard Easy vào NextDNS
Login bằng IP WireGuard sau đó vào trang quản trị của NextDNS ấn vào Linked IP (bước này chỉ phải làm một lần là đủ)
Vấn đề sử dụng
Muốn tạo thêm tài khoản thì bạn cứ vào WireGuard Easy tạo thêm rồi dùng, trong trường hợp đi web mà vẫn thấy quảng cáo nào hiện ra, thì có thể add thêm trong NextDNS, mà thường dùng các bộ lọc ở trên cũng chặn tương đối lắm
Dùng NextDNS FREE (giới hạn 300,000 queries) trên PC có thể đổi sang dùng DNS của Cloudflare hoặc Google cho đỡ tốn queries, vì trên PC chặn quảng cáo dễ hơn, còn nếu dùng NextDNS trả phí thì có thể dùng luôn DNS của họ cũng được
Tốc độ lý thuyết không nhanh như Cloudflare, NextDNS có tốc độ trung bình khoảng 25ms, có điều nhờ họ chặn quảng cáo, nên thực tế dùng DNS của họ đi web sẽ nhanh hơn 😛 NextDNS thì mình cũng dùng để chặn quảng cáo trên điện thoại, máy tính bảng khoảng hơn 1 năm nay rồi, rất hài lòng
Nói chung việc cài đặt lần đầu các thứ hơi lâu 1 tẹo, có điều sau khi xong xuôi thì hiệu quả rất đáng, đây là giải pháp cá nhân mình recommend mạnh, ai có host thừa thì nên tận dụng, cả họ cùng xài :]]
Backup và restore
Nếu bạn cấu hình tương tư như bài này, sau này muốn đổi sang VPS mới, bao gồm sử dụng Dockge để quản lý WireGuard Easy
Nhanh gọn lẹ nhất là chép toàn bộ dữ liệu thư mục /opt ở VPS cũ, sang thư mục /opt ở VPS mới
Chạy các lệnh bên dưới
# Cài đặt docker và docker-compose curl -sSL https://get.docker.com | sh sudo usermod -aG docker $(whoami) sudo systemctl start docker sudo systemctl enable docker apt install docker-compose -y # Cài đặt Dockge và artalk, wg-easy, alist cd /opt/dockge docker compose up -d cd /opt/stacks/wg-easy docker compose up -d
Ở trang quản trị domain, đổi record vpn.bibica.net
và vn.bibica.net
sang IP-public của VPS mới
Tổng kết
Khá thích dùng WireGuard qua DNS của NextDNS, dù nó không chặn triệt để được các quảng cáo vì các bộ lọc hơi lú, nhưng sự hiệu quả tổng thể là có, nhất là trên iOS, iPadOS 😛
Chính sách bình luận: Chúng tôi rất trân trọng các bình luận của bạn và cảm ơn thời gian bạn dành để chia sẻ ý tưởng và phản hồi.
Ghi chú: Những bình luận được xác định là spam hoặc chỉ mang tính quảng cáo sẽ bị xóa.
• Để cải thiện trải nghiệm bình luận, chúng tôi khuyến khích bạn tạo một tài khoản Gravatar. Thêm avatar vào tài khoản Gravatar sẽ giúp bình luận của bạn dễ nhận diện hơn đối với các thành viên khác.
• ✂️ Sao chép và 📋 Dán Emoji 💪 giúp bình luận thêm sinh động và thú vị!