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
1. Cài đặt Docker
curl -sSL https://get.docker.com | sh sudo usermod -aG docker $(whoami) exit
Thoát ra sau đó vào lại ssh
2. Cài đặt WireGuard Easy
docker run -d \ --name=wg-easy \ -e WG_HOST=94.237.69.242 \ -e PASSWORD=bibica999 \ -e WG_MTU=1420 \ -e WG_DEFAULT_DNS=45.90.28.39,45.90.30.39 \ -v ~/.wg-easy:/etc/wireguard \ -p 51820:51820/udp \ -p 51821:51821/tcp \ --cap-add=NET_ADMIN \ --cap-add=SYS_MODULE \ --sysctl="net.ipv4.conf.all.src_valid_mark=1" \ --sysctl="net.ipv4.ip_forward=1" \ --restart unless-stopped \ weejewel/wg-easy
Thay địa chỉ IP 94.237.69.242 ở dòng 3 bằng IP host của bạn
Thay password bibica999 ở dòng 4 thành password của bạn
Thông số DNS Servers ở dòng 6 lấy ở bước tạo tài khoản NextDNS bên trên
Về con số MTU=1420 thì mình thấy chạy ổn trên PC, iPhone hay iPad, còn 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
3. Tạo tài khoản WireGuard
Cài đặt xong bạn có thể truy cập vào WireGuard Easy bằng IP:51821, cụ thể ở đây của mình là 94.237.69.242:51821
Login nhập password bibica999 (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
//Trong trường hợp, vì lý do nào đó, bạn không cài được Docker, hoặc chỉ cần 1 bản WireGuard nhanh gọn lẹ, thì có thể dùng đoạn code bên dưới
wget https://git.io/wireguard -O wireguard-install.sh && bash wireguard-install.sh
Hỏi gì trả lời đó là xong 😀
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à đủ)
Tạo subdomain thay cho dãy IP khó nhớ
Mình đang dùng Webinoly nên các câu lệnh ở đây là sử dụng trên Webinoly, dùng các tool quản lý khác thì về cơ bản cũng tương tự
Tạo 1 subdomain mới
site vpn.bibica.net -php
Cấu hình ssl, sử dụng proxy_pass để chuyển sang ip:port cụ thể
nano /etc/nginx/sites-available/vpn.bibica.net
Thay toàn bộ nội dung đang có thành đoạn code bên dưới
server { listen 443 ssl http2; listen [::]:443 ssl http2; ssl_certificate /root/ssl/bibica.net.pem; ssl_certificate_key /root/ssl/bibica.net.key; server_name vpn.bibica.net; location / { proxy_pass http://94.237.69.242:51821/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header Host $host; } }
Dòng 2-5 là sử dụng ssl từ Cloudflare, dòng 9-15 là bê y nguyên phần proxy_pass tác giả nói vào :]] thay 94.237.69.242 thành IP của bạn vào là được
Khởi động lại nginx, để thay đổi có hiệu lực
nginx -t service nginx reload
//Hoặc bạn cũng có thể dùng thuần túy phần proxy_pass được tác giả Webinoly viết ra
sudo site us.bibica.net -proxy=[94.237.69.242:51821]
Nếu không dùng ssl thì 1 dòng trên là xong rồi, còn nếu dùng ssl thì cấu hình như thông thường là được
nano /etc/nginx/sites-available/us.bibica.net
Khởi động lại nginx, để thay đổi có hiệu lực
nginx -t service nginx reload
Cách nào cũng được, vì cơ bản chúng đều giống nhau 😛
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 :]]