Mình đã chia sẻ nhiều cách thiết lập WireGuard VPN Server trên blog:
- Hướng dẫn tự thiết lập VPN cá nhân chỉ với 1 dòng lệnh cài đặt WireGuard VPN
- PiVPN – Script cài đặt WireGuard VPN Server cho Raspberry Pi
- [wg-easy] – Cài đặt và quản lý WireGuard VPN Server tiện lợi với giao diện Web UI
Trong số này, wg-easy là lựa chọn yêu thích nhất của mình để thiết lập WireGuard VPN VPN bởi sự đơn giản cùng Web UI thân thiện để tạo client.
Tuy nhiên có vấn đề nảy sinh khi kết nối Internet thông qua WireGuard VPN là mình không còn sử dụng được bộ lọc quảng cáo của AdGuard Home. Lý do vì kết nối qua WireGuard tự động chuyển qua dùng DNS của Google (8.8.8.8
) hoặc Cloudflare (1.1.1.1
)
[Interface]
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Address = 10.6.0.2/24
DNS = 1.1.1.1
[Peer]
PublicKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
PresharedKey = zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
AllowedIPs = 0.0.0.0/24
Endpoint = aaa.bbb.ccc.ddd:51820
Code language: YAML (yaml)
Trên thực tế, mình có thể thay đổi lại DNS trong file cấu hình conf qua dùng IP Address của Raspberry Pi 192.168.0.5
đang cài AdGuard Home để chặn quảng cáo như sau:
[Interface]
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Address = 10.6.0.2/24
DNS = 192.168.0.5
[Peer]
PublicKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
PresharedKey = zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
AllowedIPs = 0.0.0.0/24
Endpoint = aaa.bbb.ccc.ddd:51820
Code language: YAML (yaml)
Cách này chỉ hiệu quả khi mình kết nối qua WireGuard VPN khi ở nhà, có kết nối mạng trực tiếp đến AdGuard Home trên Raspberry Pi. Còn nếu sử dụng mạng Wifi bên ngoài hay 4G, không có cách nào để chặn quảng cáo khi kết nối qua VPN.
Do đó, mình phải tìm giải pháp mới để vừa có thể kết nối qua WireGuard VPN vừa có thể sử dụng bộ chặn quảng cáo, tránh bị làm phiền khi lướt web.
Đó là lý do của bài viết hôm nay: xin giới thiệu với mọi người WireGuard-UI – giải pháp tất cả trong một: WireGuard VPN + DNS chặn quảng cáo
Mục Lục
I. Giới thiệu WireHole-UI
WireHole-UI là một bản fork do mình tạo ra dựa trên phiên bản gốc WireHole – công cụ kết hợp WireGuard + Pi-Hole + Unbound hoạt động trên nền Docker-Compose để tạo ra giải pháp VPN Server (WireGuard) có tính năng chặn quảng cáo (thông qua Pi-Hole*) và tối ưu bảo mật DNS (thông qua Unbound).
* Pi-Hole là giải pháp chặn quảng cáo bằng DNS Server tương tự như Adguard Home.
Mình thay thế Docker image WireGuard của Linuxserver bằng bản Wireguard của wg-easy để có thể thiết lập WireGuard dễ dàng hơn thông qua giao diện Web UI.
Thay vì phải thiết lập riêng lẻ wg-easy, Pi-Hole và unbound và cấu hình cho cả ba hoạt động cùng nhau, WireHole-UI tự động hoá tất cả mọi thao tác thông qua 1 file docker-compose.yml
duy nhất. Bạn chỉ cần tải về, thay đổi vài thông số và kích hoạt bằng lệnh docker-compse up -d
là xong.
Tính năng
- Công cụ tất cả trong một: WireGuard + Web UI (wg-easy) + Chặn quảng cáo (Pi-Hole) + DNS Caching (Unbound)
- Dễ cài đặt, dễ sử dụng.
- Giao diện thân thiện, tạo, sửa, xoá client nhanh chóng.
- Hỗ trợ QR Code để kết nối client bằng điện thoại
- Hỗ trợ Split-Tunnel: chỉ sử dụng tính năng chặn quảng cáo khi kết nối qua VPN
II. Cài đặt WireHole-UI
Mình khuyến khích cài đặt WireHole-UI trên Ubuntu 20.04 để có sự tương thích tốt nhất. Nếu đang dùng Ubuntu 18.04, bạn cần phải cập nhật Linux kernel lên bản mới nhất mới sử dụng được WireGuard.
sudo apt-get install --install-recommends linux-generic-hwe-18.04
Code language: JavaScript (javascript)
1. Cài đặt Docker & Docker-Compose
WireHole-UI hoạt động trên nền Docker-Compose. Do đó bạn cần phải cài đặt Docker trước khi bắt đầu.
2. Cài đặt git
Cài đặt thêm git
trên máy nếu chưa có sẵn
sudo apt install git
Code language: Nginx (nginx)
3. Tải WireHole-UI
git clone https://github.com/10h30/wirehole-ui.git
cd wirehole-ui
Code language: Bash (bash)
4. Thiết lập thông số
Trước khi kích hoạt WireHole-UI, bạn cần chỉnh sửa lại vài thông số của file docker-compose.yml
nano docker-compose.yml
Code language: CSS (css)
Nội dung mặc định của docker-compose.yml
như dưới đây
version: "3"
networks:
private_network:
ipam:
driver: default
config:
- subnet: 10.2.0.0/24
services:
unbound:
image: "klutchell/unbound"
container_name: unbound
restart: unless-stopped
hostname: "unbound"
volumes:
- "./unbound:/opt/unbound/etc/unbound/"
networks:
private_network:
ipv4_address: 10.2.0.200
wg-easy:
depends_on: [unbound, pihole]
environment:
# ⚠️ Required:
# Change this to your host's public address
- WG_HOST= my.ddns.net
# Optional:
- PASSWORD=10h30
# - WG_DEVICE=eth+
- WG_PORT=51820
- WG_DEFAULT_ADDRESS=10.6.0.x
- WG_DEFAULT_DNS=10.2.0.100
# - WG_ALLOWED_IPS=192.168.15.0/24, 10.0.1.0/24
image: ghcr.io/wg-easy/wg-easy:13
container_name: wg-easy
volumes:
- .:/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
dns:
- 10.2.0.100 # Points to pihole
- 10.2.0.200 # Points to unbound
restart: unless-stopped
networks:
private_network:
ipv4_address: 10.2.0.3
pihole:
depends_on: [unbound]
container_name: pihole
image: pihole/pihole:latest
restart: unless-stopped
hostname: pihole
dns:
- 127.0.0.1
- 10.2.0.200 # Points to unbound
environment:
TZ: "Asia/Hong_Kong"
WEBPASSWORD: "" # Blank password - Can be whatever you want.
ServerIP: 10.2.0.100 # Internal IP of pihole
DNS1: 10.2.0.200 # Unbound IP
DNS2: 10.2.0.200 # If we don't specify two, it will auto pick google.
# Volumes store your data between container upgrades
volumes:
- "./etc-pihole/:/etc/pihole/"
- "./etc-dnsmasq.d/:/etc/dnsmasq.d/"
# Recommended but not required (DHCP needs NET_ADMIN)
# https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
cap_add:
- NET_ADMIN
networks:
private_network:
ipv4_address: 10.2.0.100
Code language: YAML (yaml)
Có hai thông số bắt buộc bạn phải thay đổi:
- WG_HOST= my.ddns.net
Đổi thành Public IP của server bạn sử dụng. Nếu cài đặt tại nhà, bạn có thể dùng Dynamic DNS.- PASSWORD=10h30
Đây là mật khẩu dùng để truy cập Web UI của WireGuard thông qua địa chỉhttp://<IP-Address>:51821
. Hãy thay đổi để tối ưu bảo mật.
Các thông số khác bạn có thể giữ nguyên nếu không rành về Docker.
Sau khi đã chỉnh sửa , lưu lại (CTRL + O) và thoát ra (CTRL + X).
Chú ý: Nếu bạn sử dụng Oracle Cloud VPS, và không truy cập được Internet sau khi kết nào vào WireGuard, tham khảo bài viết này để khắc phục
5. Kích hoạt WireHole-UI
Kích hoạt WireHole-UI bằng lệnh sau
docker-compose up -d
Đợi vài phút để máy tải Docker image và thiết lập các container. Sau khi hoàn tất, bạn đã có thể truy cập theo địa chỉ sau để thiết lập WireGuard client. Đăng nhập bằng mật khẩu bạn đã thiết lập ở mục ` – PASSWORD` trong file docker-compose.yml
http://<IP-Address>:51821
Code language: JavaScript (javascript)
Nếu bạn đang cài đặt trên VPS miễn phí của Oracle, tham khảo bài viết này sẽ có hướng dẫn chi tiết hơn
III. Kết nối đến WireHole-UI
1. Tạo WireGuard Client
Để có thể kết nối đến WireGuard VPN Server, bạn cần phải truy cập vào Web UI để tạo client.
http://<IP-Address>:51821
Code language: JavaScript (javascript)
Giao diện Web UI quản lý WireGuard cực kỳ thân thiện và dễ sử dụng.
- Bấm New để tạo client.
- Bấm vào biểu tượng QR để xem QR code dùng để thiết lập WireGuard client trên điện thoại.
- Bấm vào biểu tượng Download để tải file cấu hình, dùng để thiết lập WireGuard client trên máy tính.
- Bấm biểu tượng Thùng Rác để xoá client.
2. Cài đặt WireGuard Client
Nếu chưa biết cách thiết lập WireGuard Client, bạn xem lại mục Cài đặt WireGuard Client trong bài viết này
3. Cấu hình Pi-Hole
Mặc định sau khi kết nối thành công đến WireGuard VPN Server, bạn sẽ tự động được chặn quảng cáo nhờ vào hoạt động của Pi-Hole mà không cần phải thiết lập thêm gì cả.
Nếu muốn cấu hình nâng cao cho Pi-Hole, bạn có thể truy cập vào Dashboard của Pi-Hole theo địa chỉ sau
http://10.2.0.100/admin
Code language: JavaScript (javascript)
Thông thường mình sẽ thiết lập thêm Local DNS Records để sau này truy cập vào Pi-Hole theo tên miền http://pi.hole
cho dễ nhớ.
Truy cập vào mục DNS Records, tạo mục mới:
- Domain: pi.hole
- IP Address: 10.2.0.100
Sau đó bấm Save là xong
IV. Cấu hình Split-Tunnel
WireHole-UI có thêm tính năng Split-Tunnel rất hữu ích trong trường hợp bạn chỉ muốn tận dụng DNS Server của Pi-Hole để chặn quảng cáo mà không chuyển hướng đường truyền qua VPN Server.
Cách thực hiện rất đơn giản. Bạn chỉ cần tạo thêm 1 WireGuard client mới, ví dụ: Adblock, và tải file cấu hình Adblock.conf
về máy.
Sau đó khi cấu hình trên WireGuard client, thay đổi thông số của dòng AllowsIP
thành 10.2.0.0/24
và lưu lại.
[Interface]
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Address = 10.6.0.2/24
DNS = 10.2.0.100
[Peer]
PublicKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
PresharedKey = zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
AllowedIPs = 10.2.0.0/24
Endpoint = aaa.bbb.ccc.ddd:51820
Code language: YAML (yaml)
Với thiết lập này, chỉ có DNS Traffic được điều hướng qua VPN Server, truy cập web của bạn vẫn hoạt động bình thường, không chạy qua VPN.
Chúc bạn cài đặt thành công!
Lỗi ERROR: Pool overlaps with other one on this address space
ngay khi chạy docker-compose up -d
Thiết bị: Raspberry 4
OS: Raspberry OS lite
Bro có thể giúp mình ?
Creating network “wirehole-ui_private_network” with the default driver
ERROR: Pool overlaps with other one on this address space
Hình như bị lỗi đánh máy đó bác, em lười quá lên github, copy lại và sửa thì OK.
Còn unbone thì khởi động được nhưng lỗi fix lại theo https://www.xfelix.com/2020/09/pihole-unbound-docker-setup-on-raspberry-pi/ thì dig http://www.google.com @127.0.0.1 -p 5053 ===> OK
Mà docker không map port container với host không hoạt động bác ah
Vụ “Creating network “wirehole-ui_private_network” with the default driver
ERROR: Pool overlaps with other one on this address space”
Hình như lỗi đánh máy sao ý. Mình lên github copy lại và chỉnh sửa thì ok luôn
Khi lưu lượng truy cập không qua VPN (split tunnel) thì có tốn băng thông VPN không ạ?
Dùng Split Tunnel thì vẫn tốn băng thông cho phân giải DNS nhé. Nhưng băng thông gần như không đáng kể.
Vậy cho e hỏi, có auto split tunnel chỉ dữ liệu quốc tế mới qua VPN trên VPS không ạ, hay chỉ trên các router có sẵn tính năng như bài viết của anh thôi.
Split Tunnel của cái WireHole-UI này để dùng DNS của Pi-Hole chặn quảng cáo thôi, không có tính năng định tuyến tự động bạn nhé. Muốn dùng kiểu định tuyến tự động quốc tế thì bắt buộc phải dùng router Mikrotik / OpenWRT hoặc pfSense / OPNSense
Cho mình hỏi thêm là mình set cái DNS pi.hole không hoạt động bạn ạ, không biết lỗi gì.
Mình cũng đang nghĩ nếu set pi.hole poin tới một local IP đc thì không có thể tạo một local IP point tới WordPress, rồi xài local DNS poin to ip đó, nghĩa là tạo một WordPress cho nội bộ vpn được không nhỉ?
DNS Pi-Hole: Xem kỹ lại hướng dẫn trong bài và làm theo đúng từng bước là được nhé.
Cái mục WordPress cho nội bộ VPN thì không hiểu bạn đang nói gì cả.
Cái DNS Pi-Hole đã work rồi, thêm “/admin” vào chứ không có giống như khi truy cập tới 10.2.0.100 sẽ có phần truy cập trang admin.
Còn cái mục wordpress, ý của mình là muốn xây dựng một workpress chỉ có nội bộ vpn mới truy cập được thôi. Mình có search lòng vòng mà chưa kiếm được giải pháp.
Muốn làm WordPress nội bộ thì cài thêm UFW, rồi cấu hình chỉ cho truy cập từ mạng nội bộ (thông qua VPN) là xong.
Mình cài xong rồi, mình thấy có bài: Quản lý Docker trực quan và hiệu quả hơn với Portainer
https://thuanbui.me/quan-ly-docker-truc-quan-va-hieu-qua-hon-voi-portainer/
Giờ mình chạy cài thêm Portainer được không bạn? có cần lưu ý gì không?
Cài thêm Portainer không ảnh hưởng gi hết bạn nhé. Dùng nó để quản lý tiện lợi hơn thôi.
Mình tới bước này http://:51821
Mình đã đổi ip address thành public ip của VPS rồi nhưng vẫn không mở được Web UI.
Mong bạn xem giúp mình đã thiếu sót bước nào không
Bạn kiểm tra lại có làm đúng hết các bước chưa? Và có mở port 51821 chưa (nếu VPS bị chặn Firewall).
Chỉ cần làm đúng theo các bước là sẽ ổn.
Mình cũng bị vướng ở bước vào public ip:51821 dù đã mở port trong terminal.
Nếu bạn đang cài trên Oracle Cloud thì cần cấu hình thêm Security List nữa thì mới truy cập từ ngoài vô port 51821: https://thuanbui.me/huong-dan-thiet-lap-vpn-server-mien-phi-voi-oracle-cloud-vps/
Hi bạn mình thử cài wirehole-ui trên Google Cloud như cũng bị lỗi ko access đươc ip public:51821 dù đã mở port trên firewall . Đã mở port cả ufw và trên policies fire wall của Google Cloud
Mình cài lên box armbian, log in vào dc wg easy nhưng lại ko log in vào được pihole ở ip 10.2.0.100/admin, loay hoay mãi không biết vướng chỗ nào.
Muốn truy cập vô Pi-Hole thì phải kết nối vô WireGuard nhé. Khi vào được mạng nội bộ của WireGuard rồi thì mới truy cập 10.2.0.100 được
ái chà, vậy mà sao ko nghĩ ra ta, loay hoay cả đêm không được, mình vừa vào được rồi. Thanks bạn nhiều nha.
Ủa mà set up như này thì mình đâu có dùng pihole để chặn ads ở cấp router được hả bạn?
oh, giờ mình muốn dùng pihole vừa set xong để chặn ads cho từ cấp router của mình thì trên router buộc phải cài wg client hay chỉ cần trỏ local ip của pihole về dns server của router là được ta, router mình chạy openwrt.
Mục đích chính của cái WireHole-UI này là để tạo VPN, chặn quảng cáo chỉ là phụ thêm. Bạn muốn chặn quảng cáo cho router ở nhà thì cài AdGuard Home vô OpenWRT là nhanh gọn lẹ nhất. Dùng cái WireHole-UI này phải thiết lập răc rối, không hợp lý chút nào.
uhm, vậy mình sẽ cài wirehole lên vps. Cài AGH lên router mình đã cài rồi nhưng nó phức tạp vụ unbound quá (do mình gà), mình cài theo hướng dẫn để unbound thì mất net vì phải disable dhcp của router và dùng của AGH, làm vài lần đều bị nên mình vẫn chưa thành công cài AGH + Unbound, hiện tại dùng AGH cũng ko hiệu quả mình bị DNS leak, phải kết hợp với adblock truyền thống để block ads.
Vậy nên mình có thể cài Pihole+unbound lên armbian box để chặn ads và dnsleak cấp router được đúng không bạn? Nếu bạn có hướng dẫn cài AGH+unbound luôn thì chỉ giúp mình với nha.
Cảm ơn bạn.
Bạn có thể tham khảo cách cài đặt Pi-Hole + Unbound bằng Docker ở đây: https://github.com/chriscrowe/docker-pihole-unbound/tree/master/one-container
Hic, thực sự là đọc rồi mà ko biết làm sao để làm theo vì không có hướng dẫn từng bước như của bạn.
Mình có thể edit docker-compose của bài trong post này, bỏ đi mục wireguard có được không ta?
Tham khảo bài này nhé: https://thuanbui.me/cai-dat-pi-hole-unbound/
cài mọi thứ đều xong nhưng khi kết nối client ios thì không sao còn client win 10 thì lại không vào được
Chào bạn, mình xem và làm theo bạn hướng dẫn: “WireHole-UI – Thiết lập VPN Server tích hợp tính năng chặn quảng cáo”. Đã chạy được WireGuard, nhưng khi mình sử dụng tính năng Split-Tunnel thì Pi-hole không chặn được quảng cáo. Bạn hướng dẫn mình khắc phục được không. Thanks Bạn
Mình đã thử và thấy dùng Split-Tunnel vẫn chặn quảng cáo bình thường. Bạn nên xem lại có làm thiếu bước nào không?
Và lần sau bạn vui lòng gửi câu hỏi ở đúng bài viết liên quan. (Câu hỏi đã được dời từ trang Mời bia qua đây)
Tại sao mình làm đến bước kết nối vpn với IOS thì hoạt động được nhưng trên win thì không kết nối được thử với cả win 7 và win 10
-Đổi AllowsIP thành 10.2.0.0/24 thì kết nối được với DNS để chặn quảng cáo để mặc định thì win không kết nối với VPN
iOS hoạt động được nghĩa là WireHole-UI đã chạy thành công. Còn trên Win không được thì do cấu hình Win của bạn nó có gì lạ rồi. Cái này thì bạn phải tự mò thôi.
mình làm theo các bươca nhưng không thể kết nối được. quét QR thì báo lỗi “i not the valid”. còn add trên win 10 thì báo noactive, khi active thì báo no such host is known
bạn hướng dẫn mình cái nhé. thanks bạn
Nhiều khả năng bạn làm sai hoặc thiếu bước nào rồi. Chú ý phải cập nhật thông số – WG_HOST= thành địa chỉ IP của VPS.
Vâng cảm ơn Bạn, để mình làm lại xem sao
Ở máy client mình không sử dụng wireguard để kết nối mà trỏ dns về ip của vps thì có sử dụng được tính năng chặn quảng cáo không bạn? Dĩ nhiên mình hiểu là sẽ không dùng được vpn.
Chặn quảng cáo chỉ có hiệu lực sau khi bạn kết nối vào VPN. IP của Pi-Hole là IP nội bộ trong mạng con của Docker, nên bạn trỏ DNS về IP của VPS thì không có tác dụng. Bạn có thể cài Pi-Hole theo hướng dẫn này: https://thuanbui.me/cai-dat-pi-hole-unbound/ , sau đó có thể trỏ DNS về IP của VPS để chặn quảng cáo.
VPS của mình đã cài sẵn control panel Hestia cho webserver. Mình cài thêm wirehole-ui như bài viết thì có xung đột không bạn?
WireHole-UI mặc định sử dụng port 51820 và 51821, nếu Hestia không dùng 2 port này thì cài song song không bị gì hết nhé.
Cám ơn Thuận nhé!
chỗ WG_HOST nếu dùng DDNS thông qua thì ghi thế nào ạ??
thông qua cloudflare ạ
WG_HOST bạn cần ghi địa chỉ IP hoặc tên miền nào ở bên ngoài có thể truy cập vào WireGuard Server đang cài ở nhà.
Bạn cho mình hoit, mình lấy file conf từ wg về để cài lên mikrotik thì báo lỗi sai chỗ gateway, vậy thì theo cách bạn hướng dẫn trên thì địa chỉ gateway để cài lên mikrotik sẽ như thế nào nhỉ. Cám ơn bạn!
Bạn xem hướng dẫn cách thiết lập trên Mikrotik ở đây nhé: https://thuanbui.me/wireguard-vpn-mikrotik-router/
với image “image: “mvance/unbound-rpi:latest”
em đang gặp lỗi “unbound The requested image’s platform (linux/arm/v7) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested”
có lẽ unbound rpi chưa support cho arm64 chăng?
ok workaround của mình sẽ là thay dòng image: “mvance/unbound-rpi:latest”
bằng image: “pedantic/unbound:latest”
Mình đang dựng trên raspberry pi và build trên docker, setting phần host sẽ là ddns của router nhà mình, tuy nhiên mình connected nhưng ko ra đc internet, cái UI cũng ko hiện được up down , router mình đang dùng là mikrotik, mình đã thử google 1 lúc nhưng chưa tìm ra nguyên nhân để mình config lại, hy vọng được anh đưa ra giải pháp
Mình cũng đang dùng router Mikrotik. Bạn kiểm tra xem đã mở port 51820, Protocal 17 (udp) trên con Mik, trỏ vào IP con Raspberry Pi chưa: https://imgur.com/MsjhHLd . Và kiểm tra thử xem có truy cập được `1.1.1.1` sau khi kết nối vào WireGuard không? Nếu truy cập theo IP được, mà không truy cập bằng tên miền được thì có thể Unbound / Pi-Hole nó gặp lỗi gì đó không phân giải DNS được.
cám ơn anh đã hỗ trợ em rất nhanh, đúng như cách anh đã hướng dẫn ở trên, sau khi thay Host từ ddns sang IP đã có thể ra được internet và hoạt động ngon lành. Vấn đề có lẽ ở vụ phân giải DNS , anh có solution nào để em có thể debug kĩ hơn về việc này không vì hiện tại em đang dùng IP động
Nếu DDNS không hoạt động trong khi IP lại hoạt động thì DDNS của em đang gặp vấn đề, không trỏ về đúng IP của Router rồi. Anh tạo DDNS trực tiếp trên Mikrotik luôn: https://thuanbui.me/dynamic-dns-mirotik-router/ , chưa bao giờ bị lỗi.
Hi anh, hiện tại DDNS em đang dùng free của NoIP và khi chuyển sang dùng Mik thì em đang tận dụng DDNS free ngay trên Mik (xxxxxx.sn.mynetname.net), tuy nhiên là ngay từ ban đầu em đã dùng DDNS của mik trên cấu hình rồi, và không ra được internet
Em đang ko rõ lỗi đến từ đâu, tuy nhiên em đang trỏ DNS Name của Mik về NoIP theo dạng CNAME(DNS Alias) để có thể sử dụng song song cả 2 DDNS, em không chắc có phải vấn đề nằm ở đây không.
Cho mình hỏi là mình đã cài theo như bạn hướng dẫn, hệ thống đã chạy 1 thời gian ok nhưng hôm nay thì bật vpn lên thì client không truy cập được vào web. Mình có kiểm tra DNS trong pi-hole thì nếu để Upstream DNS servers tới 10.2.0.200 (unbound) thì không vào được web. Nhưng nếu tích vào Upstream DNS Servers của Google thì web vào bình thường. Lỗi này xử lý thế nào vậy bạn?
Theo bạn nói thì Unbound container bị lỗi gì đó rồi. Khởi độngg lại xem sao. Hoặc bạn có thể chỉnh lại fie docker-compose.yml, cho Pi-hole upstream thằng đến Googgle, không qua Unbound nữa.
Mình chưa rõ là thằng Unbound này có tác dụng gì nhỉ? Nếu không dùng nó thì có ảnh hưởng gì đến tốc độ truy cập hay không?
Unbound nó có nhiệm vụ xác thực và cache DNS nhằm tăng tính bảo mật thôi. Không dùng thì không ảnh hưởng gì đến tốc độ truy cập hết bạn nhé.
Mình cài thành công hết r, lúc bật VPN wireguard thì lại không thể kết nối mạng được. Pi Hole cũng không vào thiết lập được luôn là sao nhỉ
Muốn biết bị lỗi gì thì bạn phải xem logs bằng lệnh
docker compose logs
để xem nó báo lỗi gì rồi google tìm cách sửa tương ứng.Anh rảnh xem lại logs giúp mình xem lỗi ở đâu được không ạ ?
wg-easy | 2024-01-21T15:30:13.837Z Server Listening on http://0.0.0.0:51821
wg-easy | 2024-01-21T15:30:13.844Z WireGuard Loading configuration…
wg-easy | $ wg genkey
wg-easy | $ echo ***hidden*** | wg pubkey
wg-easy | 2024-01-21T15:30:13.919Z WireGuard Configuration generated.
wg-easy | 2024-01-21T15:30:13.920Z WireGuard Config saving…
wg-easy | 2024-01-21T15:30:13.928Z WireGuard Config saved.
wg-easy | $ wg-quick down wg0
wg-easy | $ wg-quick up wg0
wg-easy | 2024-01-21T15:30:14.451Z WireGuard Config syncing…
wg-easy | $ wg syncconf wg0 <(wg-quick strip wg0)
wg-easy | 2024-01-21T15:30:14.516Z WireGuard Config synced.
wg-easy | 2024-01-21T15:30:54.073Z Server New Session: UaY8tg7Vr9E0QJyrdBjnUGLTtZlzpnkF
wg-easy | $ wg genkey
wg-easy | $ echo IJA+i0sPO3jR7MFGlo+PriN9GbkqV05lRSyilV4FVn0= | wg pubkey
wg-easy | $ wg genpsk
wg-easy | 2024-01-21T15:31:04.300Z WireGuard Config saving…
wg-easy | 2024-01-21T15:31:04.303Z WireGuard Config saved.
wg-easy | 2024-01-21T15:31:04.303Z WireGuard Config syncing…
wg-easy | $ wg syncconf wg0 <(wg-quick strip wg0)
wg-easy | 2024-01-21T15:31:04.362Z WireGuard Config synced.
wg-easy | 2024-01-21T15:50:31.180Z WireGuard Config saving…
wg-easy | 2024-01-21T15:50:31.183Z WireGuard Config saved.
wg-easy | 2024-01-21T15:50:31.184Z WireGuard Config syncing…
wg-easy | $ wg syncconf wg0 <(wg-quick strip wg0)
wg-easy | 2024-01-21T15:50:31.308Z WireGuard Config synced.
wg-easy | $ wg genkey
wg-easy | $ echo INgb31Mn4m928eqs6PeXQWkivzN6dPL9chn36KtRRWQ= | wg pubkey
wg-easy | $ wg genpsk
wg-easy | 2024-01-21T15:50:36.891Z WireGuard Config saving…
pihole | s6-rc: info: service s6rc-oneshot-runner: starting
wg-easy | 2024-01-21T15:50:36.896Z WireGuard Config saved.
wg-easy | 2024-01-21T15:50:36.896Z WireGuard Config syncing…
pihole | s6-rc: info: service s6rc-oneshot-runner successfully started
pihole | s6-rc: info: service fix-attrs: starting
pihole | s6-rc: info: service fix-attrs successfully started
pihole | s6-rc: info: service legacy-cont-init: starting
pihole | s6-rc: info: service legacy-cont-init successfully started
pihole | s6-rc: info: service cron: starting
pihole | s6-rc: info: service cron successfully started
pihole | s6-rc: info: service _uid-gid-changer: starting
unbound | [1705851008] unbound[1:0] notice: init module 0: subnetcache
unbound | [1705851008] unbound[1:0] warning: subnetcache: serve-expired is set but not working for data originating from the subnet module cache.
unbound | [1705851008] unbound[1:0] warning: subnetcache: prefetch is set but not working for data originating from the subnet module cache.
unbound | [1705851008] unbound[1:0] notice: init module 1: validator
unbound | [1705851008] unbound[1:0] notice: init module 2: iterator
unbound | [1705851008] unbound[1:0] info: start of service (unbound 1.19.0).
unbound | [1705851008] unbound[1:0] info: generate keytag query _ta-4a5c-4f66. NULL IN
unbound | [1705892369] unbound[1:0] info: generate keytag query _ta-4f66. NULL IN
unbound | [1705932618] unbound[1:0] info: generate keytag query _ta-4f66. NULL IN
wg-easy | $ wg syncconf wg0 <(wg-quick strip wg0)
wg-easy | 2024-01-21T15:50:36.990Z WireGuard Config synced.
wg-easy | 2024-01-22T15:08:27.929Z Server New Session: P6h2A9wNzQjLSEsbWsAmpuzoTjxHrZOW
wg-easy | 2024-01-22T15:08:33.005Z WireGuard Config saving…
wg-easy | 2024-01-22T15:08:33.013Z WireGuard Config saved.
wg-easy | 2024-01-22T15:08:33.013Z WireGuard Config syncing…
wg-easy | $ wg syncconf wg0 <(wg-quick strip wg0)
wg-easy | 2024-01-22T15:08:33.101Z WireGuard Config synced.
wg-easy | $ wg genkey
wg-easy | $ echo kFaYzvbnpB+QzQZ/D8qNhebPUV3H2MZqgJKWogx191Y= | wg pubkey
wg-easy | $ wg genpsk
wg-easy | 2024-01-22T15:08:40.643Z WireGuard Config saving…
wg-easy | 2024-01-22T15:08:40.646Z WireGuard Config saved.
wg-easy | 2024-01-22T15:08:40.646Z WireGuard Config syncing…
wg-easy | $ wg syncconf wg0 “Asia/Hong_Kong”,
pihole | “PIHOLE_DOCKER_TAG” => “”,
pihole | “PHP_ERROR_LOG” => “/var/log/lighttpd/error-pihole.log”,
pihole | “CORS_HOSTS” => “”,
pihole | “VIRTUAL_HOST” => “pihole”,
pihole | [i] Using IPv4 and IPv6
pihole |
[✓] Installing latest Cron script
pihole | [i] setup_blocklists now setting default blocklists up:
pihole | [i] TIP: Use a docker volume for /etc/pihole/adlists.list if you want to customize for first boot
pihole | [i] Blocklists (/etc/pihole/adlists.list) now set to:
pihole | https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
pihole | [i] Converting DNS1 to PIHOLE_DNS_
pihole | [i] Converting DNS2 to PIHOLE_DNS_
pihole | [i] Setting DNS servers based on PIHOLE_DNS_ variable
pihole | [i] Applying pihole-FTL.conf setting LOCAL_IPV4=10.2.0.100
pihole | [i] FTL binding to default interface: eth0
pihole | [i] Enabling Query Logging
pihole | [i] Testing lighttpd config: Syntax OK
pihole | [i] All config checks passed, cleared for startup …
pihole | [i] Docker start setup complete
pihole |
pihole | [i] pihole-FTL (no-daemon) will be started as pihole
pihole |
pihole | s6-rc: info: service _startup successfully started
pihole | s6-rc: info: service pihole-FTL: starting
pihole | s6-rc: info: service pihole-FTL successfully started
pihole | s6-rc: info: service lighttpd: starting
pihole | s6-rc: info: service lighttpd successfully started
pihole | s6-rc: info: service _postFTL: starting
pihole | s6-rc: info: service _postFTL successfully started
pihole | s6-rc: info: service legacy-services: starting
pihole | Checking if custom gravity.db is set in /etc/pihole/pihole-FTL.conf
pihole | s6-rc: info: service legacy-services successfully started
pihole | [i] Creating new gravity database
pihole | [i] Migrating content of /etc/pihole/adlists.list into new database
pihole | [i] Neutrino emissions detected…
[✓] Pulling blocklist source list into range
pihole |
[✓] Preparing new gravity database
[✓] Creating new gravity databases
pihole | [i] Using libz compression
pihole |
pihole | [i] Target: https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
[✓] Status: Retrieval successful
[✓] Parsed 153664 exact domains and 0 ABP-style domains (ignored 1 non-domain entries)
pihole | Sample of non-domain entries:
pihole | – “0.0.0.0”
pihole |
pihole |
[✓] Building tree
[✓] Swapping databases
pihole | [✓] The old database remains available
pihole | [i] Number of gravity domains: 153664 (153664 unique domains)
pihole | [i] Number of exact blacklisted domains: 0
pihole | [i] Number of regex blacklist filters: 0
pihole | [i] Number of exact whitelisted domains: 0
pihole | [i] Number of regex whitelist filters: 0
[✓] Cleaning up stray matter
pihole |
pihole | [✓] FTL is listening on port 53
pihole | [✓] UDP (IPv4)
pihole | [✓] TCP (IPv4)
pihole | [✓] UDP (IPv6)
pihole | [✓] TCP (IPv6)
pihole |
pihole | [i] Pi-hole blocking will be enabled
pihole | [i] Enabling blocking
[✓] Pi-hole Enabled
pihole |
pihole | Pi-hole version is v5.17.3 (Latest: v5.17.3)
pihole | web version is v5.21 (Latest: v5.21)
pihole | FTL version is v5.24 (Latest: v5.24)
pihole | Container tag is: 2024.01.0
Mình xem qua log nhưng cũng không biết nó bị lỗi gì. Giờ chỉ có cách bạn tự mò bằng cách chỉ chạy wg-easy riêng lẻ xem có được không, và tham khảo thêm bài này: https://thuanbui.me/khac-phuc-loi-wireguard-vpn-wg-easy-khong-hoat-dong-tren-oracle-cloud-vps/
Bác Thuận Bùi update bản wireguard mới đi ạ, bản build bên trong báo update mà ko được ạ.