openfortivpn 殺死了我的路線
我正在嘗試使用 openfortivpn 進行連接。以前我一直在 MS-Windows 上使用 Fortinet VPN 客戶端 - 現在每次嘗試啟動它時都會出現藍屏(我正在下載升級版本,但出於其他原因想在 Linux 上配置它)。
我連接的基礎設施有很多子網,其中一些與我的本地子網衝突。因此,使用預設設置 (–set-routes=1) 它會覆蓋我的本地路由,並且盒子會斷開與本地網路的連接。命令行選項似乎只允許一切或不允許。
我能夠擷取啟動時正在應用的配置並自動配置路由。Cherry 選擇相關條目並嘗試應用它們(在使用 –no-routes 重新啟動 VPN,然後手動記錄 IP 地址後)導致連接正常。
ip route add to 10.0.99.0/255.255.255.0 via 10.220.136.94 dev ppp0
但是每次連接時本地地址都會改變;我不能將其用作腳本中的文字值。
我如何編寫腳本讓它自動發生?
openfortivpn的手冊頁提到了一些控制路由的環境變數——但是輸入
"VPN_ROUTE_GATEWAY" openfortivpn
進入 Google 只是給了我指向 openfortivpn 原始碼的連結(而且我對 C 的了解太生疏了,無法對其進行逆向工程)。
事實證明,可以使用 ip-up 腳本自動執行該技巧,我仍在努力使其工作。
答案是:您可以創建一個“ip-up”文件並使用 –ppp-ipparam 進行路由:
只需將以下文件添加到您的
/etc/ppp/ip-up.d/yourendpointname
:-你可以隨便叫它 -
#!/bin/sh -e if [ "$PPP_IPPARAM" = "yourendpointname" ]; then /sbin/ip r add 10.0.99.0/24 via $PPP_LOCAL fi
在這裡,
"yourendpointname"
應該匹配--ppp-ipparam
您要在 openfortivpn 呼叫中使用的參數。chmod 755 這個文件然後
--ppp-ipparam=yourendpointname
在呼叫 openfortivpn 時使用。以下(以前的)答案有些複雜:
順便說一句,您可以使用以下腳本獲取 VPN 網關並添加一些路由:
# Print routes, get ppp0 route link, get gateway ip into $GW GW=$(ip r|grep ppp0|grep link|sed -e 's/.* link src \(.*\)$/\1/g') # Use $GW variable as gateway for your new routes ip r add 10.0.99.0/24 via ${GW}
這可能會有所幫助。