Skip to content

Instantly share code, notes, and snippets.

@trollknurr
Last active February 19, 2024 14:12
Show Gist options
  • Save trollknurr/ef8a49a5a35e95e17635 to your computer and use it in GitHub Desktop.
Save trollknurr/ef8a49a5a35e95e17635 to your computer and use it in GitHub Desktop.
openconnect vpn split routing sh script
#!/bin/sh
# Add one IP to the list of split tunnel
add_ip ()
{
export CISCO_SPLIT_INC_${CISCO_SPLIT_INC}_ADDR=$1
export CISCO_SPLIT_INC_${CISCO_SPLIT_INC}_MASK=255.255.255.255
export CISCO_SPLIT_INC_${CISCO_SPLIT_INC}_MASKLEN=32
export CISCO_SPLIT_INC=$(($CISCO_SPLIT_INC + 1))
}
# Initialize empty split tunnel list
export CISCO_SPLIT_INC=0
# Delete DNS info provided by VPN server to use internet DNS
# Comment following line to use DNS beyond VPN tunnel
unset INTERNAL_IP4_DNS
# List of IPs beyond VPN tunnel
add_ip *.*.*.*
# Execute default script
. /etc/vpnc/vpnc-script
# End of script
@trollknurr
Copy link
Author

Как не потерять интернет и при этом продолжать ходить через VPN на конкретные сайты

1. Подготовка

Соберитe ip адреса всех ресурсов, которые находятся за VPN и которыми вы хотите пользоваться. Для linux можно воспользоваться командой:

dig +short test.example.com

Внесите список этих ресурсов в свой hosts файл. (иначе придется ходить по ip)

2. Скриптинг

Создайте новый файл рядом с вашим существующем скриптом подключения к vpn. По умолчания это vpnc-script который лежит в папке /etc/vpnc/.

Скопируйте в него приведенный выше скрипт и замените

add_ip *.*.*.*

на список нужных вам ip адресов. Например:

add_ip 192.168.1.1

Проверьте, что последняя строчка

. /etc/vpnc/vpnc-script

ведет к вашему обычному скрипту, с которым вы поделючаетесь к vpn.

Дайте файлу необходимые права на исполнение:

chmod 755 имя_файла

3. Запускаем

Запускайте openconnect с параметром -s путь/до/созданного/файла.

4. Creditans

Этот гист составлен на основе замечательного туториала для openvpn. Большое спасибо его автору!

@RafRaf
Copy link

RafRaf commented Mar 12, 2015

Для макоюзеров - как поставить openconnect
http://zanshin.net/2013/08/27/setup-openconnect-for-mac-os-x-lion/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment