Вопрос или проблема
У меня есть VPN, который работает, когда я подключаюсь через Windows с использованием L2TP, однако, когда я настраиваю Ubuntu через CLI, он не работает. Я получаю следующую ошибку, когда запускаю
$ nmcli c up myvpn
Вывод ошибки
Error: Connection activation failed: Could not find source connection.
Что я пробовал
-
отключил брандмауэр
sudo ufw disable
-
создал конфигурацию VPN с помощью
nmcli connection add connection.id myvpn con-name myvpn type VPN vpn-type l2tp ifname -- connection.autoconnect no ipv4.method auto vpn.data "gateway = x.x.x.x, ipsec-enabled = yes, ipsec-psk = 0s"$(base64 <<<'psk***psk' | rev | cut -c2- | rev)"=, mru = 1400, mtu = 1400, password-flags = 0, refuse-chap = yes, refuse-mschap = yes, refuse-pap = yes, require-mppe = yes, user = username" vpn.secrets password=mypassword
- NetworkManager управляет следующими интерфейсами
user@ubunut:~# nmcli device status
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected eth0
docker0 bridge connected docker0
lo loopback unmanaged --
- список всех соединений NM:
nmcli con
NAME UUID TYPE DEVICE
docker0 ef3eb3a8-c46e-434c-bfcb bridge docker0
eth0 fc920355-d18e-495a-b3ca ethernet eth0
myvpn 2b24ce55-98d3-4bc0-8b52 vpn --
Ifupdown (eth0) 681b428f-beaf-8932-dce4 ethernet --
Я всё ещё не могу подключиться, и я в тупике. Я не знаю, что ещё сделать, чтобы это заработало. Есть ли у кого-нибудь идеи, в чём может быть проблема?
использование nmcli :
- список всех соединений NM:
nmcli con
- подключение VPN:
nmcli con up id myvpn
- отключение VPN:
nmcli con down id myvpn
Где myvpn — это фактическое название VPN-соединения, как указано в выводе nmcli con.
Используйте nmcli con reload
каждый раз, когда создается или редактируется новый файл профиля VPN-соединения (обычно расположенный в /etc/NetworkManager/system-connections/), чтобы NetworkManager заметил изменения. Хотя это может не требоваться при использовании nmcli con add
Вы использовали nmcli con up myvpn
вместо nmcli con up id myvpn
, первое требует UUID VPN-соединения.
Для упрощения можно использовать открытый текст PSK вместо base64, начинающийся с 0s
.
Сообщение об ошибке Could not find source connection
предполагает, что вы настроили определенное соединение NetworkManager, которое будет использоваться в качестве основы для VPN-соединения, и это соединение не может быть найдено.
Если вы настроили VPN-соединение с помощью:
nmcli connection add [...] ifname -- [...]
то часть ifname --
вероятно неверна: если вы хотите использовать VPN без ограничения сетевых интерфейсов, которые может использовать VPN, просто исключите часть ifname --
полностью. Если вы хотите использовать VPN только с конкретным сетевым интерфейсом, то здесь можно указать, например, ifname eth0
.
.
Ответ или решение
Вам необходимо решить проблему с подключением к VPN L2TP на Ubuntu 18.04 через командную строку. Ошибка, с которой вы столкнулись, выглядит так:
"Ошибка: Не удалось активировать соединение: Не удалось найти исходное соединение."
Теоретическая часть
Эта ошибка указывает на проблему в конфигурации VPN, обычно связанную с неправильной настройкой сетевого интерфейса или недопущенной конфигурацией соединения. Основной инструмент для настройки и управления соединениями в Ubuntu — NetworkManager и его командный интерфейс nmcli
.
Некоторые распространённые причины проблемы:
- Неправильные конфигурации сетевого интерфейса (
ifname
). - Ошибки в параметрах VPN, таких как неправильный предварительный общий ключ (pre-shared key, PSK) или другие параметры.
- Неактивное или неправильно сконфигурированное соединение, требующее перезагрузки конфигурации NetworkManager.
Пример
Сценарий создания и активации L2TP подключения на Ubuntu может выглядеть следующим образом:
- Создание VPN-соединения с указанием необходимых параметров.
- Убедитесь, что используете правильные команды и синтаксис
nmcli
, а также верные параметры VPN. - Убедитесь, что NetworkManager видит и управляет вашим соединением.
Применение
- Исправление конфигурации VPN. Нужно пересмотреть команду, использованную для создания VPN-соединения.
nmcli connection add connection.id myvpn con-name myvpn type vpn vpn-type l2tp ipv4.method auto vpn.data "gateway=x.x.x.x, ipsec-enabled=yes, ipsec-psk=mypsk, mru=1400, mtu=1400, password-flags=0, refuse-chap=yes, refuse-mschap=yes, refuse-pap=yes, require-mppe=yes, user=username" vpn.secrets password=mypassword
Здесь:
- Убедитесь, что в параметре
vpn.data
содержатся все необходимые данные, включая правильныйgateway
иipsec-psk
. - Используйте понятный текстовой PSK вместо base64 — это упростит настройку и снижает риск ошибки.
-
Исправьте использование параметров. Проверьте, правильно ли указаны интерфейсы. Уберите
ifname --
, если не планируете ограничивать подключение конкретным интерфейсом. -
Перезагрузите NetworkManager. После создания или изменения профиля VPN выполните:
nmcli connection reload
- Использование правильных команд:
Убедитесь в правильности запуска VPN-соединения:
nmcli connection up id myvpn
Здесь id
указывает именно на идентификатор соединения.
- Проверка состояния сетевых устройств:
Убедитесь, что сетевые устройства правильно управляются NetworkManager:
nmcli device status
Проверьте, что устройство, на котором хотите создать соединение, находится в состоянии connected
.
Следуя этим шагам, вы должны успешно подключиться к VPN через командную строку Ubuntu 18.04.