• Cọc VF3 thì vào đây, dùng mã LEBAOLONG thì giảm thêm mớ nữa ;)

thắc mắc Wireguard client kết nối nhưng không truy cập được

Status
Not open for further replies.

Ghosthammer

Tryhard DIY-er
tayto
mình đang setup homelab với proxmox, mọi thứ khá suôn sẻ cho tới khi setup wireguard.
các bước setup thì làm theo pipvn hay cái code setup trên github, cài đặt thông số ddns qua noip trỏ về ddns trên con router mikrotik, mở port 51820 trên router rồi, nhưng khi bật client trên điện thoại thì có báo connected, nhưng tốc độ tải rất chậm, tính bằng byte. loay hoay khoảng 3 ngày thì mình chuyển về setup wireguard thẳng trên con router, các bước thì cũng làm theo hướng dẫn trên mạng, và client cũng báo kết nối với server wireguard(đã mở port 13231) nhưng tốc độ cũng chỉ được có 1-2Kbps. Vấn đề ở chỗ setup cái này thì sẽ dẫn đến bảng ARP và NAT filter của con router nó nhảy loạn lên, đôi lúc kết nối LAN-LAN bị mất (dù đã setup hairpin cho 80 443 51820 13231...)hoặc tốc độ kết nối từ Local ra internet rất chậm nên đã xóa hết các setting này.
kiểm tra thêm mấy nguồn thì có điều chỉnh cả MTU từ 1500/1492 xuống 1480 hoặc 1468 nhưng vẫn không khả quan hơn.
giờ có phương án nào nó đỡ phức tạp không nhỉ? chứ setup L2TP trên router được 1 2 ngày toàn thấy bị bruteforce đỏ lòm cả log thôi
 
Chỉnh MTU của wireguard:

Nếu từ client đến router bằng IP4
wg.MTU = router.MTU - 60

Nếu từ client đến router bằng IP6
wg.MTU = router.MTU - 80

router.MTU thường là 1500 hoặc 1492
 
lúc tôi làm pivpn thì bị cgnat, bạn có chắc là kết nối đc chưa, chứ wg thì khá đơn giản chả cần phải mò mẫm gì nhiều, tốt nhất chạy thêm gui cho dễ thấy

tôi nhớ mang máng là client trên đt vì là do udp nên lúc nào nó cũng show connect nên khá là ngu học
 
Loanh quanh ở con Mik thôi. Nếu modem nhà mạng đã bridge và quay PPPoE trên Mik thì ko sao, nếu Mik cắm LAN modem nhà mạng thì thím thử cho em Mik vào DMZ của modem nhà mạng xem sao, đỡ phải mở port cho Mik
 
gỡ hết cả trên router lẫn điện thoại, máy tính, mua hẳn vps, cài đặt CNAME hẳn hoi mà cài cả Wireguard lẫn tailscale(set exit node = vps) vẫn không kết nối được:LOL:
chả nhẽ khó khăn thế ư
 
vừa thử ping từ vps đến điện thoại thì ra kết quả thế này
1704254883915.png

ping từ vps đến máy tính thì thế này
1704254965742.png

setup vps là exit nodes trên tailscale xong set exitnodes từ PC vẫn không thể kết nối internet được.
lý do ở đâu nhỉ
 
thử nslookup 1 domain xem nó đang dùng dns nào, có phân giải được tên miền hay không, tiếp theo là tracert 8.8.8.8 xem nó đi đến đâu thì bị chặn

Ping ntn thì quá cao
1704282821073.png
 
ping cao thế này thường là bị relay qua server của bọn Tailscale.

Exit node​

Tôi không dùng Tailscale nên không biết thuật ngữ exit node của bạn có phải là gì. Tôi giả định là:
  1. Bạn có 3 nodes là VPS, PC và Phone.
  2. Nếu VPS là exit node thì Phone vào web phải đi qua VPS, để ẩn IP.
Với 2 giả định trên. Bạn không thể có 2 exit nodes. Nếu bạn cấu hình 2 exit nodes là VPS và PC thì trên Phone bạn phải chọn 1 trong 2, trừ trường hợp bạn cấu hình exit node trên Phone theo IP range.

Kiểm tra config​

Bây giờ tôi giả định bạn muốn VPS là exit node, và PC vào web phải qua VPS thì bạn kiểm tra như sau.

Trên VPS​

Tôi giả định là
1. OS là Linux
2. Không có firewall
3. Physical network interface của eth0
4. Network interface của wireguard hay tailscale là wg0

Bạn thử
Code:
sysctl net.ipv4.ip_forward
thì nên ra kết quả là
Code:
net.ipv4.ip_forward = 1
để bật tính năng chuyển IP packet từ network interface wireguard (tailscale) sang physical network interface và ngược lại.

Bạn kiểm tra iptables phải có như sau
Code:
iptables  -A FORWARD -i %i -j ACCEPT;
iptables  -A FORWARD -o %i -j ACCEPT;
iptables  -t nat -A POSTROUTING -o eth0 -j MASQUERADE;
Trong đó %i là tên wg0, 2 dòng trên là accept tất cả IP packet vào và ra trên wg0, dòng thứ 3 là NAT để ẩn địa chỉ IP gốc tất cả packet từ eth0 ra internet.

