Có gì mới?

Other Code Tạo VPN chặn quảng cáo trên mọi thiết bị qua DNS, xài Telegram...

Tham gia ngày
09/06/2025
Bài viết
1
VPN này tích hợp Pi-hole, Unbound và Wireguard sử dụng trên các VPN server như Digitalocean chỉ 6$/tháng gói thấp nhất, hoặc Oracle Cloud( VPN free trọn đời) nhưng có vẻ khó đăng ký vì cơ chế của họ.
Ở đây mình sẽ dùng dịch vụ Digitaloceacn các bạn đăng ký như bình thường và sử dụng thẻ thanh toán quốc tế để xác minh nhé, sau khi hoàn tất bắt đầu tạo server. Mình sẽ tạo một server cấu hình 6$ với 1CPU 1GB RAM .

Chọn Create => Droplets


Chọn Server, ở đây mình chọn Sing vì gần VN cho tốc độ nhanh, còn bạn muốn các server khác tuỳ vào mục đích như xài VEO 3 chẳng hạn thì chọn NewYork nhé.



Chọn hệ điều hình, mình sử dụng Ubuntu phiên bản 24.04



Tiếp theo chọn dung lượng, mình chọn gói 6$, bạn có thể chọn gói khác tuỳ vào cách sử dụng



Gõ passwork , tích vào ô đầu options, mục đích để xem báo cáo





Sau khi tạo thành công, vào dấu ... góc phải vào console sẽ hiện ra giao diện cửa sổ với người dùng root



Bắt đầu gõ vài dòng code sau:

curl -sSL https://get.docker.com | sh
exit

Sau khi exit các bạn nhấn F6 F5 để load lại cửa sổ
mkdir wg-vpn
cd ~/wg-vpn



Tải file docker-compose.yml tại đây
Chú ý, ở đây các bạn nên paste qua notepad++ hay note để chính sửa trước rồi dán nội dung vào sẽ nhanh hơn, khuyến nghị sử dung note++ để dể chỉnh sửa, các bạn sẽ
dán địa chỉ ip và mã hash passwork vào WG_HOST= IP của các bạn vừa tạo trên digitalocean và passwork hash, sao chép và enter lệnh như sau:

docker run ghcr.io/wg-easy/wg-easy:latest node -e 'const bcrypt = require("bcryptjs"); const hash = bcrypt.hashSync("mat khau cua ban", 10); console.log(hash.replace(/\$/g, "$$$$"));'

Thay thế " mat khau cua ban " vào dòng code này. ví dụ sẽ có định dạng

$$2a$$10$$pcKcFqP0BrKMfW/iE72C/O6qrBAHf0CcoKHSPCSTmIKakIfy62/q.

coppy dòng này dán vào ô passwork_hash

tiếp tục gõ rồi sao chép code đã chính sửa trong note++ vào file sau câu lệnh:

nano docker-compose.yml
Chú ý, các bạn nên xem trong note++ có dư thiếu gạch lề không nhé vì cấu trúc file YML sai thụt lề là dấn đến lỗi. File nội dung như sau:
version: '3.8'

volumes:
etc_wireguard:
pihole_config:
dnsmasq_config:

networks:
wg:
driver: bridge
enable_ipv6: true
ipam:
driver: default
config:
- subnet: 10.42.42.0/24
- subnet: fdcc:ad94:bacf:61a3::/64

services:
wg-easy:
image: ghcr.io/wg-easy/wg-easy:latest
container_name: wg-easy
networks:
wg:
ipv4_address: 10.42.42.2
ipv6_address: fdcc:ad94:bacf:61a3::2
ports:
- "51820:51820/udp"
- "51821:51821/tcp"
environment:
- WG_HOST= # ⚠️ Thay bằng IP hoặc domain thật
#- PASSWORD=phien ban 13 phien ban 14 tro le dung PASSWORD_HASH # Mật khẩu UI
- PASSWORD_HASH=$$2a$$10$$Jb/p5nhh8RVfjYtdHyXPgus3Qmtjl6foeO.fD.xHPy6sxpd5pB0Im # Mật khẩu UI
- WG_PORT=51820
- UI_PORT=51821
- WG_DEFAULT_DNS=10.42.42.3 # Pi-hole DNS
- WG_ALLOWED_IPS=0.0.0.0/0,::/0
#- INSECURE=false # ⚠️ Chỉ nên dùng nếu không có HTTPS/nginx
volumes:
- etc_wireguard:/etc/wireguard
- /lib/modules:/lib/modules:ro
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1
- net.ipv4.conf.all.src_valid_mark=1
- net.ipv6.conf.all.disable_ipv6=0
- net.ipv6.conf.all.forwarding=1
- net.ipv6.conf.default.forwarding=1
restart: unless-stopped

