前言
主要是最近因為個人需要,需要從外網連到家中的指定機器內,也剛好前幾個月買了兩台二手 MikroTik RB450G 來玩玩,一台放在宿舍一台放在家中,在此之前完全沒有碰過 MikroTik 或是 WireGuard,所以對我來說都是很陌生的事物。
WireGuard 這個大致的用途和概念到是有聽過,原本有想過使用 Hamachi 或是 ZeroTier 更或者是 Cloudflare Tunnel 來達成,都可以連上我要的 Linux。前兩個主要仰賴外部的服務,以及一定的數量限制,所以就沒有選擇。而後者對於 SSH 連線就變成使用網頁進行,也不是不行,但就變成侷限在 SSH 或是 HTTPS 這類的用途上,用途也太過於侷限。
在當時我把宿舍的網路接上 MikroTik 路由器使用,也就大概了解他有的功能,而 WireGuard 他剛好又獨立一個選項,那我是不是可以靠他內建的功能打造一個屬於我自己的內網,我在外面也可以連到我家中的某些機器,而且似乎我可以架在 MikroTik 上就能直接連線到我家內網內的所有機器,不用每一台機器都安裝。
過程
在這之中有在網路找了一些資料,有些講的其實有點小複雜和不清楚,但只少最後是有完成通了,所以我就打算來寫一篇應該會更簡單的好了!?
1. Mikrotik 端創建 WireGuard 設定
- 點選單的 WireGuard(下圖紅框區)
- 再來點 New(下圖黃框區)
確保目前是位於 WireGuard 的 WireGuard 區域,可以看到 New 上面,有一個 WireGuard 和 Peers。
2. Mikrotik 端配置 WireGuard
點 New 完應該就會出現以下視窗,我們來一個一個看
名稱 | 用途 |
---|---|
Comment | 備註 |
Name | 名稱 |
Listen Port | WireGuard 端口 |
主要設定 Name 即可,Listen Port 預設似乎都是 13231
建議可以修改其他的端口,這將會是之後用戶端連進來的端口。完成後就點 OK。
3. Mikrotik 端複製公私鑰
點完 OK 後再把他點開,就會發現他自動生成公私鑰,我們把公鑰複製起來,待會需要。
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
5. 用戶端 WireGuard 創建
好的,再來打開電腦的 WireGuard。
下載連結:https://www.wireguard.com
- 點左下角新增隧道旁的三角形
- 新增隧道精靈
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 # 可先不管
好的,設置完後,複製電腦這邊的公鑰(紅色框的部分)
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
8. 設定結束
好耶,全部設定完成,現在可以來測試連線,正常連線的話,最下面的流量雙向應該會出現數百K 的流量。
如果沒有,可以確定一下是不是防火牆有擋到,WireGuard 是基於 UDP 協議的。