Trên PC​

Bạn kiểm tra route table đảm bảo tất cả packet phải chuyển hướng wireguard (tailscale) network interface. Tôi không dùng Windows nên không biết kiểm tra kiểu gì. Nhưng tôi nghĩ Tailscale sẽ có, còn wireguard thì sẽ thấy
Code:
AllowedIPs = 0.0.0.0/0
 
Tôi nghĩ là tốt hơn là ném cho bạn 2 file wireguard config
Trường hợp này bạn phải cài DNS server trên VPS để khỏi bị DNS leak, đơn giản là dnsmasq.

vps.config
Code:
[Interface]
PrivateKey = {VPS private key}
ListenPort = {VPS port}
Address = 192.168.4.1/32, fd04::1/128
MTU = 1420

PostUp   = sysctl net.ipv4.ip_forward=1
PostDown = sysctl net.ipv4.ip_forward=0
PostUp   = iptables  -A FORWARD -i %i -j ACCEPT; iptables  -A FORWARD -o %i -j ACCEPT; iptables  -t nat -A POSTROUTING -o eth0 -j MASQUERADE;
PostDown = iptables  -D FORWARD -i %i -j ACCEPT; iptables  -D FORWARD -o %i -j ACCEPT; iptables  -t nat -D POSTROUTING -o eth0 -j MASQUERADE;

PostUp   = sysctl net.ipv6.all.forwarding=1
PostDown = sysctl net.ipv6.all.forwarding=0
PostUp   = ip6tables -A FORWARD -i %i -j ACCEPT; ip6tables -A FORWARD -o %i -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;
PostDown = ip6tables -D FORWARD -i %i -j ACCEPT; ip6tables -D FORWARD -o %i -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE;


[Peer]
PublicKey  = {PC public key}
AllowedIPs = 192.168.4.2/32, fd04::2/128

pc.config
Code:
[Interface]
PrivateKey = {PC private key}
Address = 192.168.4.2/32, fd04::2/128
DNS = 192.168.4.1

[Peer]
PublicKey  = {VPS public key}
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint   = {VPS public IP}:{VPS port}
PersistentKeepalive = 25
 
Last edited:
mất 1 ngày thì con tailscale đã hoạt động tương đối hoàn hảo, đáp ứng đủ nhu cầu. còn con wireguard thì quyết định cho nó đi bụi vì ốp setting của các bác vào vẫn không thấy kết nối được(vì đã thử hết ip-forwarding với dns local rồi)
# cái exit nodes nó đơn giản là cái ip của VPS, khi mà bật cái này lên thì bao nhiêu lưu lượng internet nó đều có ip của thằng VPS hết.
 
mất 1 ngày thì con tailscale đã hoạt động tương đối hoàn hảo, đáp ứng đủ nhu cầu. còn con wireguard thì quyết định cho nó đi bụi vì ốp setting của các bác vào vẫn không thấy kết nối được(vì đã thử hết ip-forwarding với dns local rồi)
# cái exit nodes nó đơn giản là cái ip của VPS, khi mà bật cái này lên thì bao nhiêu lưu lượng internet nó đều có ip của thằng VPS hết.
Check xem speed của nó ok k, nó mà đi qua relay thì cũng chậm lắm á
 
Check xem speed của nó ok k, nó mà đi qua relay thì cũng chậm lắm á
đêm qua mình vắt tay lên trán suy nghĩ thì có khả năng do con wireguard theo các guide bây giờ không có cái câu lệnh kiểu thế này
Bash:
tailscale up --advertise-route=xxx.xxx.xxx.xxx/xx --accept-route --advertise-exit-node
đại loại kiểu add route cho kết nối với Local của cái node đấy, chấp nhận kết nối từ các node khác và lấy public ip làm ip cho tất cả các kết nối tới internet trong cái VPN này
còn con wireguard thấy có cái ipforwarding nhưng enable lên vẫn chưa có.
 
đêm qua mình vắt tay lên trán suy nghĩ thì có khả năng do con wireguard theo các guide bây giờ không có cái câu lệnh kiểu thế này
Bash:
tailscale up --advertise-route=xxx.xxx.xxx.xxx/xx --accept-route --advertise-exit-node
đại loại kiểu add route cho kết nối với Local của cái node đấy, chấp nhận kết nối từ các node khác và lấy public ip làm ip cho tất cả các kết nối tới internet trong cái VPN này
còn con wireguard thấy có cái ipforwarding nhưng enable lên vẫn chưa có.
không phải đâu, WG là vpn trực tiếp, mình không biết bạn triển khai cài WG ntn chứ dùng docker hay scritp có sẵn là nó phải bật chuyển tiếp gói tin trên SV rồi, còn việc client muốn fw để cho mạng qua tất hay 1 phần là cấu hình ở client. tailscale thì nó dùng kết nối trung gian để 2 thằng bắt tay nhau, bắt tay được rồi thì 2 thằng tự chơi vs nhau nên không cần mở port, đó là kết nối trực tiếp qua IPv6 thôi, ipv4 thì cần firewall hỗ trợ 1 vài thứ nữa như NM-MAP... để bọn nó tự mở port kết nối với nhau, không đc là phải đi qua 1 server derp trung gian, gần nhất là sing hoặc hồng kông, mà khi đi chơi xa như thế là băng thông giảm và ping rất cao.

