Если ваш VPN-шлюз объявляет только маршруты к определенным сетям, openconnect передает эту информацию вашему vpnc-скрипту , устанавливая переменные среды CISCO_SPLIT_INC:
#* CISCO_SPLIT_INC -- number of networks in split-network-list
#* CISCO_SPLIT_INC_%d_ADDR -- network address
#* CISCO_SPLIT_INC_%d_MASK -- subnet mask (for example: 255.255.255.0)
#* CISCO_SPLIT_INC_%d_MASKLEN -- subnet masklen (for example: 24)
В Ubuntu вы можете отредактировать /etc /vpnc /vpnc-script и попробовать переопределить CISCO_SPLIT_INC в пустую строку, чтобы vpnc-script установил tun0 в качестве системного маршрута по умолчанию:
# =========== script (variable) setup ====================================
# >>>INSERT THIS LINE:
CISCO_SPLIT_INC=
PATH=/sbin:/usr/sbin:$PATH
OS="`uname -s`"
Шлюз имеет отдельные настройки для своих разделенных туннелей и для маршрутизации. Возможно, что правила маршрутизации шлюза были установлены только для разрешения трафика, предназначенного для сетей, перечисленных в настройке разделенного туннеля, даже если вы добавляете другие маршруты (или маршрут по умолчанию) на стороне клиента. Вам придется попробовать и посмотреть.
В OpenConnect для Android существует опция профиля для каждого VPN, чтобы переопределить настройку разделенного туннеля. Установите Split Tunnel Mode на «On - DNS использует VPN» и установите Split Tunnel Networks на «0.0.0.0/0». Это эквивалентно изменению vpnc-скрипта в Ubuntu.
Если ничего из этого не работает с использованием существующего шлюза AnyConnect вашей компании, вы можете подумать о создании дешевого VPS и запуске своей собственной частной установки ocserv .