เชื่อมต่อ VPN อัตโนมัติเมื่อใช้เครือข่ายเฉพาะใน Ubuntu GNOME 16.04


12

ภายใต้ Unity Network Manger มีช่องทำเครื่องหมายสำหรับทุกการเชื่อมต่อที่กำหนดค่าการใช้งาน VPN อัตโนมัติเมื่อการเชื่อมต่อใช้งานอยู่:

รูปภาพของการตั้งค่าการเชื่อมต่อใน Ubuntu 16.06 Unity

มีวิธีรับตัวเลือกเช่นนี้ใน Ubuntu GNOME 16.04 หรือไม่? (ซึ่งใช้ GNOME 3.18) เนื่องจากหน้าการตั้งค่าการเชื่อมต่อขาดตัวเลือกนี้: ป้อนคำอธิบายรูปภาพที่นี่


ยินดีต้อนรับสู่ถาม Ubuntu! คำตอบนี้แสดงให้เห็นว่าพวกเขาทั้งสองใช้ NetworkManager เดียวกันร่วมกัน คุณกรุณาตรวจสอบอีกครั้งได้ไหม ในกรณีที่แตกต่างกันคุณสามารถรวมภาพหน้าจอของ NetworkManager ใน Ubuntu GNOME ได้หรือไม่
Andrea Lazzarotto


@AndreaLazzarotto ขอบคุณ! ฉันให้ภาพหน้าจอ ฉันจะลอง vpnautoconnect ที่แนะนำในคำถามนี้เพื่อดูว่ามันใช้งานได้หรือไม่ แต่ฉันสงสัยว่าการตั้งค่านี้สามารถเปิดใช้งานใน Network Manger ได้หรือไม่เพราะคุณบอกว่ามันเป็น Network Manger เดียวกันในทั้งสองรสชาติ
S.Mohsen SH

ความสามารถนี้ยังขาดหายไปใน Ubuntu 17.04 ฉันไม่ชัดเจนว่าทำไมมันจึงถูกลบ หลังจากค้นหาวิธีแก้ปัญหาและค้นหาน้อยมากดูเหมือนว่าผู้คนจำนวนมากไม่ใช้ VPN และชอบคุณลักษณะการเชื่อมต่ออัตโนมัติ
Rsync

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

คำตอบ:


22

