WireGuard Easy và NextDNS

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

2022-12-15_13-55-48

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

2022-12-15_14-08-07

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

2022-12-15_16-42-22

Như của mình DNS Servers là 45.90.28.39, 45.90.30.39
 
Tạo 1 profile, tab Privacy sử dụng các bộ lọc như bên dưới
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

2022-12-15_17-12-45

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

2022-12-15_15-36-18

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 😛

2022-12-16_0-31-50

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 :]]

Leave a Comment