Linux включить vpn через консоль

Обновлено: 03.07.2024

Когда-то я писал пост про "правильную настройку VPN соединения по так называемому Gentoo way". Несмотря на то, что на пост было множество несогласных с моим мнением отзывов(кстати, набравшись опыта я сейчас понимаю что сделал бы тоже несколько по другому. Каюсь, грешен), эта тема как оказалось очень актуальна и востребована. Мне до сих пор приходят на email различные вопросы связанные с настройкой VPN соединения на сервере - т.е. без графической оболочки и утилит. В этом посте я постараюсь как можно более подробно описать данный процесс.

Итак приступим.
Для начала требуется установить нужный пакет. В deb based дистрибутивах он называется pptp-linux:

В других дистрибутивах пакет может называться по другому, однако в названии вероятнее всего есть "pptp". Так что, можно поискать по названию, почитать описание и установить.

Следующее что нам нужно сделать, это отредактировать параметры для подключения. Откроем файл /etc/ppp/options.pptp:

И приведём примерно к такому виду:

По порядку что и для чего:

Теперь создадим файл с параметрами подключения:

И добавим туда следующее:

ПараметрНазначение
lcp-echo-intervalинтервал с которым опрашиваем удалённый сервер
lcp-echo-failureколичество не отвеченных запросов от сервера, по прошествии которых считаем что мы отключены
maxfail 0всегда пытаться подключиться если отсутствует связь
defaultrouteпосле подключения, добавляет маршрут по умолчанию через созданный туннель.
ptyсоздаём канал для связи с сервером. (подробнее man pptp)
nameлогин
remotenameустанавливаем "имя предполагаемой" удалённой системы для аутентификации
linknameустанавливает логическое имя канала. В данном случае нам нужно для удобного "роутинга"
fileуказываем где находится файл с параметрами подключения

И добавим логин\пароль подключения:

Вместо login надо подставить логин и вместо password пароль соответственно.

Для подключения используется команда pon.

Например в нашем случае:

Для отключения poff:

Чтобы посмотреть состояние подключения plog:

У большинства провайдеров в локальной сети так же находятся внутренние ресурсы и многие наверняка захотят иметь к ним доступ при включенном VPN соединении. Для этого надо прописать маршруты. Т.е. грубо говоря, нам нужно задать правила для определённого диапазона адресов, чтобы трафик шёл не через наш внешний канал, а через внутреннюю сеть. Для этого нужно узнать шлюз который используется в локальной сети. Выполним следующую небольшую команду:

Важно: выполнять нужно обязательно нужно при отключенном VPN соединении. В противном случае мы получим шлюз PPTP туннеля.
Будет что-то вроде:

10.7.131.11 и будет шлюз. Теперь создадим файл /etc/ppp/ip-up.d/vpn

И добавим в него небольшой скрипт:

Дадим права на исполнение:

Так же при отключении было бы не плохо их удалять. Если не удалять их, конечно, ничего страшного произойти не должно, однако никогда не знаешь что потребуется сделать потом, и про них можно случайно забыть. Вот дабы такого не происходило, желательно их удалять.
Создадим файл /etc/ppp/ip-down.d/vpn

И туда тоже добавим небольшой скрипт:

Так же дадим права на исполнение:

Теперь остался последний штрих: подключать VPN соединение при загрузке ПК. Для этого откроем /etc/network/interfaces:

Я пытаюсь создать VPN-соединение для моего компьютера с Ubuntu Server. У меня есть доступ только через сессию терминала SSH.

Я видел много статей, подробно описывающих, как подключиться к существующему соединению, но ни одного о создании нового соединения.

Я использую Ubuntu Server 12.x

Я полагаю, вы хотите установить VPN-сервер на свою машину, верно? Я так не думаю (если я не недоразумение). Я хочу, чтобы мой сервер подключался к VPN, а не был VPN-сервером SSH действительно мощный. Вы можете подключиться, используя $ ssh -X <host> -u <user>. Таким образом, у вас будет соединение с переадресацией X, поэтому вы сможете использовать приложения X с удаленной машины. Это может быть полезно, если вам удобнее использовать X, чем обычную консоль. другой вариант - использовать shadowsocks + proxychains вместо VPN

