Я пытаюсь использовать openfortivpn для подключения. Раньше я использовал клиент Fortinet VPN в MS-Windows - теперь у меня появляются синие экраны каждый раз, когда я пытаюсь его запустить (я загружаю обновленную версию, но хочу настроить ее в Linux по другим причинам).
Инфраструктура, к которой я подключаюсь, имеет множество подсетей, некоторые из которых конфликтуют с моими локальными подсетями. Таким образом, с настройками по умолчанию (--set-routes = 1) он перезаписывает мои локальные маршруты, и ящик отключается от локальной сети. Параметры командной строки, похоже, разрешают все или ничего.
Я смог записать конфигурацию, которая применялась при запуске, и автоматически настроила маршруты. Cherry выбрал соответствующие записи и попытался применить их (после перезапуска VPN с помощью --no-routes, а затем вручную записав 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}
Это может помочь.