pihole:
image: pihole/pihole:latest
container_name: pihole
depends_on:
- unbound
networks:
wg:
ipv4_address: 10.42.42.3
ipv6_address: fdcc:ad94:bacf:61a3::3
ports:
- "53:53/tcp"
- "53:53/udp"
- "8053:80/tcp"
environment:
TZ: 'Asia/Ho_Chi_Minh'
WEBPASSWORD: 'tui'
DNS1: 10.42.42.4
DNS2: 10.42.42.4
volumes:
- pihole_config:/etc/pihole
- dnsmasq_config:/etc/dnsmasq.d
cap_add:
- NET_ADMIN
restart: unless-stopped

unbound:
user: root
image: mvance/unbound:latest
container_name: unbound
networks:
wg:
ipv4_address: 10.42.42.4
ipv6_address: fdcc:ad94:bacf:61a3::4
volumes:
- ./unbound:/opt/unbound/etc/unbound/
- ./unbound/root.hints:/var/lib/unbound/root.hints
restart: unless-stopped
nginx-proxy-manager:
image: jc21/nginx-proxy-manager:latest
container_name: nginx-proxy-manager
restart: unless-stopped
networks:
wg:
ipv4_address: 10.42.42.10
ipv6_address: fdcc:ad94:bacf:61a3::10
ports:
- "80:80" # HTTP
- "81:81" # UI
- "443:443" # HTTPS
volumes:
- ./npm/data:/data
- ./npm/letsencrypt:/etc/letsencrypt

sao chép đoạn code này dán vào cửa sổ console và nhấn Ctrl + O, Enter, Ctrl + X để thoát
tiếp tục tạo thư mục Ubound như sau:

mkdir -p ubound
sudo nano unbound/unboud.conf


dán nội dung sau vào cửa sổ
server:
verbosity: 1
interface: 0.0.0.0
interface: ::0
port: 53
do-ip4: yes
do-ip6: yes
do-udp: yes
do-tcp: yes
root-hints: "/var/lib/unbound/root.hints"
harden-glue: yes
harden-dnssec-stripped: yes
use-caps-for-id: yes
edns-buffer-size: 1232
prefetch: yes
num-threads: 1
so-rcvbuf: 4m
so-sndbuf: 4m
cache-min-ttl: 3600
cache-max-ttl: 86400
rrset-roundrobin: yes

access-control: 10.42.42.0/24 allow
access-control: fdcc:ad94:bacf:61a3::/64 allow
access-control: 127.0.0.0/8 allow
access-control: ::1 allow

Ctrl + O, Enter, Ctrl + X để thoát ,gõ :

docker compose up -d

để chạy container vừa tạo trong file yml.
quay lại giao diện trên digitalocean vào tab firewall mở cổng và tích hợp droplets vừa tạo vào.
HTTPTCP80All IPv4

All IPv6
More
CustomTCP81All IPv4

All IPv6
More
HTTPSTCP443All IPv4

All IPv6
More
CustomTCP8053All IPv4

All IPv6
More
CustomTCP51821All IPv4

All IPv6
More
CustomUDP51820All IPv4

All IPv6
More





Tới đây đã gần xong, bây giờ vào trình duyệt đăng nhập vào
Wireguard bằng ip server:51821
Pi-hole bằng IP:8053/admin
Xong, các bạn vào đây cài phiên bản muốn sử dụng cho Iphone, Android hay PC nhé:
Nội dung bị ẩn - Xem hướng dẫn nâng cấp VIP ở đầu forum.
Bạn phải nâng cấp lên VIP mới xem được nội dung này
 

Mr Nơ Lét

Nơ Let Nà Đam Mê
Tham gia ngày
27/08/2019
Bài viết
113
lâu này dùng trước thì dùng adguarddns giwof chuyển qua nextdns chặn ngon hơn hẳn! còn phương pháp tự dụng máy chủ này khổ râm quá!
 

Top Bottom