​

之前寫過兩篇介紹在樹莓派搭 IKEv2 VPN Server,以及按需連線(On Demand)的文章

當時很多人跟我說步驟太多太複雜,其中一個步驟搞錯就搭不起來

最近我新入手一台 Intel i5 mini PC,主要想把群暉 NAS 上面很多在跑的軟體都移轉過去,順手整理一下內部網路環境

因為我發現我給群暉 NAS 太多工作,他有點不是很開心,速度越來越慢了。。。

​

然後我看了一看之前文章,我自己也覺得很繁瑣,就乾脆重新用 Docker 來搭建 VPN Server 🤣

當初會用原生來搭建是因為擔心樹莓派用 Docker 模擬的方法效能不足。。

​

搜尋一下 Docker Hub 相關資源,找到一個不錯的版本

只要兩行指令就能搭好 IKEv2 VPN Server 與 On Demand 的 iOS / macOS 描述檔,非常方便!

原始程式網站在這: https://github.com/billimek/ikev2-vpn-server

​

不過在開始前,要先製作一個 strongswan.conf 的設定檔

因為作者 Docker 映像檔裡面塞了一個國外的 DNS Server,我們在台灣使用的話速度超慢

所以我們要另外做一個設定檔,把它換成 CloudFlare 跟 Google 的 DNS 速度就會快上許多

​

當然你也可以改成你自己的,甚至是你自己搭的 AdGuard Home or PiHole 廣告阻擋器

​

# SSH 登入到你要安裝的主機中
$ ssh username@IP
# 建立一個設定檔
$ nano ~/strongswan.conf

​

複製貼上以下內容:

charon {
  load_modular = yes
  plugins {
    include strongswan.d/charon/*.conf
    attr {
    dns = 1.1.1.2, 8.8.8.8
    }
  }
}
include strongswan.d/*.conf

然後保存退出

​

接著複製以下指令(需替換成你的設定),直接執行就能順利跑一個 IKEv2 VPN Server

$ docker run --cap-add=NET_ADMIN -d --name vpn-server --restart=always \
-p 500:500/udp -p 4500:4500/udp \
-v ~/strongswan.conf:/etc/strongswan.conf \
-e "HOST=你的域名或者 IP" -e "HOSTNAME=你主機名" \
-e "EXCLUDE_SSID=你的 SSID" \
billimek/ikev2-vpn-server

​

其中「你的 SSID」要輸入你家中或者公司的 WiFi SSID,只要遇到這些 SSID,系統就會自動把 VPN 斷線

連到其他名稱的 WiFi 包含在行動網路時都會自動連回 VPN

​

接下來我們需要讓 Docker 內這個 VPN 容器製作一個 iOS /macOS 的描述檔

作者也已經把這腳本放進去容器了,我們只要執行下面指定即可自動產生一個可以在 iOS / macOS 上面安裝的描述檔

docker exec -it vpn-server generate-mobileconfig > ikev2-vpn.mobileconfig

​

以上 .mobileconfig 描述檔完成後你可以使用 scp、ftp 或者其他方法把檔案傳輸到你電腦上面

弄到電腦上以後你可以發 email 給自己 iOS 設備,或者是用 AirDrop 直接丟給 iOS 設備都可以

丟到 iOS 上面之後,會跳出一個視窗,告訴你要去設定裡面找出來安裝

​

​

在「設定」、「一般」裡面就會看見「描述檔」,點進去就會看見剛剛丟過來的檔案

​

如果你 iOS 有設定密碼的話,這邊會跳出讓你輸入密碼的提醒,注意!是平常 iOS 解鎖的密碼,不是你 Apple ID 或者其他的

​

接下來會有一段警告,但不用管他,這是自己架的伺服器,沒什麼好擔心的,直接點右上角的「安裝」即可

​

Docker 真是一個偉大的發明!

把以前要花 30 分鐘來回測試繁瑣的操作過程簡化到變成幾行指令就搞定。。