Tự động kết nối lại với VPN khi ngắt kết nối?


12

Tôi là người dùng Ubuntu GNOME và tôi đã tự hỏi liệu có cách nào để có thể tự động kết nối lại với VPN khi ngắt kết nối hay không . Tôi đang sử dụng giao thức OpenVPN .

Tôi đã kiểm tra kỹ Trình quản lý mạng nhưng không thể tìm thấy tùy chọn như vậy, chỉ để kết nối với VPN khi được kết nối với một WiFi cụ thể.

Câu trả lời:


18

Kể từ ngày 18.10 (không thể kiểm tra các phiên bản trước), các kết nối VPN trong NetworkManager có một cài đặt vpn.persistentgiống như vậy: kết nối lại với VPN khi mất kết nối cho đến khi bạn ngắt kết nối thủ công. Nó được đặt thành "no"theo mặc định và không may không được hiển thị trong Cài đặt mạng Gnome cũng như trong trình chỉnh sửa kết nối nm.

Nhưng bạn có thể thiết lập nó thông qua CLI như thế này:

nmcli connection modify <Your VPN connection name> vpn.persistent yes

Kết nối phải tồn tại trước khi bạn làm điều đó, tất nhiên


2
đây là những gì tôi muốn Cảm ơn một triệu
Wyatt8740

Vì cài đặt này khả dụng, tại sao cài đặt mạng không hiển thị? Và bạn đã tìm ra ở đâu / như thế nào? Không có đề cập nào về vấn đề này tại developer.gnome.org/NetworkManager/ sóng / nmcli.html nhưng vì việc chạy lệnh dường như thành công nên tôi đoán nó hoạt động ...
Al F

@alf Tôi nghĩ rằng tôi đã tìm thấy thiết lập này chỉ bằng cách chọc vào nmcli tại nhà ga, nhưng nó cũng ghi nhận tại developer.gnome.org/NetworkManager/stable/... và trong trang người đàn ông nm-settings
m0NKey bR4in

17

OpenVPN có cơ chế tích hợp để tự động phát hiện các liên kết chết và kết nối lại. Trong Trình quản lý mạng, hãy chuyển đến "Chỉnh sửa kết nối", chọn kết nối VPN của bạn và chọn "Chỉnh sửa". Trong tab "VPN", nhấp vào "Nâng cao ..." và chuyển đến Tab "Chung". Ở đó bạn có hai lựa chọn liên quan:

"Chỉ định khoảng thời gian ping" cho OpenVPN tần suất kiểm tra xem liên kết có còn tồn tại không. "Chỉ định thoát hoặc khởi động lại ping" cho biết thời gian chờ đợi cho đến khi thực hiện hành động và thực hiện hành động nào.

Ví dụ: Cài đặt của tôi là "30 / ping-restart / 300". Điều này có nghĩa là OpenVPN kiểm tra cứ sau 30 giây nếu liên kết vẫn hoạt động. Nếu liên kết không hoạt động trong 300 giây, nó sẽ khởi động lại.

Bằng cách này, không cần kịch bản bên ngoài ...


1
Đây phải là câu trả lời được chấp nhận.
necbot

5
Điều này không đúng với Ubuntu 18.04 ít nhất. Tôi có khoảng thời gian ping và khởi động lại ping nhưng nó sẽ tự tắt.
Tên hiển thị

@SargeBorsch: câu trả lời của m0NKey bR4in dường như hoạt động (cài đặt vpn.persistentthành yes).
kontextify

1

Sau khi đào một chút, tôi đã tìm thấy câu trả lời này , đã thử nó (trên Ubuntu Gnome 15.04) và cho đến nay nó có vẻ hoạt động.

Điều duy nhất tôi có thể thêm là một khi tệp script được tạo, nó không nhất thiết phải được lưu vào thư mục / home của bạn. Bạn có thể lưu nó ở bất cứ đâu, làm cho nó có thể thực thi được và thêm nó vào danh sách các chương trình khởi động.


0

Sau khi tuyên bố đó là SMOP (Simple Matter of Lập trình), tôi đã viết một tập lệnh bash theo dõi "Link Down", sau đó thực thi một tập lệnh người dùng. Sử dụng CPU ít hơn, phản ứng nhanh hơn while true....sleep 30phương pháp. Xem câu trả lời của tôi ở đây . Đó là về "xoay kết nối WiFi", nhưng có lẽ cũng sẽ phù hợp với bạn


0

kịch bản này sẽ hoạt động vào ngày 16.04 khi nmcli con statuskhông còn hoạt động:

#!/bin/bash
CON="purple"
STATUS=`nmcli con show --active | grep purple | cut -f1 -d " "`
if [ -z "$STATUS" ]; then
    nmcli con up $CON
fi

Một chút ngắn hơn STATUS="$(nmcli con show -f name | grep purple)". Hoặc bạn có thể chỉ cần kiểm tra xem kết nối thực tế có hoạt động hay không bằng cách thực hiệnnmcli con show --active id 'purple'
smac89

0

Tôi nghĩ rằng câu trả lời hoàn chỉnh dựa trên các câu trả lời khác như sau:

#!/bin/bash +x
  while [ "true" ]
   do
        CON="Your-VPN-Name"
        STATUS=`nmcli con show --active | grep $CON | cut -f1 -d " "`
        if [ -z "$STATUS" ]; then
                echo "Disconnected, trying to reconnect..."
                (sleep 1s && nmcli con up $CON)
        else
                echo "Already connected !"
        fi
        sleep 30
   done
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.