![Как использовать VPN через вручную настроенный сетевой мост (с основным интерфейсом, не управляемым NetworkManager)?](https://rvso.com/image/833375/%D0%9A%D0%B0%D0%BA%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D1%8C%20VPN%20%D1%87%D0%B5%D1%80%D0%B5%D0%B7%20%D0%B2%D1%80%D1%83%D1%87%D0%BD%D1%83%D1%8E%20%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9%20%D1%81%D0%B5%D1%82%D0%B5%D0%B2%D0%BE%D0%B9%20%D0%BC%D0%BE%D1%81%D1%82%20(%D1%81%20%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%BC%20%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81%D0%BE%D0%BC%2C%20%D0%BD%D0%B5%20%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D0%BC%D1%8B%D0%BC%20NetworkManager)%3F.png)
Я настроил сетевой мост, который использую для подключения виртуальных машин KVM на моем рабочем столе к домашней сети; я сделал это вручную, создав мост /etc/network/interfaces
(так, как это делается по инструкции для лучшей производительности сети, и как мы используем на серверах виртуализации нашей компании).
Однако это означает, что NetworkManager больше не управляет интерфейсом eth0 и отказывается устанавливать VPN-подключения.
Это не беспокоило бы меня так сильно, если бы я мог найти приложение для подключения вместо NM. Но, увы, я ничего не нашел! Был какой-то пакет под названием kvpnc
, описанный как GUI для VPN-клиентов, но он постоянно вылетал. Насколько я мог видеть, не было никакой альтернативной рабочей VPN GUI.
У других людей возникают похожие проблемы:сетевой мост - без разрушения сетевого менеджера но этот парень просто вернулся в Нью-Мексико и настроил маршрутизацию вместо моста, вместо того чтобы найти альтернативный VPN-клиент.
Есть идеи?
Редактировать: забыл упомянуть, что в данный момент я использую PPTP и в будущем мне может понадобиться OpenVPN.
решение1
Хорошо, вот как я это сделалвокругпроблема:
1. Удалить сетевой менеджер
sudo apt-get remove network-manager
примечание: прочитайте конец этого поста, чтобы узнать об отказе от ответственности
2. Настройте pptp в командной строке
Мы воспользуемся удобным инструментом, pptpsetup
который настроит все необходимые нам файлы конфигурации.
Бегать:
sudo pptpsetup --create $your-connection --server se.rv.er.ip --username $pptp-username --encrypt
заменять :
- $your-connection с коротким именем для нового соединения
- se.rv.er.ip на IP сервера, к которому вы хотите подключиться
- $pptp-username с именем подключающегося пользователя
Сначала вас попросят ввести пароль sudo, затем pptpsetup попросит вас ввести пароль для PPTP-подключения. Введите его, затем нажмите Enter. Будьте осторожны, не перепутайте их. Это создаст все необходимые файлы конфигурации. Если вы не хотите использовать маршрут по умолчанию, который вам проталкивает сервер, добавьте строку с nodefaultroute
указанием /etc/ppp/peers/$connection-name
.
3. Запуск и остановка соединения вручную
sudo pon your-connection
для подключения и
sudo poff your-connection
отключиться.
4. Если вы хотите автоматически добавлять и удалять пользовательские маршруты:
Создайте два скрипта, например:
(поместите их где-нибудь в вашей домашней папке, /root тоже подойдет, если вы не забыли сделать его резервную копию)
pptp-on.sh:
#!/bin/bash
# This script connects us using pre-configured PPTP VPN,
# and then adds all the routes we specify here.
pon your-connection
a=$?
sleep 5
# add routes
if [ $a == 0 ]; then
# whatever routes you need
route add -net 192.168.1.0 netmask 255.255.255.0 dev ppp0
echo "Connected"
fi
exit $a
pptp-off.sh:
#!/bin/bash
poff your-connection
a=$?
# delete routes
if [ $a == 0 ]; then
#specify whatever routes you have here
route del -net 192.168.1.0 netmask 255.255.255.0 dev ppp0
echo "Disconnected"
fi
exit $a
Они должны принадлежать пользователю root: sudo chown root:root pptp-on.sh pptp-off.sh
. Сделайте их исполняемыми: sudo chmod +x pptp-on.sh pptp-off.sh
Назовите их так, как вам удобно, чтобы вы знали, для чего они нужны.
5. Создание настольных лаунчеров
Я хотел иметь лаунчеры рабочего стола, которые я мог бы просто нажать вместо того, чтобы запускать скрипты вручную каждый раз, когда я подключаюсь и отключаюсь. Для этого я создал два лаунчера рабочего стола, которые запускают gksudo /path/to/pptp-on.sh
и gksudo /path/to/pptp-off.sh
соответственно. Я использовал Marian Lux-esСоздать лаунчердоступно в Центре программного обеспечения Ubuntu. Погуглите, как это сделать, я не буду писать об этом здесь (потому что я ленивый).
Вот и все. Вы можете иметь столько разных подключений, сколько захотите, все они легко включаются и выключаются с помощью лаунчеров. Просто повторите все шаги для каждого дополнительного подключения.
Но будьте осторожны, как уже было сказано, это не исправление, а решение. Исправление будет, когда NM получит встроенную поддержку сетевых мостов, что, если я правильно понял, уже сделано в 13.04. Это просто предназначено для людей вроде меня, которые планируют держаться за 12.04 как можно дольше (я пробовал 12.10, но у него были большие проблемы, такие как несовместимость с моей видеокартой ATI, множество ошибок и т. д.), или по крайней мере до следующего релиза LTS или перехода на новое/более новое оборудование.