Блог Марка Ноулза содержит хорошее объяснение того, как поддерживать постоянное соединение vpnc. Однако, это не работает хорошо для нескольких соединений vpnc (Соединение не работает для меня, все переподключается при одном отключении, ...). Есть ли лучший способ поддерживать несколько соединений vpnc?
1 ответ
Следующие модификации работают хорошо для нескольких профилей:
- Добавьте
Local Port 0
в ваши файлы .conf в /etc /vpnc, если вы этого еще не сделали. Это будет использовать случайные локальные порты и позволит лучше использовать несколько соединений. Для каждого подключения выберите IP-адрес и порт в сети VPN, к которой вы хотите подключиться (и поддерживайте подключение). Для каждого соединения напишите скрипт в /usr /local /bin, который проверяет, что соединение все еще возможно, а если нет, запускает vpnc, например,
EnsureVPNXXX.sh
с#!/bin/bash if ! nc -z -w 2 targetip targetport then /usr/sbin/vpnc-connect connectionprofile.conf fi
Измените сценарий переподключения
/etc/vpnc/reconnect-script
чтобы использовать все эти сценарииEnsureXXX.sh
(делайте их один за другим, поэтому в конце нет&
)#!/bin/bash sleep 30 /usr/local/bin/EnsureVPN1XXX.sh /usr/local/bin/EnsureVPN2XXX.sh ...
- Сценарий
/etc/init.d/vpnc
практически такой же, за исключением того, что вам больше не нужно/etc/default/vpnc
Не забывайте, что скрипты должны быть исполняемыми. Пока вы вызываете их из root, эти скрипты очень хорошо работают в любых автоматизированных заданиях cron, например, перед тем, как вызывать scp
или rdesktop
для любого блока в сети vpn, просто сделайте довольно EnsureVPNxxx.sh
. Вы всегда можете выйти из root с помощью команды su -u yourusername command
. И использовать crontab root, очевидно.