WG mình mở port tại nhà thì ở client chỉ cần allow ip AllowedIPs = dải ip vpn/24, dải ip lan ở nhà/24 là có thể dùng các thiết bị ở nhà như ngồi trong LAN rồi.

1704342525415.png

Như ảnh đó, nếu mấy cái gạch đỏ không đc hỗ trợ để bọn nó kết nối trực tiếp với nhau là nó chạy qua trung gian là bọn màu xanh
 
Last edited:
không phải đâu, WG là vpn trực tiếp, mình không biết bạn triển khai cài WG ntn chứ dùng docker hay scritp có sẵn là nó phải bật chuyển tiếp gói tin trên SV rồi, còn việc client muốn fw để cho mạng qua tất hay 1 phần là cấu hình ở client. tailscale thì nó dùng kết nối trung gian để 2 thằng bắt tay nhau, bắt tay được rồi thì 2 thằng tự chơi vs nhau nên không cần mở port, đó là kết nối trực tiếp qua IPv6 thôi, ipv4 thì cần firewall hỗ trợ 1 vài thứ nữa như NM-MAP... để bọn nó tự mở port kết nối với nhau, không đc là phải đi qua 1 server derp trung gian, gần nhất là sing hoặc hồng kông, mà khi đi chơi xa như thế là băng thông giảm và ping rất cao.

WG mình mở port tại nhà thì ở client chỉ cần allow ip AllowedIPs = dải ip vpn/24, dải ip lan ở nhà/24 là có thể dùng các thiết bị ở nhà như ngồi trong LAN rồi.
derp tự tạo được mà, hôm qua lúc thông nội bộ VPN/Subnet xong mình tạo derp trên con VPS mua của bác gì ở trên voz này :D
 
derp tự tạo được mà, hôm qua lúc thông nội bộ VPN/Subnet xong mình tạo derp trên con VPS mua của bác gì ở trên voz này :D
phải check xem nó có qua derp hay không, qua thì speed nó còn bao nhiêu nữa
 
gỡ hết cả trên router lẫn điện thoại, máy tính, mua hẳn vps, cài đặt CNAME hẳn hoi mà cài cả Wireguard lẫn tailscale(set exit node = vps) vẫn không kết nối được:LOL:
chả nhẽ khó khăn thế ư
wireguard server trên vps lên github chạy mỗi cái script rồi mở port là xong thôi mà nhở, sao khó khăn thế. tìm cái wg-easy cài trên docker cũng được, có sẵn giao diện web để quản lý client
 
Tôi cũng không hiểu sao OP quá vất vả config wireguard như thế. Nói chung OP đã hài lòng với Tailscale cho nhu cầu của mình thì cứ dùng thôi.

Mà từ hồi có wireguard dùng đã thật, nhà tôi, ông bà già, rồi shop, 4 nơi nối wireguard mesh trực tiếp qua IPv6 để tránh CG-NAT, gói internet bèo nhất 120mbps, chạy trên wireguard cũng đạt tương đương ~120mbps. Coi phim, nghe nhạc, backup thả cửa.
 
không phải đâu, WG là vpn trực tiếp, mình không biết bạn triển khai cài WG ntn chứ dùng docker hay scritp có sẵn là nó phải bật chuyển tiếp gói tin trên SV rồi, còn việc client muốn fw để cho mạng qua tất hay 1 phần là cấu hình ở client. tailscale thì nó dùng kết nối trung gian để 2 thằng bắt tay nhau, bắt tay được rồi thì 2 thằng tự chơi vs nhau nên không cần mở port, đó là kết nối trực tiếp qua IPv6 thôi, ipv4 thì cần firewall hỗ trợ 1 vài thứ nữa như NM-MAP... để bọn nó tự mở port kết nối với nhau, không đc là phải đi qua 1 server derp trung gian, gần nhất là sing hoặc hồng kông, mà khi đi chơi xa như thế là băng thông giảm và ping rất cao.

WG mình mở port tại nhà thì ở client chỉ cần allow ip AllowedIPs = dải ip vpn/24, dải ip lan ở nhà/24 là có thể dùng các thiết bị ở nhà như ngồi trong LAN rồi.

View attachment 2270559
Như ảnh đó, nếu mấy cái gạch đỏ không đc hỗ trợ để bọn nó kết nối trực tiếp với nhau là nó chạy qua trung gian là bọn màu xanh
Bạn có thể chạy luôn derp relay tại VN cho băng thông tốt hơn.
 
Status
Not open for further replies.
Back
Top