只要先設定好 /etc/openfortivpn/aifed.conf 檔案,再下兩個命令,不但可以連上 Fortinet VPN Server,還可以作到在 Fortinet VPN Server 下的機器網路,和外部網站網路 進行分流。
先連線: sudo openfortivpn -c /etc/openfortivpn/aifed.conf &
再分流: sudo ip route add 192.168.100.0/24 via 169.254.2.1 dev ppp0
最近幫忙跑個專案,有部主機藏在 Fortinet 架構下,若要連線該主機,要先連上 fortinet 的 VPN Server, 然後才能跳進去該主機。而要連上 fortinet 的 vpn server,則要利用 Fortinet 提供的 VPN 連線軟體,才能連得進去。
對於架構,我沒有意見,專案夥伴也有提供連線工具(For MS Windows) 讓我可以連上 VPN Server,也非常好,對此,我非常感激。
但是,這對我的作業環境(Linux Desktop)確實不太方便,而這僅是我個人問題,所以,就自己動手解決了一下!
- 方案一:連線到官方網站,下載官方專屬連線軟體。
- 方案二:利用社群大家針對 Fortinet 開發的連線軟體,其實不難,速度也很快。
- 先安裝必要套件:
- 文字介面:
- 圖形介面:系統設定 –> 網路 –> 連線
- 特別注意
- 進階:改善方案二,利用「文字介面」連線的缺點
- 每次都要打很多字。
- 若有敏感資訊,容易外洩。
- 更動不方便。
- 密碼若有特殊字元,例如:(, ), 等等字元,便不好直接輸入,需要有跳脫字元來處理。
- 修正:連上 VPN Server 後,讓 VPN Server 下主機 一般網站 網路流量 分流,以改善網速。
- 標準作法(建議)
- 迂迴作法
- 先固定 VPN 伺服器走實體網卡進出(此處為筆電無線 WiFi 網卡)
- 192.168.100.100 永遠走實體網卡(此為筆電無線網卡),不走 ppp0
- Wifi gateway : 192.168.3.1
- 再加內網路由
- 192.168.100.100 –> WiFi(強迫走這條路)
- 192.168.100.0/24 –> ppp0
這是最理想狀態,但是,要下載該軟體,還要提供一些資訊,其中「公司」的 email 我就提供不出來。
所以,方案一,失敗!
sudo apt install openfortivpn \
network-manager-fortisslvpn \ ## 我使用 KDE 環境,所以必裝
network-manager-fortisslvpn-gnome ## gnome 環境用,選配
套件安裝好後,可以思考連線方式。
連線有兩種方式,一是直接文字介面下命令,直接了當,這很符合我的愛好。另一是使用圖形介面,也很符合我懶惰個性。
假設大前提如下:
VPN Server ip: 192.168.100.100
連接埠為 10001
使用者帳號為 vpn_user01
密碼為 @@123456@@
先執行:
sudo openfortivpn 192.168.100.100:10001 --username=vpn_user01 --password=@@123456@@
然後,會因為缺少信任憑證,所以會吐出許多錯誤訊息,此時,就吐出來的錯誤訊息中去尋找類似以下的訊息:
ERROR: --trusted-cert a31232ac1f00251695e7af8caaea65@$#@$@$%#$^%$^#%^#%$^$%&^#^$%^#^#
這一串訊息,便是系統針對自己主機所生出來的信任憑證,就是連線所需要的關鍵訊息,記得要保存起來。
再執行一次,但是把信任憑證訊息加進去:
sudo openfortivpn 192.168.100.100:10001 --username=vpn_user01 --password=@@123456@@ --trusted-cert a31232ac1f00251695e7af8caaea65@$#@$@$%#$^%$^#%^#%$^$%&^#^$%^#^#
設定完成後,直接按「連線」,便可以連 Fortinet VPN Server!

連上 VPN Server 後,手頭上正在作業機器的網路,會全部被導到 VPN Server去,原先已經連上的網站可能會因此斷線,或是速度奇慢無比,因此,若非必要,還是不要連上該 VPN Server。
利用「文字介面」直接連上去,簡單,直接,有效,是他的優點。
但是,缺點有以下:
如何改善缺點?
在 /etc/openfortivpn/ 目錄下,寫個文字參數檔,便可解決。
例如,在 /etc/openfortivpn/ 目錄下,寫個 aifed.conf 為例
### configuration file for openfortivpn, see man openfortivpn(1) ###
host = 192.168.100.100
port = 11111
username = vpn_user01
password = @@123456@@
trusted-cert = a31232ac1f00251695e7af8caaea65@$#@$@$%#$^%$^#%^#%$^$%&^#^$%^#^#
set-dns = 0
set-routes = 0
要連線時,命令只要下
sudo openfortivpn -c /etc/openfortivpn/aifed.conf
就可以了!
而且,若有不同的 VPN Server,也可以針對個別不同的 VPN Server 進行設定與連線。
sudo ip route add 192.168.100.0/24 via 169.254.2.1 dev ppp0
註: 169.254.2.1 是 VPN Server 遠端IP
sudo ip route add 192.168.100.100 via 192.168.3.1 dev wlp0s20f3
註:
sudo ip route add 192.168.100.0/24 dev ppp0
以上兩個動作目的:
總結
- 設定好 /etc/openfortivpn/aifed.conf 檔案。
- 先連線:sudo openfortivpn -c /etc/openfortivpn/aifed.conf
- 再分流:sudo ip route add 192.168.100.0/24 via 169.254.2.1 dev ppp0




