#networking #ubuntu #vpn #dispatcher
#сеть #ubuntu #vpn #диспетчер
Вопрос:
Ubuntu 10.10 64bit athalon, gnome
Мой базовый сценарий заключается в том, что я подключаюсь к VPN-сервису (через протокол newtworkmanager pptp) и передаю личные данные (следовательно, VPN). Служба периодически отключается, и это нормально, вероятно, из-за моего интернет-провайдера / OS / VPN. Что не очень хорошо, так это то, что мои приложения будут продолжать передавать данные по маршруту eth0 по умолчанию, и это не круто. После некоторого осмотра я подозреваю, что лучший способ справиться с этим — опубликовать скрипты в /etc/NetworkManager / dispatcher.d. Короче говоря, служба networkmanager будет выполнять скрипты в этом каталоге (и передавать аргументы скриптам), когда что-либо в сети изменится.
Моя проблема в том, что я не могу запустить ни один из своих скриптов. Согласно справочной странице, все они имеют разрешения 0755 и принадлежат root, но когда я изменяю состояние сети, отключая кабель ethernet, мои скрипты не выполняются. Я могу выполнить их из командной строки, но не автоматически через диспетчер….
пример сценария:
#!/bin/sh -e
exec /usr/bin/wmctrl -c qBittorrent
exit 0
Этот скрипт намеренно прост для целей тестирования..
Я могу опубликовать все, что еще было бы полезно.
Комментарии:
1. Возможно, вам больше повезет с askubuntu.com или serverfault.com — обычно IP-адреса на другой стороне VPN не маршрутизируются глобально , так что это достаточно уникальная ситуация, когда пакеты могут перенаправляться туда независимо от того, подключена VPN или нет. Можете ли вы добавить брандмауэр на удаленном конце, чтобы отбрасывать соединения, не выполненные через VPN?
2. рассмотрим это, хотя размещение скриптов локально кажется простым..
Ответ №1:
я использую синтаксис killall -9 any_application_name_here
, и это работает просто отлично. Я полагаю, что у скрипта не было доступа к двоичному файлу wmctrl. Я думаю, что интерпретатор bash в этом случае будет выполнять только двоичные файлы bash.
Итак, в двух словах, если вы хотите управлять своим VPN-трафиком на основе сетевых событий, один из способов — размещать скрипты в /etc/NetworkManager/dispatcher.d
и использовать двоичные файлы, которые находятся в пути bash по умолчанию.