web-dev-qa-db-ja.com

Network-Managerを使用してVPNに自動的に接続する方法

正常に機能するVPN接続があります。特定のワイヤレスネットワークにいるときに、このVPN接続が自動的にアクティブになるようになりました。 network-manager-appletを使用した非侵入型のグラフィカルな方法はありますか?正しく覚えていれば、しばらくは機能しましたが、もう機能しません。

毎回パスワードを入力する必要がないため、問題のワイヤレス接続をすべてのユーザーが利用できるようにしました。

使用されるCLIプログラムは sroeckerのPPA からのハイブリッド認証が有効な(Cisco VPNクライアント互換)vpncです

編集:私はもう答えを試すことができます(eduroamのせいで)。答えが過半数の票を獲得しているように見えないので、今は答えが得られないままにしておきます。

16
turbo

con-f-useによって提案された解決策は機能するはずですが、長年のバグのために機能しません。

https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/280571

ただし、回避策があります。 NetworkManagerの最近のバージョンには、/etc/NetworkManager/dispatcher.d/vpn-upのようなものとして編集および保存できるコマンドラインの機能nmcliがあります。

#! /bin/bash

REQUIRED_CONNECTION_NAME="<name-of-connection>"
VPN_CONNECTION_NAME="<name-of-vpn-connection>"


activ_con=$(nmcli con status | grep "${REQUIRED_CONNECTION_NAME}")
activ_vpn=$(nmcli con status | grep "${VPN_CONNECTION_NAME}")
if [ "${activ_con}" -a ! "${activ_vpn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi

[これはテストしていません。結果に応じてテストおよび編集してください]

参照: https://wiki.archlinux.org/index.php/NetworkManager#Use_dispatcher_to_connect_to_a_vpn_after_a_network-connection_is_established に詳細があります。

17
Hugo Heden

Ubuntu Trusty 14.04では、個々の保存されたwi-fi設定のGUI上のVPN自動接続ストア。システム設定-ネットワーク-関心のあるWi-FiまたはLANを確認します-設定(一般タブ)-「VPNに自動接続...」を選択します

8
Dr.Osd

私はこの次のソリューションが私のために働いていることを確認できます。 Ubuntu 14.04 LTSを実行しています。

シャットダウンアイコンに移動してから、システム設定に移動しました。

設定画面が開いたら、「ネットワーク」と接続したWiFiネットワークに移動しました。ネットワーク名の片側に小さな矢印があります。

Settings screen shot, its in Arabic

そのアイコンをクリックすると、「settings」または「options」(または同様のもの)と呼ばれるオプションが表示されます。

Click settings

次のウィンドウが開いたら、[全般]タブに移動すると、VPNに自動的に接続するオプションを提供するオプションが表示されます。このWiFiに接続したときに接続したいVPNを選択してください。このネットワークに接続するたびに、UbuntuはそのVPNにも接続します。 :)

私にとってはその働き。他のすべての人にも役立つことを願っています。テキストエディターやコードエディターなどは必要ありません。

3

正しく覚えていれば、しばらくは機能しましたが、もう機能しません。

  • これは明らかかもしれませんが、時々私はそれを考えません。次のような再インストールを試みましたか?

    Sudo apt-get purge network-manager-vpn Sudo apt-get install network-manager-vpncその後: enter image description here

特定のワイヤレスネットワークにいるときに、このVPN接続が自動的にアクティブになるようになりました。

  • ユーザーが間違ったネットワークにいる場合、「接続できません」タイプのメッセージを抑制する方法がありますが、それがどのようになったかを思い出せません。グラフィカルな方法で自動的に接続する他の方法は見当たりません。上記のwlan-networkで接続を行うスクリプトを作成する必要があるかもしれません。

お役に立てば幸いです。

3
con-f-use

端末を好む場合は、nmcliを使用できます。次のコマンドを使用して行いました。

最初に、更新するVPN接続を見つけて開きます

➜  ~ nmcli c show --active |grep vpn
MyVPN           115ae594-aa91-4d13-8c92-421af245f935  vpn     wlp61s0         
➜  ~ nmcli c edit MyVPN

これによりnmcliプロンプトが開きます。ここから、次のように値を照会して設定できます。

===| nmcli interactive connection editor |===
...
nmcli> print connection.autoconnect
connection.autoconnect: no
nmcli> set connection.autoconnect yes
nmcli> save persistent
Saving the connection with 'autoconnect=yes'. That might result in an immediate activation of the connection.
Do you still want to save? (yes/no) [yes] yes
Connection 'MyVPN' (115ae594-aa91-4d13-8c92-421af245f935) successfully updated.

これで完了です!

0
Gustaf

ディスパッチャスクリプトはもう必要ありません! 14.04(Trusty Tahr)では、NetworkManager GUIで自動接続オプションを設定した後、次の手順を実行するだけです。

VPN接続の構成ファイルの/etc/NetworkManager/system-connections/YourVPNConnectionNameの下にvpn-secretsを単純に保存します。

設定ファイルでIPSec secret-flags=0Xauth password-flags=0を設定することでこれを実現できます。次に、NetworkManager GUIに移動して、VPN接続設定を再度保存します。これで、[vpn-secrets]というセクションが構成ファイルに存在するはずです。それを再確認すると、自動接続が動作するはずです!

0
a.b.brandl

次のPythonスクリプトを使用します Gist#154766

スクリプトの最初のパラメーターはNetworkManagerのVPN接続名で、2番目は無視する必要のあるネットワークのコンマ区切りの名前です(たとえば、自宅でVPN接続を使用しても意味がありません)。

インストールして起動時に実行する例:

git clone git://Gist.github.com/1547663.git /home/user/autovpn/
echo "python /home/user/autovpn/autovpn.py 'myvpn' 'Auto homenetwork,Auto worknetwork' > /var/log/autovpn.log&" > /etc/rc.local
/etc/rc.local

ネットワーク(wifiまたはイーサネット)に接続すると、VPN接続のセットアップも試行されます。

0
iElectric

マニュアルページにはnmcli con statusが有効なコマンドとしてリストされていますが、 Hugo Heden で提供される上記のソリューションはエラー"Error: Object 'status' is unknown, try 'nmcli help'"を返します

Nmcli 1.2.2(nmcli -v)を使用していますが、/etc/NetworkManager/dispatcher.d/vpn-upについて次のテストと変更を行ったところ、魅力のように機能しました。

#! /bin/bash

REQUIRED_CONNECTION_NAME="<name-of-connection>"
VPN_CONNECTION_NAME="<name-of-vpn-connection>"


default_conn=$(nmcli con show --active | grep "${REQUIRED_CONNECTION_NAME}")
vpn_conn=$(nmcli con show id | grep "${VPN_CONNECTION_NAME}")
if [ "${default_conn}" -a ! "${vpn_conn}" ];
then
    nmcli con up id "${VPN_CONNECTION_NAME}"
fi

注:nmcli con showを使用すると、ネットワーク接続GUIにリストされているものと常に同じではないため、すべての接続名を表示できます。

0
jw00druff