前言

主要是最近因為個人需要,需要從外網連到家中的指定機器內,也剛好前幾個月買了兩台二手 MikroTik RB450G 來玩玩,一台放在宿舍一台放在家中,在此之前完全沒有碰過 MikroTik 或是 WireGuard,所以對我來說都是很陌生的事物。

WireGuard 這個大致的用途和概念到是有聽過,原本有想過使用 Hamachi 或是 ZeroTier 更或者是 Cloudflare Tunnel 來達成,都可以連上我要的 Linux。前兩個主要仰賴外部的服務,以及一定的數量限制,所以就沒有選擇。而後者對於 SSH 連線就變成使用網頁進行,也不是不行,但就變成侷限在 SSH 或是 HTTPS 這類的用途上,用途也太過於侷限。

在當時我把宿舍的網路接上 MikroTik 路由器使用,也就大概了解他有的功能,而 WireGuard 他剛好又獨立一個選項,那我是不是可以靠他內建的功能打造一個屬於我自己的內網,我在外面也可以連到我家中的某些機器,而且似乎我可以架在 MikroTik 上就能直接連線到我家內網內的所有機器,不用每一台機器都安裝。

過程

在這之中有在網路找了一些資料,有些講的其實有點小複雜和不清楚,但只少最後是有完成通了,所以我就打算來寫一篇應該會更簡單的好了!?

1. Mikrotik 端創建 WireGuard 設定

  1. 點選單的 WireGuard(下圖紅框區)
  2. 再來點 New(下圖黃框區)

確保目前是位於 WireGuard 的 WireGuard 區域,可以看到 New 上面,有一個 WireGuard 和 Peers。

https://fanyue.ee/IMG_ROSWireguard/ROSWireguard1.png

2. Mikrotik 端配置 WireGuard

點 New 完應該就會出現以下視窗,我們來一個一個看

名稱 用途
Comment 備註
Name 名稱
Listen Port WireGuard 端口

主要設定 Name 即可,Listen Port 預設似乎都是 13231 建議可以修改其他的端口,這將會是之後用戶端連進來的端口。完成後就點 OK。

https://fanyue.ee/IMG_ROSWireguard/ROSWireguard2.png

3. Mikrotik 端複製公私鑰

點完 OK 後再把他點開,就會發現他自動生成公私鑰,我們把公鑰複製起來,待會需要。

https://fanyue.ee/IMG_ROSWireguard/ROSWireguard3.png

4. Mikrotik 端配置網段

選單 > IP > Address > New(看下圖應該就懂了)

這邊我們需要填一下設定

名稱 用途
Comment 備註
Address 配置給該介面的網段
Interface 配給哪一個介面

這次範例我以 192,168.9.0/24 這個網段當作 WireGuard 的網段,因此就填入 192,168.9.0/24 可配發 192.168.9.0 ~ 192,168.9.255。

Interface 選剛剛創建的 WireGuard Name

https://fanyue.ee/IMG_ROSWireguard/ROSWireguard8.png

5. 用戶端 WireGuard 創建

好的,再來打開電腦的 WireGuard。

下載連結:https://www.wireguard.com

  1. 點左下角新增隧道旁的三角形
  2. 新增隧道精靈

https://fanyue.ee/IMG_ROSWireguard/ROSWireguard4.png

6. 用戶端 WireGuard 設定

點下後,應該可以看到類似以下圖片的內容,但應該只有

[Interface]
PrivateKey = 私鑰

所以需要設定一下

[Interface]
PrivateKey = # 你的私鑰(不用動)
Address = 192.168.2.9/32 #(這台電腦在 WireGuard 內網上的 IP,這邊範例 192.168.9.2 這組)
DNS = 8.8.8.8 # DNS

[Peer]
PublicKey = # 這邊貼上 MikroTik 端的公鑰
AllowedIPs = 0.0.0.0/0 #(這樣表示所有流量都會經過 WireGuard)
Endpoint = # MikroTik 路由器公網 IP:Port,Port 就是我們第二步驟設定的
PersistentKeepalive = 60 # 可先不管

好的,設置完後,複製電腦這邊的公鑰(紅色框的部分)

https://fanyue.ee/IMG_ROSWireguard/ROSWireguard5.png

7. MikroTik 端 WireGuard Peers 設定

剛剛用戶端那邊設置完,回到 WireGuard 這邊的 Peers 部分,選 New 創建一個設定檔。

名稱 用途
Comment 備註
Interface 配給哪一個介面
Public Key 貼上用戶端的公鑰
Allowed Address 允許的 IP(這邊填入用戶端 Interface 下的 Address,我這邊範例是 192.168.2.9,可以回上一步比對)
Persistent Keepalive 持續保持連接活躍時間(?(可以跟著我設定 00:01:00 表示一小時)

上面表格的都設定完就可以 OK

https://fanyue.ee/IMG_ROSWireguard/ROSWireguard6.png

8. 設定結束

好耶,全部設定完成,現在可以來測試連線,正常連線的話,最下面的流量雙向應該會出現數百K 的流量。

如果沒有,可以確定一下是不是防火牆有擋到,WireGuard 是基於 UDP 協議的。

https://fanyue.ee/IMG_ROSWireguard/ROSWireguard7.png