นำเข้าไฟล์กำหนดค่า VPN ไปยัง NetworkManager จากบรรทัดคำสั่ง


14

หนึ่งสามารถนำเข้า.ovpnไฟล์ไปยัง NetworkManager ผ่านเครื่องมือ GUI nm-connection-editor(คลิกขวาบนnm-appletและคลิกที่Edit connections): ->AddImport a saved VPN configuration...

เป้าหมายของผมคือการทำสิ่งเดียวกัน nm-cliแต่ผ่านบรรทัดคำสั่งใช้เครื่องมือเช่น เป็นไปได้ไหม?


คุณทำอะไรกับสิ่งนี้? ฉันพยายามทำสิ่งเดียวกันดังนั้นจะโพสต์คำตอบถ้าฉันทำงานได้
David Mason

@DavidMason น่าเสียดายที่ไม่มี ฉันรอทางออกของคุณ
petRUShka

ฉันกำลังมองหาวิธีแก้ปัญหาด้วยเช่นกัน
Raspbeguy

ฉันต้องการดูโซลูชันสำหรับการนำเข้าตามบรรทัดคำสั่ง
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 ไม่รู้ เมื่อการกำหนดค่าของฉันไม่ถูกต้องฉันจะลบมันและทำการตั้งค่าใหม่จากบรรทัดคำสั่งตามที่ระบุไว้ในคำตอบของฉัน เคล็ดลับ: เก็บคำสั่งของคุณในไฟล์ข้อความเพื่อนำมาใช้ใหม่ในภายหลัง
bastian

5

วิธีแก้ปัญหาที่ฉันใช้เพื่อแก้ไขปัญหาการขาดฟังก์ชั่นที่มาพร้อมกับ nmcli บนระบบที่ใช้เดเบียนคือการใช้คำสั่งเพื่อคัดลอกไฟล์กำหนดค่า VPN ที่มีอยู่ในโฟลเดอร์ / etc / NetworkManager / system-settings ไปยังไฟล์ใหม่ แน่นอน) ในโฟลเดอร์เดียวกันและทำการแทนที่สตริงให้กับผู้ใช้ที่ได้รับอนุญาตเกตเวย์ชื่อผู้ใช้และรหัสผ่านในสำเนาใหม่ จากนั้นฉันรีสตาร์ทผู้จัดการเครือข่ายเพื่อใช้การเปลี่ยนแปลง

ตัวอย่างเช่น:

ไฟล์กำหนดค่าทั่วไปในโฟลเดอร์ / 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 (อ่านและเขียน) และเจ้าของเป็นผู้ใช้รูท

ลองยิงมันและบอกสิ่งที่คุณคิด มันทำงานได้สำหรับฉันทั้งหมดผ่านทางบรรทัดคำสั่ง


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เท่านั้น สิ่งนี้ไม่ได้เพิ่มสิ่งใด ๆ ที่ไม่ได้กล่าวถึงในเช่นนำเข้าไฟล์กำหนดค่า VPN ไปยัง NetworkManager จากบรรทัดคำสั่ง
Kusalananda

สคริปต์การลงทะเบียนแล็ปท็อปทำงานแบบรูท
djieno

แน่นอนว่าและคุณสลับไปjapieใช้runuserแต่แล้วคุณจะเปลี่ยนกลับไปยังรากด้วยsudo...
Kusalananda

หากคุณไม่เพิ่ม "sudo ... " ผู้ใช้ปัจจุบัน / japie ไม่มีสิทธิ์เพียงพอที่จะเรียกใช้ nmcli
djieno

ดังนั้นอย่าเปลี่ยนไปใช้ผู้ใช้รายrunasนั้นด้วย... ในระยะสั้นสิ่งที่ฉันพูดคือควรจะเพียงพอกับnmcli connection import type openvpn file ~japie/vpn_clients/flappie3-TO-IPFire.ovpnมัน
Kusalananda
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.