Поскольку я не понимаю, что именно нужно делать, позвольте мне объяснить, как работает VPN:

Чтобы иметь VPN, вам нужен VPN-сервер (к которому вы подключаетесь) и VPN-клиент (машина, которую вы используете для подключения к серверу). Вы не можете создать соединение без VPN-сервера. У нас есть 3 возможности здесь:

Вы хотите, чтобы ваш сервер подключался к другому (VPN-сервер). В этом случае вам нужен клиент, и, поскольку существуют разные типы VPN, вам необходимо следовать инструкциям администратора VPN-сервера.

Вы хотите подключиться к вашему серверу с другого компьютера (вероятно, с вашего локального компьютера), и в этом случае вам необходимо установить VPN-сервер на вашем сервере и клиент на вашем компьютере. Для этого я использую OpenVPN уже много лет, и он очень хорошо работает с клиентами Windows и Ubuntu.

Вы хотите подключить обе машины к хост-серверу VPN от стороннего производителя, и в этом случае, поскольку существует много разных типов VPN, необходимо следовать инструкциям администратора стороннего производителя.

Обновление PPTP:

Для клиента PPTP через командную строку вы можете использовать клиент pptp-linux:

sudo apt-get install pptp-linux

Есть много учебников о том, как его настроить:

Отредактировано после комментариев от OP: Сайт помощи сообщества Ubuntu сработал.

Другие доступны как клиент PPTP Linux . Учебник предназначен для клиента командной строки или клиента с графическим интерфейсом, поэтому устанавливайте только, pptp-linux а не network-manager-pptp

Инструкции на сайте pptp-linux для Debian также подробно описаны для командной строки и должны без проблем работать в Ubuntu.

Можно ли прям из баша, не используя дополнительного ПО, с помощью ввода команд подключить к тунелю?


ToaDron ★ ( 17.05.16 10:34:50 )
Последнее исправление: ToaDron 17.05.16 10:35:16 (всего исправлений: 1)


openvpn софт который надо инсталить(если я не ошибаюсь), я имел ввиду можно ли просто что то типа rasdial из винды заюзать из командной строки?


Можно ли прям из баша, не используя дополнительного ПО

Нет. Клиент VPN потребуется в любом случае. Конкретный софт можно подсказать только после того, как будет озвучено что за vpn используется. Некоторые дистрибутивы из коробки оснащаются некоторыми клиентами vpn.

alozovskoy ★★★★★ ( 17.05.16 10:44:33 )
Последнее исправление: alozovskoy 17.05.16 10:46:21 (всего исправлений: 1)


К какому тунелю ?
В чем проблема инсталлить ?


Является ли баш впн-клиентом? Нет, не является.


а можно ли как то скриптом реализовать установку того же впн клиента с последующим подключением?



Можно. Что за vpn то?


в конечном итоге клиент vpn нужен собственный, сложно ли реализовать собственный vpn клиент как решение?


Просто составляешь .ovpn файлик с нужными параметрами и указываешь его как агрумент при вызове openvpn.


задача следующая, не используя сторонний софт подключиться к тунелю, неважно какому



извини, пожалуйста, сервер будет дописываться из опенсорса, пока с меня спрашивают скрипт который без постороннего софта сможет подключиться к любому существующему впн тунелю


Сэр вы дурак
Пройдите на винфак.

Тынель ему. Под Ла-Маншем сойдёт?


даже к тем что работают по закрытым протоколам и всякие решения хардварного типа?


Неважно как и куда с каким ключом.
Есть решение в одну строку на баше:
echo vpn-connection established.



mos прав по поводу меня, наверное. Но я нуб.


А зачем спрашивают у вантузоеда который в предметной области ни белмеса не петрит? А вопрошающие такие же эксперты?
Дописанный опенсурс потом будет продаваться как ТРУъ рашн нано ПО?


