Cách tự động kết nối với VPN bằng Trình quản lý mạng


17

Tôi có một kết nối VPN hoạt động. Bây giờ tôi muốn kết nối VPN này tự động kích hoạt khi tôi ở trong một mạng không dây nhất định. Có cách đồ họa không xâm phạm bằng cách sử dụng trình quản lý mạng không? Nếu tôi nhớ chính xác, nó hoạt động được một lúc và không còn nữa.

Tôi đã cung cấp kết nối không dây trong câu hỏi cho tất cả người dùng vì không phải nhập mật khẩu mỗi lần.

Chương trình CLI được sử dụng là vpnc có bật Hybrid-Auth (tương thích cisco VPN-client) từ PPA của người dùng

EDIT: Tôi có thể 'thử các câu trả lời nữa (vì eduroam) và vì không có câu trả lời nào có thể giành được đa số phiếu bầu nên tôi sẽ không trả lời cho đến khi ai đó được đưa ra thì tôi sẽ chấp nhận điều đó.


Làm thế nào bạn đi cùng với điều này?
rlemon

Tôi đã không cần nó trong một thời gian dài bây giờ. Có thể đến tháng tư trên trường đại học mới.
turbo

Có thể trùng lặp? Askubfox.com/questions/86365
fossfreedom

@fossfreedom không phải là một bản sao chính xác bởi vì câu hỏi của tôi là về vpnc chứ không phải openconnect.
turbo

Tôi đã viết một bài đăng khối ngắn về cách chặn kết nối internet của bạn trừ khi VPN hoạt động và chạy: mentat.za.net/blog/2015/01/24/vpn-only-i Internet
Stefan van der Walt

Câu trả lời:


18

Giải pháp được đề xuất bởi con-f-usenên hoạt động nhưng không, do lỗi lâu đời:

https://bugs.launchpad.net/ubfox/+source/network-manager/+orms/280571

Có cách giải quyết mặc dù. Đối với các phiên bản NetworkManager gần đây, có một tiện ích dòng lệnh nmcli, có thể được chỉnh sửa và lưu dưới dạng /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

[Tôi chưa kiểm tra điều này - vui lòng kiểm tra và chỉnh sửa theo kết quả]

Xem: https://wiki.archlinux.org/index.php/NetworkManager#Use_dispatcher_to_connect_to_a_vpn_after_a_network-connection_is_est Thiết lập có nhiều thông tin hơn.


lưu ý rằng vào ngày 13.04, tôi phải đặt tập lệnh đó vào /etc/network/if-up.d và sửa lỗi / etc / NetworkManager / system- links / tên kết nối theo Askubfox.com/questions/198136/ sâu để tránh "Không lỗi bí mật VPN hợp lệ "
OlegYch

Việc hack wiki Arch thực sự hoạt động! Tôi đã thử tập lệnh trên wiki vòm vào ngày 11 tháng 7 năm 2013 và sửa đổi nó từ 'nmcli ...' thành 'su [user] -c "nmcli ..."' không hoạt động! làm theo hướng dẫn như trong wiki và đừng quên tiếng hoan hô chmod + x;)!

Lỗi được đề cập bởi Hugo Eden ( bug.launchpad.net/ubfox/+source/network-manager/+orms/280571 ) đã được sửa chữa ngược dòng hơn 5 tháng trước. Tuy nhiên, tôi vẫn đang trải nghiệm điều đó trong Chính xác ... Điều gì mang lại?
iGadget

Điều này không hiệu quả với tôi, vì vậy tôi đã quyết định xem xét /var/log/syslogvà thấy lỗi sau: Mar 4 13:49:51 oleg-HP nm-dispatcher.action: Cannot execute /etc/NetworkManager/dispatcher.d/vpn-up ': không được chủ sở hữu thực thi.' Giải pháp sẽ làsudo chmod 755 /etc/NetworkManager/dispatcher.d/vpn-up
Oleg Belousov

8

Trong Ubuntu Trusty 14.04 VPN tự động kết nối lưu trữ trên GUI trên các cài đặt wi-fi được lưu riêng lẻ. Cài đặt hệ thống - Mạng - kiểm tra Wi-Fi hoặc Lan quan tâm - Cài đặt (tab Chung) - chọn "Tự động kết nối với VPN ..."


3

Nếu tôi nhớ chính xác, nó hoạt động được một lúc và không còn nữa.

  • Điều này có thể rõ ràng, nhưng đôi khi tôi không nghĩ về nó. Bạn đã thử cài đặt lại như:

    sudo apt-get purge mạng-manager-vpn sudo apt-get install network-manager-vpnc Sau đó: nhập mô tả hình ảnh ở đây

Bây giờ tôi muốn kết nối VPN này tự động kích hoạt khi tôi ở trong một mạng không dây nhất định.

  • Có một cách để loại bỏ "không thể kết nối" các loại tin nhắn khi người dùng của bạn ở trong mạng sai, nhưng không thể nhớ nó đã đi như thế nào. Tôi thấy không có cách nào khác để tự động kết nối theo cách đồ họa. Có lẽ bạn sẽ phải viết một tập lệnh thực hiện kết nối khi trong mạng wlan đã nói.

Hy vọng rằng đã giúp.


Tôi vẫn chưa đến để thực sự thử nghiệm điều này. Tôi sẽ đánh dấu nó trả lời khi tôi muốn. Lời hứa.
turbo

theo kinh nghiệm của tôi thì điều này không thực sự hiệu quả. Tôi tin rằng đây là một lỗi trong NetworkManager
Conor Rynne

