Połącz / odłącz od VPN z linii poleceń

131

Mam dwie konfiguracje VPN na moim komputerze Ubuntu, jedną używającą vpnc i jedną używającą PPTP. Oba zostały skonfigurowane przy użyciu interfejsu menedżera sieci GNOME i działają świetnie. Jednak czasami muszę uzyskać dostęp do tego komputera zdalnie - czy istnieje sposób na połączenie lub rozłączenie tych VPN z linii poleceń?

Fontanna Tima
źródło
Czy opisane tutaj polecenie vpnc nie działa dla Ciebie? Ponadto znajdują się tutaj instrukcje dotyczące konfigurowania i łączenia się z PPTP . Czy oni nie działają?
Kris Harper

Odpowiedzi:

191

Jeśli chcesz wchodzić w interakcje z NetworkManager z wiersza poleceń, możesz użyć polecenia „nmcli”.

wyświetl wszystkie połączenia NM: nmcli con

rozpocznij połączenie (Wi-Fi, VPN itp.): nmcli con up id ConnectionName

połączenie w dół: nmcli con down id ConnectionName

(więcej poleceń nmcli na stronie podręcznika nmcli ).


Należy również pamiętać, że zwykli użytkownicy zwykle nie mają uprawnień do kontrolowania sieci. Użycie powyższych poleceń z sudopowinno działać w przypadku większości połączeń, ale VPN może się nie powieść z komunikatem „Błąd: Aktywacja połączenia nie powiodła się: brak prawidłowych kluczy tajnych VPN”.

Jeśli tak się stanie, prawdopodobnie hasło VPN jest przechowywane w gnome-keyring użytkownika, co czyni go niedostępnym dla użytkownika root. Ten komentarz wyjaśnia dlaczego.

Aby to naprawić, edytuj plik / etc / NetworkManager / system-connection / ConnectionName i poniżej [vpn], zmień wiersz flagi haseł na:

password-flags=0

Jeśli linia zaczyna się od Xauth password-flags, zmień ją zamiast tego.

Następnie dodaj następujący [vpn]blok:

[vpn-secrets]
password=YourPassword

(Jeśli w poprzednim kroku zmieniłeś linię Xauth password-flags, dodaj Xauth password=...zamiast tego.)

Teraz uruchom ponownie menedżera sieci, wykonując:

sudo service network-manager restart

Następnie uruchomienie połączenia VPN z sudo nmcli con up id ConnectionNamepowinno działać bez problemów.

ihashacks
źródło
1
Chciałbym, aby istniało ogólne polecenie rozłączania, które rozłączałoby dowolną sieć VPN bez konieczności podawania jej identyfikatora. Prawdopodobnie ułatwiłoby to (chcę) tę funkcję .
Lonnie Best
Jeśli używasz ipsec (np. Vpnc), może być konieczne dodanie „IPSec secret-flags = 0” i „IPSec secret = <grouppw>” w odpowiednich miejscach
Matt
To wciąż mnie nie naprawia :( Pojawia się komunikat „Błąd: Aktywacja połączenia nie powiodła się: nieznany powód.”
dano
Cofam to ... po 3. uruchomieniu komendy zadziałało. 1. czas szybko kończy się niepowodzeniem. 2. czas zawiódł powoli. Trzeci raz pracował!
dano
2
Wyczyść tekst PW? Naprawdę?? Czy ktoś ma bezpieczne rozwiązanie?
user447607
4

Odpowiedź ihashacks z komentarzami Matta zadziałała dla mnie ... prawie. Musiałem dostosować jedną linię.

mój wiersz flagi z hasłem faktycznie brzmiał: „Xauth password-flag”. Przyjęta odpowiedź nie zadziała, dopóki nie zmienię na następujące

[vpn]
...
Xauth password-flag=0
IPSec secret-flags=0

[vpn-secrets]
Xauth password=<my pw> ## This is the one I changed.
IPSec secret=<group pw>

Nie jestem pewien, dlaczego moje połączenia VPN mają „Xauth” przed każdą wzmianką o haśle.

(Przepraszamy, to nowa odpowiedź, nie mogę jeszcze komentować.)

Jan
źródło
2
Dotyczy to niektórych rodzajów VPN, na przykład Cisco; bardzo pomocne w tych przypadkach! Jest jednak błąd: poprawny przypadek jednego klucza to IPSec secret- w przeciwnym razie NM nie rozpoznaje go.
Marcus
Dzięki Marcus, poprawiłem odpowiedź, więc nikt nie próbuje kopiować / wklejać literówki.
Jan