ฉันพบคำตอบสำหรับสิ่งนี้ อย่างผิดปกติคุณจะต้องเปิด Network Manager ด้วยตนเอง (ตรงข้ามกับการใช้พาเนลหรือการตั้งค่า

ดังนั้นในประเภทTerminal nm-connection-editorหลังจากทำเช่นนั้นหน้าต่างที่เปิดขึ้นจะมีตัวเลือกในภาพแรกของ OPs

สิ่งนี้ใช้ได้กับฉันใน 16.04 และ 17.04 หวังว่าพวกเขาจะรวมตัวจัดการเครือข่ายที่หลากหลายใน GNOME รุ่นต่อไป


มันใช้งานได้ดีสำหรับฉันใน 18.04 เช่นกัน - ขอบคุณ! ไม่ชัดเจนทันทีว่าการตั้งค่าเหล่านั้นอยู่ที่ใด
JohnnyCoder

ใช้ได้กับ Debian 9 Stretch ด้วย ขอบคุณ!
Christian Toffolo

1

ฉันแก้ไขปัญหาด้วยสคริปต์ใน

/etc/NetworkManager/dispatcher.d

โฟลเดอร์นี้มีสคริปต์ที่ถูกเรียกตามลำดับตัวอักษรโดยผู้จัดการเครือข่ายทุกครั้งที่มีการเปลี่ยนแปลงสถานะของเครือข่าย สิ่งนี้มีข้อดี (แตกต่างจากโซลูชันอื่นที่ฉันเห็น) ว่า VPN ของคุณไม่เพียง แต่เปิดใช้งานตอนบูท / เริ่มต้น แต่ยังทำงานต่อหลังจากหยุดชั่วคราว / สลีป

เพื่อให้สามารถใช้งานได้คุณจำเป็นต้องมีการเชื่อมต่อ VPN ที่ตั้งค่าไว้แล้วใน Network Manager ของคุณซึ่งฉันถือว่าคุณมีมิฉะนั้นคุณจะไม่ได้ถามคำถาม

  1. ขั้นตอนแรก: ฉันทำตามคำแนะนำของหน้านี้ (ภาษาเยอรมัน) ( https://wiki.ubuntuusers.de/NetworkManager/Dispatcher/ ) ฉันเปิดและตั้งชื่อสคริปต์ใหม่ 02VPN1

    sudo YOURTEXTEDITOR /etc/NetworkManager/dispatcher.d/02VPN1
    

และเขียนว่า:

    #!/bin/bash
    VPN_CONNECTION_NAME="NAME_OF_YOUR_VPN_CONNECTION"
    if [ "$2" = "up" ]; then
       sleep "3s"
       nmcli con up id "${VPN_CONNECTION_NAME}"
    fi

NAME_OF_YOUR_VPN_CONNECTION เป็นชื่อของไฟล์เชื่อมต่อ NAME_OF_YOUR_VPN_CONNECTION.conf ที่คุณใช้ในการตั้งค่าการเชื่อมต่อที่คุณต้องการเชื่อมต่ออัตโนมัติ

เงื่อนไขถ้า ["$ 2" = "up"] หมายความว่าการเชื่อมต่อ VPN จะเชื่อมต่อโดยอัตโนมัติเมื่อคุณเริ่มการเชื่อมต่อเครือข่าย (การเชื่อมต่ออินเทอร์เน็ตของคุณ); เมื่อบริการ VPN ทำงานคุณสามารถปิดใช้งานหรือเลือก VPN อื่น

หากคุณเท่านั้นและทุกครั้งที่ต้องการเรียกใช้ VPN นี้โดยไม่มีความสามารถในการปิดใช้งานคุณสามารถเขียนสคริปต์โดยไม่มีเงื่อนไขนี้:

    #!/bin/bash
    VPN_CONNECTION_NAME="NAME_OF_YOUR_VPN_CONNECTION"
    sleep "3s"
    nmcli con up id "${VPN_CONNECTION_NAME}"

คุณสามารถตั้งค่าไฟล์นี้เป็นรูทได้เท่านั้นจึงเป็นเจ้าของโดยรูทโดยที่คุณไม่ต้องทำอะไรนอกจากนี้ นั่นเป็นวิธีที่ควรจะเป็น

สุดท้าย: ทำให้ไฟล์นี้ทำงานได้มิฉะนั้นสคริปต์จะไม่ทำงาน ในอาคารผู้โดยสาร:

    sudo chmod +x  /etc/NetworkManager/dispatcher.d/02VPN1
  1. ขั้นตอนที่สอง (แตกต่างจากคำแนะนำในลิงก์ด้านบนฉันใช้คำแนะนำจากที่นี่: https://ubuntuforums.org/showthread.php?t=2193559&p=12990193#post12990193

กระบวนการนี้ดำเนินการโดยรูทและรูทยังไม่สามารถเข้าถึงรหัสผ่านที่คุณใช้สำหรับ VPN ของคุณ ทำสิ่งต่อไปนี้: เปิดไฟล์ NAME_OF_YOUR_VPN_CONNECTION ใน / etc / NetworkManager / system-connections เป็น root เปิด Terminal และทำ:

    sudo YOURTEXTEDITOR /etc/NetworkManager/system-connections/NAME_OF_YOUR_VPN_CONNECTION

a) เปลี่ยนสาย

    password-flags=1 

ถึง

    password-flags=0

b) ที่ด้านล่างเพิ่ม

    [vpn-secrets]
    password=PASSWORDOFYOURCONNECTION

บันทึกและปิดไฟล์

  1. ตอนนี้รีสตาร์ท Network Manager ของคุณ เทอร์มิ:

    systemctl restart NetworkManager
    

เพื่อเริ่มต้นการตั้งค่าใหม่ คุณควรทำ

ฉันทำสิ่งนี้เมื่อวานนี้และเท่าที่ฉันเห็นมันทำงานได้ดี ไม่รับประกัน!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.