3
Đúng là cái này bị hỏng, ngay cả trong Chính xác. Nó không tự động kết nối O_o
eggonlegs

Yup - hỏng. Không hoạt động (Ubunutu 12.04).
dùng48956

3

Tôi có thể xác nhận giải pháp sau đây làm việc cho tôi. Tôi đang chạy Ubuntu 14.04 LTS.

Tôi đã đi đến biểu tượng tắt máy và sau đó cài đặt hệ thống.

Khi màn hình cài đặt mở ra, tôi đã đi đến 'Mạng' và mạng WiFi mà tôi đã kết nối. Có một mũi tên nhỏ một bên của tên của mạng.

Cài đặt ảnh chụp màn hình, bằng tiếng Ả Rập

Nhấp vào biểu tượng đó và bạn sẽ thấy một tùy chọn gọi là "cài đặt" hoặc "tùy chọn" (hoặc một cái gì đó tương tự) ở đây:

Nhấp vào cài đặt

Khi cửa sổ tiếp theo mở ra, chỉ cần chuyển đến tab 'Chung' và bạn sẽ thấy tùy chọn cung cấp cho bạn tùy chọn Tự động kết nối với VPN. Chọn VPN Bạn muốn kết nối khi được kết nối với WiFi này và bùng nổ! Mỗi khi bạn kết nối với mạng này, Ubuntu cũng sẽ kết nối bạn với VPN đó. :)

Đối với tôi nó làm việc. Tôi hy vọng nó hoạt động cho những người khác quá. Không yêu cầu bất kỳ loại trình soạn thảo văn bản hoặc trình soạn thảo mã hoặc bất cứ điều gì ..


0

Sử dụng tập lệnh Python sau Gist # 1547663 .

Tham số đầu tiên cho tập lệnh là tên kết nối VPN trong NetworkManager và thứ hai là tên của các mạng được phân tách bằng dấu phẩy (ví dụ: sử dụng kết nối VPN tại nhà là vô ích).

Ví dụ để cài đặt và để nó chạy khi khởi động:

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

Bây giờ nếu bạn kết nối với mạng (wifi hoặc ethernet), nó cũng sẽ cố gắng thiết lập kết nối VPN.


1
Tôi nghĩ rằng cách tiếp cận này ít thanh lịch hơn, do một quá trình nền đang hoạt động cho điều này mọi lúc, trong khi nó có thể được điều khiển theo sự kiện như trong câu trả lời của @hugoheden.
gertvdijk

Nó thực hiện nhiều hơn câu trả lời của mình: nó cũng xử lý kết nối lại VPN và các trường hợp người dùng vô hiệu hóa kết nối vpn theo cách thủ công (có nghĩa là không nên cố gắng kết nối lại VPN trong trường hợp đó)
iElectric

0

Bạn không cần bất kỳ kịch bản điều phối nào nữa! Trong 14.04 (Trusty Tahr), bạn chỉ cần thực hiện các bước sau sau khi đặt tùy chọn tự động kết nối trong GUI NetworkManager.

Lưu trữ bí mật vpn trong tệp cấu hình cho kết nối VPN bên dưới /etc/NetworkManager/system-connections/YourVPNConnectionName.

Bạn có thể đạt được điều này bằng cách cài đặt IPSec secret-flags=0Xauth password-flags=0trong tệp cấu hình. Sau đó, đi tới GUI NetworkManager và lưu lại cài đặt kết nối VPN. Bây giờ một phần được gọi là [vpn-secret] sẽ xuất hiện trong tệp cấu hình. Doublecheck nó và autocconnectection sẽ hoạt động ngay bây giờ!


0

Mặc dù trang man liệt kê nmcli con statuslà một lệnh hợp lệ, Giải pháp trên được cung cấp bởi Hugo Hedentrả về lỗi"Error: Object 'status' is unknown, try 'nmcli help'"

Tôi đang sử dụng nmcli 1.2.2 ( nmcli -v) và tôi đã thử nghiệm và sửa đổi những điều sau đây /etc/NetworkManager/dispatcher.d/vpn-upvà nó hoạt động như một cơ duyên.

#! /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

Lưu ý: Bạn có thể sử dụng nmcli con showđể xem tất cả các tên kết nối vì chúng không phải lúc nào cũng giống như những gì được liệt kê trong GUI Kết nối mạng


OP đang hỏi về Ubuntu.
fosslinux

Kali và Ubuntu đều dựa trên Debian nên giải pháp thường giống nhau. Tôi vừa mới tiếp tục và đã thử nghiệm điều này trên một phiên bản Ubuntu 15.10 và lỗi nmcli giống như tôi đã đề cập ở trên. Các giải pháp làm việc giống như là tốt. Phiên bản nmcli được cài đặt trên hộp 15.10 là 1.0.4.
jw00druff

0

Nếu bạn thích thiết bị đầu cuối, bạn có thể sử dụng nmcli, tôi đã thực hiện bằng các lệnh sau:

Đầu tiên, tìm và mở kết nối VPN mà bạn muốn cập nhật

➜  ~ nmcli c show --active |grep vpn
MyVPN           115ae594-aa91-4d13-8c92-421af245f935  vpn     wlp61s0         
➜  ~ nmcli c edit MyVPN

Điều này sẽ mở dấu nhắc nmcli, từ đây bạn có thể truy vấn các giá trị và đặt chúng, như thế này:

===| 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.

Và bạn nên được thực hiện!


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.