Network-ManagerでVPNに自動的に接続する方法


17

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

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

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

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


これはどうやってやってるの?
rlemon

私は長い間それを必要としませんでした。4月に新しい大学に来るかもしれません。
ターボ


私の質問はopenconnectではなくvpncであるため、@ fossfreedomはまったく重複していません。
ターボ

VPNが稼働中でない限り、インターネット接続をブロックする方法に関する短いブロック投稿を書きました。mentat.za.net
Stefan van der Walt

回答:


18

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

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

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

#! /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に詳細があります。


13.04では、そのスクリプトを/etc/network/if-up.dに配置し、askubuntu.com / questions / 198136 /に従って/ etc / NetworkManager / system-connections / connection-nameを修正しなければならないことに注意してください。有効なVPNの秘密」エラー
OlegYch

Arch wikiハックは実際に機能します!2013年7月11日にarch wikiでスクリプトを試しましたが、「nmcli ...」から「su [user] -c "nmcli ..."」に変更しても機能しません。wikiの指示に従い、chmod + xを忘れないでください;)

Hugo Edenが言及したバグ(bugs.launchpad.net/ubuntu/+source/network-manager/+bug/280571)は5か月以上前にアップストリームで修正されました。しかし、私はまだ正確にそれを経験しています...何が得られますか?
iGadget

これは私にとってはうまくいかなかったので、私は調べて/var/log/syslog、次のエラーを見ました:Mar 4 13:49:51 oleg-HP nm-dispatcher.action: Cannot execute /etc/NetworkManager/dispatcher.d/vpn-up ':not executable by owner.`解決策は次のとおりですsudo chmod 755 /etc/NetworkManager/dispatcher.d/vpn-up
Oleg Belousov

8

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


3

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

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

    sudo apt-get purge network-manager-vpn sudo apt-get install network-manager-vpncその後: ここに画像の説明を入力してください

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

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

お役に立てば幸いです。


私はまだ実際にこれをテストするために来ていません。回答するときにマークします。約束する。
ターボ

私の経験では、これは実際には機能しません。これはNetworkManagerのバグであると考えています
コナーリン

3
うん、これは正確でさえ壊れています。自動的に接続されません
O_o

うん-壊れた。動作しません(Ubunutu 12.04)。
user48956

3

私はこの次の解決策が私のために働いていることを確認できます。Ubuntu 14.04 LTSを実行しています。

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

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

設定のスクリーンショット、アラビア語

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

設定をクリック

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

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


0

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

スクリプトの最初のパラメーターは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接続のセットアップも試行されます。


1
バックグラウンドプロセスが常にアクティブであるため、このアプローチはエレガントではありませんが、@ hugohedenの答えのようにイベント駆動型である可能性があります。
gertvdijk

それは彼の答え以上のものです:VPN再接続と、ユーザーが手動でvpn接続を無効にする場合も処理します(その場合、VPNの再接続を試みてはいけないことを意味します)
iElectric

0

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

VPN接続の設定ファイルにvpn-secretsをそのまま保存します/etc/NetworkManager/system-connections/YourVPNConnectionName

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


0

マニュアルページには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にリストされているものと常に同じではないため、すべての接続名を表示するために使用できます。


OPはUbuntuについて尋ねています。
fosslinux

KaliとUbuntuはどちらもDebianベースであるため、多くの場合、ソリューションは同じです。先に進み、Ubuntu 15.10インスタンスでこれをテストしましたが、nmcliエラーは前述したものと同じでした。ソリューションも同様に機能しました。15.10ボックスにインストールされているnmcliバージョンは1.0.4です。
jw00druff

0

端末を好む場合は、を使用でき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.

これで完了です!


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.