コマンドラインからNetworkManagerにVPN構成ファイルをインポートします


14

.ovpnGUIツールを使用してファイルをNetworkManagerにインポートできますnm-connection-editor(右クリックしてnm-appletをクリックEdit connections):Add-> Import a saved VPN configuration...

私の目標は同じことをすることですが、コマンドラインを介してのようなツールを使用しますnm-cli。何とか可能ですか?


これで何か進歩しましたか?私は同じことをしようとしているので、それが機能するようになったら答えを投稿します。
デビッドメイソン

@DavidMason、残念ながらいいえ。あなたの解決を待っています。
petRUShka 14年

私も解決策を積極的に探しています。
ラズベガイ

コマンドラインでインポートするためのソリューションを見たい
-davidbaumann

回答:


10

nmcliバージョン1.2.6を使用していますが、それを使用してopenvpn構成をインポートできます。

nmcli connection import type openvpn file ~/myconfig.ovpn

これ以降、NetworkManager UIでもvpnが表示されます。

接続をさらに構成するには、showコマンドを使用して接続名を見つけ、構成modify値を変更できます。

nmcli connection show
nmcli connection modify myvpnconnectionname +vpn.data username=myusername

-vpn.data誤って構成データに間違ったものを追加した場合の使用方法はありますか?
32r34wgf3e

@ 32r34wgf3e知らない。構成が間違っている場合は、構成を削除し、回答に記載されているようにコマンドラインから新しいセットアップを行います。ヒント:コマンドをテキストファイルに保存して、後で再利用できるようにします。
バスティアン

5

debianベースのシステムでnmcliに備わっている機能の欠如を乗り越えるために使用する回避策は、コマンドを使用して/ etc / NetworkManager / system-settingsフォルダー内の既存のVPN構成ファイルを新しいファイルに(ルートとして、もちろん)同じフォルダ内で、新しいコピーの許可されたユーザー、ゲートウェイ、ユーザー名、パスワードの値を文字列に置き換えます。次に、ネットワークマネージャーを再起動して、変更を適用します。

例えば:

/ etc / NetworkManager / system-settingsフォルダーの典型的な設定ファイルは次のようになります。

[connection]
id=<<id>>
uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx
type=vpn
permissions=user:<<permissions_user>>:;
autoconnect=false

[vpn]
password-flags=0
service-type=org.freedesktop.NetworkManager.pptp
require-mppe-128=yes
mppe-stateful=yes
user=<<user>>
refuse-eap=yes
refuse-chap=yes
gateway=<<gateway>>
refuse-pap=yes

[vpn-secrets]
password=<<password>>

[ipv4]
method=auto

...したがって、上記の設定ファイルに似た新しい設定ファイルを作成できます...

cd /etc/NetworkManager/system-settings
cp "existing-working-vpn-config-file" "new-vpn-config-file"

...次に、上記の「<< >>」の値を独自のVPN設定に置き換えます。例:

sed -i "s/<<permissions_user>>/my_permissions_user/g" new-vpn-config-file
sed -i "s/<<user>>/my_user/g" new-vpn-config-file
sed -i "s/<<gateway>>/my_gateway/g" new-vpn-config-file
sed -i "s/<<password>>/my_password/g" new-vpn-config-file

...そして、最後に次のコマンドを使用してネットワークマネージャーを再起動します。

service network-manager restart

注:UUIDの設定は、たとえそれが一意でなくても重要ではないようです。理由はわかりません。ものだけが機能します。

また、コピーするのではなく新しいファイルを追加する場合は、ファイルへのアクセス許可が600(読み取りおよび書き込み)に設定され、所有者がrootであることを確認してください。

試してみて、あなたの考えを教えてください。私にとっては、すべてコマンドラインを介して動作します。


0

私はこれを使用してルートから実行しました:

USER=japie
runuser -l $USER -c "sudo -S nmcli connection import type openvpn file ~/vpn_clients/flappie3-TO-IPFire.ovpn"

接続「flappie3-TO-IPFire」(26d0b28e-9212-4e71-90dc-3911ddf231e5)が正常に追加されました。


runuserユーザーに使用させるためだけに使用するのはなぜsudoですか?これは、たとえば、コマンドラインからNetworkManagerにVPN構成ファイルをインポート
Kusalananda

ラップトップ登録スクリプトがルートとして実行される
-djieno

確かに、あなたはをjapie使用するように切り替えますrunuserが、その後でルートに切り替えますsudo...
Kusalananda

「sudo ...」を追加しない場合、現在のユーザー/ japieにはnmcliを実行するための十分な権限がありません
-djieno

だから、そのユーザーに切り替えないでくださいrunas...要するに、私が言っているのは、それで十分であるべきだということですnmcli connection import type openvpn file ~japie/vpn_clients/flappie3-TO-IPFire.ovpn
クサラナナンダ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.