kiến thức Hướng dẫn tạo VPN Wireguard Mikrotik và kết nối từ Windows dễ nhất

Trong NAT bác thử thêm scrnat cho out-interface là ca wg interface vào trước cái nat wg IP.
Chỗ mangle, thêm rule accept prerouting từ dải wg IP 10.10.10.0/24 đến local IP xem sao
Mình đã thêm như bác chỉ nhưng chưa thấy khác biệt gì :(

1714359938852.png


1714359967068.png


1714360027102.png
 
Mikrotik mình nằm sau modem nhà mạng. Mikrotik cài DHCP client.
Cài Wireguard không thấy báo lỗi gì nhưng không thể access được các thiết bị trong mạng bao gồm cả router Mikrotik. Bác nào từng cấu hình behind a NAT xem giúp mình với.
View attachment 2466643

View attachment 2466644

View attachment 2466645

View attachment 2466646

Trên router nhà mạng bác phải cho forward cổng tới cổng UDP mà WireGuard dùng (cái 13231 bác cấu hình cho wg0), địa chỉ 192.168.1.136 (địa chỉ của MikroTik trong mạng LAN của router nhà mạng).
 
Trên router nhà mạng bác phải cho forward cổng tới cổng UDP mà WireGuard dùng (cái 13231 bác cấu hình cho wg0), địa chỉ 192.168.1.136 (địa chỉ của MikroTik trong mạng LAN của router nhà mạng).
Mình lại không được control modem/router nhà mạng :(
 
Mình lại không được control modem/router nhà mạng :(

Như vậy thì không bắt đầu kết nối theo hướng từ PC -> Router được. Bác có thể thử:

* Nếu có router của hãng (MikroTik) chạy ARM/ARM64 thì có thể dùng tính năng Back-To-Home. Khi này server của MikroTik sẽ làm trung gian, dữ liệu chạy qua nó (nhưng có mã hóa). Hoặc dùng ZeroTier, khi này server của ZeroTier sẽ giúp khởi tạo kết nối và sau đó tùy khả năng NAT hole punching, có thể sẽ nối thẳng được giữa nhà bác và PC và phần lớn dữ liệu không cần chạy qua server của ZeroTier.

* Nếu không dùng đồ hãng (x86/CHR) hoặc router kiểu hEX không dùng ARM thì bác có cách:

- Hoặc thuê VPS rồi cài WG trên đó, cả router lẫn PC đều kết nối vào đó, trong cùng 1 mạng WireGuard.

- Hoặc nếu chỗ PC của bác ngồi bác có khả năng kiểm soát router (tức là bác có khả năng cấu hình router chỗ LAN của PC để port forward tới PC của bác), thì bác có thể tạo kết nối WireGuard theo chiều ngược lại. WG chạy trên PC, bác mở cổng của nó trên firewall của PC, cho router chỗ PC port forward tới PC, rồi ở chỗ router MikroTik, chỗ cấu hình của peer ứng với PC, bác điền địa chỉ (public của mạng chỗ đặt PC) và cổng (đã forward) vào mục Endpoint và Endpoint Port, và đặt Persistent Keepalive 15 giây chẳng hạn. Ngoài ra, nếu phía PC ít online thì bác cũng nên vào phần System -> Logging trên RouterOS, edit cái entry của mục "info" thêm topic "!wireguard" để nó đỡ ghi nhiều phàn nàn quá vào log.

1714366226835.png


Và trên cấu hình peer WG trên PC thì không cần điền mục Endpoint nữa.
 
Last edited:
Mình lại không được control modem/router nhà mạng :(
Ít nhất bạn phải full control đc 1 trong 2 con router. Con nào full control đc thì làm WG server (nếu bị CGNAT thì buộc phải mở port), con kia cắm Mik phía sau firewall làm client. Trong allowed IPs của cả 2 cho WG Interface IP và local IP của nhau vào (VD của mình server là 10.0.0.1/32 + 192.168.1.0/24, Mik client 10.0.0.101/32 + 192.168.101.0/24)
peer trên WG Server
1714382151316.png

peer trên WG client
1714382092458.png

VD dưới là Mik của mình nằm sau firewall tổng
1714381411087.png

Trong mangle, thêm 2 dòng:
  • mark-routing từ local IP đến list IP (WG IP 10.0.0.0/24 và Server IP 192.168.1.0/24) qua WG Interface
  • accept prerouting từ WG IP đến server IP
Mik chạy WG server làm tương tự.
1714381768069.png

Thông 2 chiều client <=> server luôn. Nếu muốn giới hạn chỉ cho một số client đến server hoặc ngược lại, thay toàn dải IP/24 bằng từng IP riêng sẽ cho đi là OK.
 
Last edited:
Ít nhất bạn phải full control đc 1 trong 2 con router. Con nào full control đc thì làm WG server (nếu bị CGNAT thì buộc phải mở port), con kia cắm Mik phía sau firewall làm client. Trong allowed IPs của cả 2 cho WG Interface IP và local IP của nhau vào (VD của mình server là 10.0.0.1/32 + 192.168.1.0/24, Mik client 10.0.0.101/32 + 192.168.101.0/24)
peer trên WG Server
View attachment 2467243
peer trên WG client
View attachment 2467239
VD dưới là Mik của mình nằm sau firewall tổng
View attachment 2467229
Trong mangle, thêm 2 dòng:
  • mark-routing từ local IP đến list IP (WG IP 10.0.0.0/24 và Server IP 192.168.1.0/24) qua WG Interface
  • accept prerouting từ WG IP đến server IP
Mik chạy WG server làm tương tự.
View attachment 2467233
Thông 2 chiều client <=> server luôn. Nếu muốn giới hạn chỉ cho một số client đến server hoặc ngược lại, thay toàn dải IP/24 bằng từng IP riêng sẽ cho đi là OK.
Mình chưa hiểu ý bác lắm.
Mình kéo 1 dây lan từ modem fpt nhà hàng xóm cắm vào port 1 trên Router MIK nhà bố mình. Trên Router MIK nhận dhcp client 192.168.1.XX từ modem FPT.
Mình tạo dải LAN mới 10.0.0.0/24 và nat LAN ra port 1 trên MIK để ra internet.
Tóm lại, router FPT mình không control. Router MIK nhà mình thì mình control hoàn toàn. Tuy nhiên, mình không có nhà nên đang tìm cách kết nối quản lý từ xa.
 
Mình chưa hiểu ý bác lắm.
Mình kéo 1 dây lan từ modem fpt nhà hàng xóm cắm vào port 1 trên Router MIK nhà bố mình. Trên Router MIK nhận dhcp client 192.168.1.XX từ modem FPT.
Mình tạo dải LAN mới 10.0.0.0/24 và nat LAN ra port 1 trên MIK để ra internet.
Tóm lại, router FPT mình không control. Router MIK nhà mình thì mình control hoàn toàn. Tuy nhiên, mình không có nhà nên đang tìm cách kết nối quản lý từ xa.
ah, nếu thế thì chỉ còn zerotier thử xem.
 
Zerotier chỉ support arm/arm64 nên hex không chơi đc món này bác ạ. Thôi để đổi 1 con arm rẻ rẻ xem sao. Cảm ơn bác.
vì em nó chạy trên container nên ngoài arm/arm64, zerotier chạy đc trên x86 nữa. arm mà rẻ (dưới 1 củ) chắc khó kiếm đc em nào ngon, lên tầm 1.5 bác kiếm x86 mà chạy.
 
Last edited:
Mình chưa hiểu ý bác lắm.
Mình kéo 1 dây lan từ modem fpt nhà hàng xóm cắm vào port 1 trên Router MIK nhà bố mình. Trên Router MIK nhận dhcp client 192.168.1.XX từ modem FPT.
Mình tạo dải LAN mới 10.0.0.0/24 và nat LAN ra port 1 trên MIK để ra internet.
Tóm lại, router FPT mình không control. Router MIK nhà mình thì mình control hoàn toàn. Tuy nhiên, mình không có nhà nên đang tìm cách kết nối quản lý từ xa.

Nếu hàng xóm dùng FPT thì nhiều khả năng IPv6 hoạt động (modem router của FPT hỗ trợ IPv6 sẵn). Nếu vậy router MikroTik trên nhà bố bác, bác cho nó nhận địa chỉ IPv6 từ modem của FPT. Cái này là chỉ nhận được 1 địa chỉ duy nhất thôi (qua SLAAC), không phải cả dải prefix như khi router của bác tự quay PPPoE được. Nhưng thế là đủ rồi, địa chỉ này gắn cho cổng WAN của router MikroTik (cổng quay về phía LAN của FPT mà đang có địa chỉ IPv4 192.168.1.136 kia). Với địa chỉ IPv6 này bác truy cập được từ bên ngoài thẳng vào router MikroTik được. Hầu hết điện thoại di động ở VN dùng được IPv6, chạy client WireGuard trên điện thoại là ok. Em giờ cũng nối về WG ở hai đường thuê bao FPT qua IPv6 cả. Router còn lại bác cũng nâng cấp config lên cho hỗ trợ IPv6 nếu chưa bật.
 
Last edited:
View attachment 2468063

mình chạy script xong thì import vào báo lỗi như hình, là sao vậy mấy bác

Bác tạo từ cái trang kia ạ. Có vẻ bác chủ trang đã update chỗ Allowed IPs, với thêm phần add peer vào interface sẵn có rồi 👍. Vấn đề của bác là tên file nó dài quá thôi bác. Bác đổi tên thành xyz.conf rồi import lại là được.
 
Last edited:
Bác tạo từ cái trang kia ạ. Có vẻ bác chủ trang đã update chỗ Allowed IPs, với thêm phần add peer vào interface sẵn có rồi 👍. Vấn đề của bác là tên file nó dài quá thôi bác. Bác đổi tên thành xyz.conf rồi import lại là được.
Mình kết nối dc rồi mà tốc độ kết nối có vẻ chậm .
 
Mình kết nối dc rồi mà tốc độ kết nối có vẻ chậm .

Tầm bao nhiêu hả bác? Cái này phụ thuộc nhiều vào CPU. CPU PC thì không nói làm gì, nhưng nếu đầu kia WG chạy trên router thì thường bị giới hạn tốc độc bởi cái CPU router. Mấy con kiểu hEX tải được 100-200 Mbps thôi, con RB5009 em vừa test thì dùng nó làm 1 đầu peer WireGuard throughput được 1.29Gbps. Nhưng mà con hEX thì cũng ở mức bên dưới của tốc độ CPU rồi, như con hAP ac² em test (qua IPv6, tức là kết nối nằm dưới cái WG không có fasttrack) cũng được trên 300Mbps qua tunnel WG. Nếu tốc độ bác đo được chỉ 2 chữ số Mbps hoặc thấp hơn thì vấn đề chắc không do CPU mà nguyên thường gặp với WG là do MTU.
 
Tầm bao nhiêu hả bác? Cái này phụ thuộc nhiều vào CPU. CPU PC thì không nói làm gì, nhưng nếu đầu kia WG chạy trên router thì thường bị giới hạn tốc độc bởi cái CPU router. Mấy con kiểu hEX tải được 100-200 Mbps thôi, con RB5009 em vừa test thì dùng nó làm 1 đầu peer WireGuard throughput được 1.29Gbps. Nhưng mà con hEX thì cũng ở mức bên dưới của tốc độ CPU rồi, như con hAP ac² em test (qua IPv6, tức là kết nối nằm dưới cái WG không có fasttrack) cũng được trên 300Mbps qua tunnel WG. Nếu tốc độ bác đo được chỉ 2 chữ số Mbps hoặc thấp hơn thì vấn đề chắc không do CPU mà nguyên thường gặp với WG là do MTU.
Mình sài con hap ac2 , mà kết nối tốc độ chập chờn lúc thì chậm ko chạy dc, lúc nhanh thì được 1xx , với lại cho mình hỏi setup xong thì mấy con pc hay nas do con hap ac2 cấp ip qua lan hay wifi thì pc ngoài mạng chỉ cần kết nối với wiredguard thì mình điều khiển đc rồi đúng ko hay pc nội mạng hay nas cần kết nối vào wg trên con hap ac2 nữa vậy b.
 
Mình sài con hap ac2 , mà kết nối tốc độ chập chờn lúc thì chậm ko chạy dc, lúc nhanh thì được 1xx , với lại cho mình hỏi setup xong thì mấy con pc hay nas do con hap ac2 cấp ip qua lan hay wifi thì pc ngoài mạng chỉ cần kết nối với wiredguard thì mình điều khiển đc rồi đúng ko hay pc nội mạng hay nas cần kết nối vào wg trên con hap ac2 nữa vậy b.

Nếu con hAP ac² của bác dùng cấu hình tường lửa dựa trên cấu hình ban đầu của MikroTik, thì bác chỉ cần cho cái interface wireguard vào interface list LAN thôi ạ (cái list có sẵn trong cấu hình của MikroTik)

1714466807028.png


Khi đó các thiết bị từ xa nối qua WG sẽ truy cập được vào các thiết bị trong LAN bình thường (bằng địa chỉ IP trong LAN của các thiết bị). Với điều kiện các thiết bị trong LAN có thiết lập dùng DHCP, hoặc nếu chỉnh tay thì cũng phải đặt router MikroTik làm gateway (thường như vậy sẵn rồi). Các thiết bị nằm trong LAN của hAP ac² không cần nối vào WireGuard. Các thiết bị WG lúc này giống như trong một VLAN riêng với dải địa chỉ riêng, nhưng bình thường router sẽ không chặn traffic giữa subnet này và mạng LAN gốc của cái bridge.

Nếu không nối được thì thường là do trên chain forward của bảng filter tường lửa có rule drop chặn truyền giữa các subnet, và không có ngoại lệ cho phép traffic từ mang của interface WG sang LAN. Khi bác dùng tường lửa của cấu hình mặc định của con hAP thì không phải lo vấn đề này.

Một nguyên nhân nữa là thiết bị bác muốn nối vào chỉ có địa chỉ IP tĩnh và không cấu hình gateway (tức là các thiết bị này thường không vào được internet). Cách khắc phục là hoặc là cấu hình các thiết bị đó lấy router làm gateway, hoặc là thêm rule masquerade như ở post đầu của thread này ghi. Nhưng cố để không phải add rule masquerade thì tốt hơn.

Nếu đường truyền của bác up/down cao hơn 250Mbps mà con hAP ac² của bác làm peer WireGuard chỉ đo được 1xx Mbps thì hơi thấp ạ, em vừa test lại thì nó tải 310 Mbps được ngon, đấy là em còn dùng IPv6

1714467365947.png

Nhưng nếu đường upload của bác tầm 2xx thì WG 1xx cũng bình thường ạ. Ở hình trên bác có thể thấy overhead của WireGuard và PPPoE cộng lại. Cái ether1 là interface nối ra converter đang đạt 355Mbps, đến PPPoE (pppoe-out1) chỉ còn 321 Mbps, và throughput của tunnel bên trong cái WG chỉ còn 310 Mbps, do mỗi 1 tầng tốn thêm vài đến vài chục bytes cho header các loại.

Nhưng nếu kết nối lúc được lúc mất thì bác thử giảm tham số MTU trong cấu hình WireGuard xuống thấp hơn giá trị mặc định 1420 ạ, thí dụ 1400, hay 1380. Trên router là chỉnh ở mục MTU của interface WireGuard, còn trên PC thì ở chỗ cấu hình [Interface] trong cái config bác thêm dòng MTU = 1400 bên dưới ạ. Tuy nhiên bác không nên chỉnh thấp hơn 1280.
 
Last edited:
Endpoint = IP Tĩnh hoặc tênmiền.ddns.com:13231 bác ơi giải thích đoạn này với ah. tênmiền.ddns.com mình lấy ở đâu bác
 
Back
Top