web-dev-qa-db-ja.com

コマンドラインからVPNに接続/切断する

Ubuntuマシンには、vpncを使用するVPNとPPTPを使用するVPNの2つのセットアップがあります。これらはどちらもGNOMEネットワークマネージャーインターフェイスを使用してセットアップされ、優れた機能を発揮します。ただし、このマシンにリモートでアクセスする必要がある場合があります。これらのVPNにコマンドラインから接続または切断する方法はありますか?

130
Tim Fountain

コマンドラインからNetworkManagerと対話する場合は、「nmcli」コマンドを使用できます。

すべてのNM接続をリストします:nmcli con

接続の開始(wifi、vpnなど):nmcli con up id ConnectionName

ダウン接続:nmcli con down id ConnectionName

nmcli manpage のその他のnmcliコマンド)。


また、通常のユーザーには通常、ネットワークを制御する権限がないことに注意してください。上記のコマンドをSudoとともに使用すると、ほとんどの接続で機能しますが、VPNは特に "Error:Connection activation failed:no valid VPN secrets。"

その場合、VPNパスワードがユーザーのgnome-keyringに保存されている可能性があります。これにより、rootユーザーはアクセスできなくなります。 このコメント はその理由を説明しています。

これを修正するには、/ etc/NetworkManager/system-connections/ConnectionNameを編集し、[vpn]の下で passwordフラグを変更します 行:

password-flags=0

Xauth password-flagsで始まる行がある場合は、代わりに変更します。

次に、[vpn]ブロックの下に次を追加します。

[vpn-secrets]
password=YourPassword

(前のステップでXauth password-flags行を変更した場合、代わりにXauth password=...を追加します。)

次に、ネットワークマネージャーを再起動します。

Sudo service network-manager restart

その後、Sudo nmcli con up id ConnectionNameを使用してVPN接続を開始すると、問題なく動作するはずです。

188
ihashacks

mattのコメントに対するihashacksの回答は、私にとってはうまくいきました...ほとんど。 1行を微調整する必要がありました。

私のパスワードフラグ行は実際には「Xauthパスワードフラグ」です。受け入れられた答えは、次のように変更するまでは機能しません

[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>

パスワードが記載される前に、VPN接続に「Xauth」が含まれる理由がわかりません。

(申し訳ありませんが、これは新しい回答であり、まだコメントすることはできません。)

4
John