Прекрасное решение коллега.


ес-сно тру по. Я в общем хотел уточнить, насколько трудоемко написание впн клиента


к любому существующему впн тунелю


ssh умеет L2/L3 туннели делать


расскажи что тебе надо.


вангую, что зряплату.


ssh софт надо устанавливать ))


ppp софт надо устанавливать )))

угу, еще компьютер надо включить, а то не заработает :)

//в любой нормальной системе pppd входит в базовый набор пакетов.


та я уже боюсь отвечать, опять дурак и т.д.


ну что ты сразу с козырей заходишь


Стоит задача создать впн клиент, нужен хотя бы алгоритм написания.


т.е. тебе надо настроить впн-клиент.
на большинсве линуксов уже есть впн-клиент (если нет, то установка проходит в два клика)
дальше гугл и поиск гайдов.

Чего-то все забыли про варианты типа:
ip tunnel add $IF_NAME mode sit remote $IP_REMOTE local $IP_LOCAL ttl 255
Тоже тунель, и работать будет из каробки с большей вероятностью чем ipsec/openvpn/pptp/etc ))))


ну ему же надо *любой* впн чтобы поддерживался =)


открываешь vim, нажимаешь кнопки на клавиатуре, <esc>:wq

открываешь vim, нажимаешь кнопки на клавиатуре, <esc>:wq

Судя по запросам ТС он у него только побибикает и все испортит :) А выйдет он из него разве что по reset :)

Мне кажется, что весь вопрос в обходе блокировок ресурсов провайдером.


какой free vpn client можно использовать для того что бы подключиться к ipsec Тунелю?

В большинстве случаев VPN соединение настраивается по туннельному протоколу L2TP.

Поддержки VPN соединения с протоколом L2TP/IPSec в системе Linux по умолчанию нет. Я использую в качестве основной системы Debian 10 и у меня его нет.

список возможных соединений debian 10

В операционных системах windows данный протокол есть по умолчанию. Как там происходит процесс настройки вы можете узнать из этой статьи, опубликованной ранее.

Посмотрев дистрибутив Linux mint и Ubuntu оказалось, что и там нет необходимых протоколов.

Так как все эти системы основаны на Debian, решение данного вопроса будет одинаковым на всех системах.

Далее я опишу процесс настройки VPN протоколу L2TP в системе Debina 10.

Для начала нам нужно установить необходимые пакеты, которые обеспечат поддержку необходимых нам протоколов.

Необходимые пакеты L2TP для VPN соединения есть в репозиториях Debian 10, поэтому просто ставим их при помощи менеджера пакетов Synaptic.

Открываем менеджер и в поиске пишем L2TP.

после поиска отмечаем для установки два пакета

vpn network-manager-l2tp выбор пакетов

Отмечаем нужные пакеты для установки

vpn network-manager-l2tp установка пакетов

В результате выделится зеленым три пакета, для установки.

Со всем соглашаемся и нажимаем применить, дожидаемся окончания установки.

Устанавливаем пакеты для L2tp в терминале

Так же можно все эти пакеты установить командами в терминале, открываем терминал и последовательно выполняем команды

Обновляем список пакетов

Устанавливаем пакет network-manager-l2tp

Устанавливаем пакет network-manager-l2tp-gnome

vpn l2tp установка пакетов из терминала
vpn l2tp установка пакетов из терминала

Настраиваем само подключение по протоколу L2TP

После установки всех необходимых пакетов нам остается только выбрать необходимый способ подключения в окне сетевых соединений.

vpn l2tp настраиваем соединение

Далее все заполняем согласно вашим данным, все данные по подключению вам должен предоставить администратор.

Перед тем как ввести пароль выберите способ его хранения, вводить каждый раз или запомнить его раз и навсегда.

настраиваем соединение

Не забудьте указать PSK ключ для подключения, ниже показано где его ввести

настраиваем соединение

После ввода всех данных, сохраняете настроенное соединение и можете выбрать его по клику левой кнопки мыши в трее

Читайте также: