SoftEther VPN 架設記錄

從前小蛙要架設 VPN 都選用最簡單的 pptpd,可參考 透過 pptpd 架設 VPN 這篇,但後來 Mac OSX 跟 iPhone iOS 都把這個協定從系統中拿掉了,之後要架設的時候,開始朝向其他種類的 VPN,像是 OpenVPN、L2TP … 等,但一直都還是拿不定主意要用哪一種,而且 Google 了一堆教學,感覺跟 pptpd 比起來複雜很多 … 後來想到同事之前提過 SoftEther VPN 這一套 Multi-Protocol VPN (維基百科介紹),向他詢問了一些問題之後,決定 ~ 就是他了!

Multi-Protocol VPN 聽起來是不是很威猛呢!至少小蛙是這樣覺得,動一次工就可以有 Multi-Protocol VPN,比安裝得要命卻只有一種 VPN 厲害很多!

一開始的架設上也很不順利,照著 Google 來的好幾篇文章都沒辦法順利完成,後來突然想到同事說過這一套厲害的地方在於,安裝好之後,可以直接 ~ 透過管理介面來設定!這個 … 真的很強大啊!不用再去下一堆指令,直接開始吧!本文參考自 Setting up SoftEther VPN Server on Ubuntu 16.04 Xenial Xerus Linux,記錄下來留做備份並加上自己的一些心得或遇到的問題。

編譯套件

小蛙的環境是 Ubuntu 18.04 LTS 64-bit,搭配安裝的 SoftEther VPN 是 v4.29-9680-rtm 版,上面的文章還有提到一些需求像是 30GB 以上的空間,但小蛙的沒有這麼大空間還是可以裝,另外一點比較重要的是要有 root 權限,那就 ~ 開始吧!

更新套件來源及安裝必須的套件 build-essential

apt-get update
apt-get install build-essential

這邊下載 SoftEther VPN 原始檔,或者也可以直接用小蛙使用的版本,建議自己去下載,可以根據不同的需求調整。

複製下載連結之後,回到系統使用 wget 開始下載,並解壓縮

# 下載 SoftEther VPN 原始檔
wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.29-9680-rtm/softether-vpnserver-v4.29-9680-rtm-2019.02.28-linux-x64-64bit.tar.gz
# 解壓縮
tar xzf softether-vpnserver-v4.29-9680-rtm-2019.02.28-linux-x64-64bit.tar.gz

解壓縮完會得到一個 vpnserver 的資料夾,進入該資料夾並開始編譯

cd vpnserver
make

過程中可能會問你一些授權條款相關的問題,都按 1 或 Y 即可。等他全部跑完,沒有出現錯誤就可以直接啟動了!

調整資料夾、權限、相容性檢查

./vpnserver start

把 vpnserver 資料夾移動到 /usr/local 去放

# 從 vpnserver 資料夾退出一層
cd ..
# 把整個 vpnserver 資料夾移動到 /usr/local/ 下放
mv vpnserver /usr/local/

我們剛解壓縮的時候,可以發現 vpnserver 下面的資料全部都是 777,這邊把權限調整一下

# 進入資料夾
cd /usr/local/vpnserver/
# 把所有檔案設定成只有 owner 可讀寫
chmod 600 *
# vpnserver 及 vpncmd 加上可執行權限
chmod 700 vpnserver
chmod 700 vpncmd

接著做一些系統相容性的檢查

cd /usr/local/vpnserver/
./vpncmd

期間有詢問 1, 2 3 的時候要選 3 Use of VPN Tools,接著輸入 check,系統會開始跑檢查。如果沒有問題的話,繼續將功能設定成服務來用,不然每次要啟動都要進來這資料夾有些不方便,我們可以將 SoftEther VPN 註冊為系統服務,之後就可以直接透過 systemctl 的方式來做啟動跟關閉。

註冊成服務

建立服務檔

vim /lib/systemd/system/vpnserver.service
# 貼上以下內容
[Unit]
Description=SoftEther VPN Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
[Install]
WantedBy=multi-user.target

之後就可以透過 systemctl 來控制了

# 查看狀態
systemctl status vpnserver
# 啟動
systemctl start vpnserver
# 關閉
systemctl stop vpnserver

設定 SoftEther VPN

從這裡開始,大家可以直接去參考 Setting up SoftEther VPN Server on Ubuntu 16.04 Xenial Xerus Linux,接下來小蛙要記錄的是透過 GUI 的方式來進行管理,因為文章裡面不確定是否為版本不同造成的還是有其他因素,小蛙一直沒辦法跟著文章進行設定。幸好可以透過 SoftEther VPN 管理工具來設定!

這邊下載管理工具

開始安裝

安裝完之後,開啟管理介面

新設置 -> 依照自己的環境填入資訊,這裡很棒的是,因為根本還沒設定過密碼,第一次連線軟體會請使用者設定一組密碼,並且帶出相關設定的引導畫面

後面小蛙有點忘記每張圖的順序了,不過可以大概對照一下如果有出現選項要怎麼選(補充:小蛙在架設完之後發現速度很慢,對照之前架的跟這次架的差別,發現在「加密與網路」這個選項中,換成 RC4-MD5 之後速度就比較正常了,如果建好之後發現很慢的話,可以試試看喔)

這邊小蛙把監聽的 port 都關掉只留一個常用的,避免 port 開越多風險越多
一般比較常用的需求就直接選上面的了
這個設定是為了要讓 iphone 或是其他裝置可以連上來的,最下面要填入共享密鑰
小蛙一開始設定完卻連不是,後來才發現沒有啟用 SecureNAT,啟動之後就可以用了
創建一個使用者帳號,驗證類型選密碼驗證

基本上到這邊就已經把 Sever 的部份設定完畢,也建立了一個可以使用 VPN 的使用者了。

20190315 補充
發現 CPU 使用率超高,看到這篇 SoftEther VPN Server 100% CPU 高负载解决方案,照著做把本地網橋關掉之後果然降下來了,留著備查!

4 則留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *