Tôi đang sử dụng Ubuntu 13.04 với Gnome và gần đây tôi đã thiết lập VPN (mở). Có cách nào để kích hoạt nó theo mặc định? Mỗi lần tôi khởi động hoặc thậm chí mất kết nối, tôi phải kích hoạt VPN theo cách thủ công. Có một lựa chọn tôi đang thiếu?
Tôi đang sử dụng Ubuntu 13.04 với Gnome và gần đây tôi đã thiết lập VPN (mở). Có cách nào để kích hoạt nó theo mặc định? Mỗi lần tôi khởi động hoặc thậm chí mất kết nối, tôi phải kích hoạt VPN theo cách thủ công. Có một lựa chọn tôi đang thiếu?
Câu trả lời:
Thông qua applet nm của trình quản lý mạng (applet khay Gnome hoặc Unity được cài đặt theo mặc định), bạn có thể định cấu hình Trình quản lý mạng để tự động kết nối với VPN khi mạng được kết nối.
nm-connection-editor
.Khi điều này được kích hoạt, có một lỗi trong Trình quản lý mạng có thể phá vỡ chức năng "tự động kết nối với mạng này". ( Chỉnh sửa : lỗi này hiện đã được đánh dấu là "sửa lỗi được phát hành" trong Ubuntu 16.04). Nếu NetworkManager cố gắng tự động kết nối và không thành công, bạn sẽ thấy một dòng như sau /var/log/syslog
:
<error> [1401130450.367538] [nm-vpn-connection.c:1374] get_secrets_cb(): Failed to request VPN secrets #2: (6) No agents were available for this request.
Có vẻ như NetworkManager không lấy được mật khẩu VPN của người dùng gnome-keyring-daemon
. Một cách giải quyết khác là để NetworkManager lưu mật khẩu trong văn bản gốc trong tệp cấu hình trong /etc/NetworkManager/system-connections/
. Để làm điều này:
sudoedit /etc/NetworkManager/system-connections/<VPN>
, <VPN>
tệp cấu hình cho VPN của bạn ở đâu (tên tệp thường là tên bạn đã gán cho VPN).password-flags=1
thànhpassword-flags=0
NetworkManager hiện sẽ lưu trữ mật khẩu VPN (xem man nm-settings
chi tiết) và tự động kết nối mạng sẽ hoạt động trở lại.
nm-connection-editor
bạn có thể tìm thấy điều này khi chỉnh sửa một kết nối trong tab chung .
Hãy xem vpnautoconnect.
vpnautoconnect là một trình nền cho phép bạn tự động kết nối lại (khi khởi động) một vpn tạo với trình quản lý mạng. Nó có thể kết nối lại rất nhanh và theo dõi băng thông, Nó hoạt động với kết nối pptp và openvpn.
Để biết thêm thông tin và để tải về, hãy truy cập Trang web .
Hãy thử điều này là tốt:
sử dụng tính năng AUTOSTART trong /etc/default/openvpn
Hoặc là
Tìm ra UUID của kết nối VPN của bạn.
nmcli con list | grep -i vpn
UUID là cột thứ hai với các chữ cái, số và dấu gạch ngang.
Bắt đầu kết nối trong một thiết bị đầu cuối. Chỉ cần nhấn Ctrl+ Alt+ Ttrên bàn phím để mở Terminal. Khi nó mở, chạy (các) lệnh bên dưới:
nmcli con up uuid <put you UUID here>
Đặt cái này để chạy khi khởi động.
Chuyển đến Dash, nhập và chọn Ứng dụng khởi động, nhấp vào Thêm và thêm lệnh nmcli ở trên (với UUID). Nhấp vào "Thêm". Trong kiểu tên, tên bạn muốn sử dụng, và trong Command, đặt toàn bộ dòng nmcli ở trên. Nhấp vào "Thêm" một lần nữa. Bây giờ, khởi động lại và thử nó.
Nguồn: SourceForge
vpnautoconnect
? Trang web của họ là một trang dự án SourceForge bị bỏ hoang và gói không cung cấp trang man. Tough nó nghe có vẻ hứa hẹn.
Tôi khuyên bạn nên kiểm tra kịch bản trong bài viết này :
#!/bin/bash
# YourVPN here is the name of desired vpn connection to monitor
# edit this line:
##################
VPNNAME=YourVPNUUID
# enter desired time between checks here (in seconds)
SLEEPTIME=15
##################
nice=0
for (( ; ; )); do
# creating infinite loop
tested=$(nmcli con status uuid $VPNNAME | grep -c UUID)
#possible results:
# 0 - no connection - need to start
# 1 - working connection, continue.
case $tested in
"0")
echo "Not connected - starting"
#increase nice counter
nice=$[nice+1]
#if "nice start" fails for 3 times
if [ $nice -ge 3 ];
then
#TRY to knock hard way, resetting the network-manager (sometimes it happens in my kubuntu 12.04).
echo "HARD RESTART!"
nmcli nm enable false
nmcli nm enable true
sleep 5
nmcli con up uuid $VPNNAME
nice=0
else
#not yet 3 falures - try starting normal way
echo "trying to enable."
nmcli con up uuid $VPNNAME
fi
;;
"1")
echo "VPN seems to work"
;;
esac
sleep $SLEEPTIME
done
Để tìm ra giá trị của YourVPNUUID
$ VPNNAME, chỉ cần chạy như sau;
nmcli con list | grep -i vpn
vpnautoconnect không hoạt động với tôi trong 12.04 LTS và dường như tôi không phải là người duy nhất.
Tôi đã nghiên cứu nó một chút và kết hợp một số mã hiện có để tạo ra tập lệnh bash đầu tiên của tôi. Nó kiểm tra xem một kết nối VPN đã cho có hoạt động hay không và sẽ kết nối nếu không. Nếu được kết nối, nó sẽ ngủ trong một thời gian nhất định, ví dụ 1 phút và lặp lại quá trình vô thời hạn.
#! /bin/bash
while true
do
connection="Auto Ethernet"
vpn_connection="My VPN connection"
run_interval="60"
active_connection=$(nmcli dev status | grep "${connection}")
active_vpn=$(nmcli dev status | grep "${vpn_connection}")
if [ "${active_connection}" -a ! "${active_vpn}" ];
then
nmcli con up id "${vpn_connection}"
fi
sleep $run_interval
done
Hướng dẫn:
Tạo một tệp văn bản trống có tên vdn-auto-connector.sh (Tôi đã lưu nó trong thư mục nhà của mình. Nhấp chuột phải vào tệp và chọn Thuộc tính-> Quyền và kiểm tra "Cho phép thực thi tệp dưới dạng chương trình". (Bạn có thể phải lưu trữ tệp ở một nơi khác và / hoặc thay đổi quyền đọc / ghi / ngoại lệ nếu máy tính của bạn có nhiều người dùng.)
Sao chép mã từ trên vào tệp bạn đã tạo. Thay thế các giá trị của ba biến sau:
kết nối = "Ethernet tự động"
vpn_connection = "Kết nối VPN của tôi"
run_interval = "60"
Họ có thể được tìm thấy bằng cách mở trình quản lý mạng. Trong trường hợp của tôi, kết nối = "Ethernet tự động" là kết nối có dây hoạt động của tôi (chưa được thử nghiệm với mạng không dây) và vpn_connection = "Kết nối VPN của tôi" là tên của kết nối VPN của tôi. run_interval = "60" là khoảng thời gian tính bằng giây để khi nào lặp lại tập lệnh.
Mở Ứng dụng-> Công cụ hệ thống-> Tùy chọn-> Ứng dụng khởi động. Thêm một tên phù hợp, ví dụ "VPN Auto Connector" và đối với lệnh, hãy chọn tệp .sh bạn đã lưu trước đó. Bây giờ tập lệnh bash sẽ chạy khi khởi động và sẽ tiếp tục kiểm tra xem kết nối VPN có hoạt động không. Bạn có thể thử nó bằng cách ngắt kết nối VPN và nó sẽ được kích hoạt lại tự động.
Vpnautoconnect hoạt động tốt trong Ubuntu 12.04, 13.04 và 13.10 (Tôi nghĩ rằng trong 13.10, tùy chọn "kết nối tự động" trong Trình quản lý mạng đã được sửa và hoạt động ngay bây giờ)
Vì vậy, nếu bạn gặp khó khăn khi cài đặt hoặc làm cho nó hoạt động hoặc không tìm thấy tùy chọn "openvpn" trong menu thả xuống của Network-Manager để tạo kết nối vpn mở, bạn có thể theo dõi tuto này, cung cấp cho bạn Tất cả Các bước, rất rõ ràng và dễ dàng để áp dụng.
Có một cái nhìn TẠI ĐÂY
Và cho tôi biết :-)
Đây là một kịch bản rất mạnh mẽ và đáng tin cậy sẽ:
Điều này đặc biệt hữu ích nếu bạn thường xuyên kết nối với các VPN khác nhau vì bạn không phải chỉ định một kết nối VPN duy nhất để kết nối lại.
#!/bin/bash
nmcli --mode multiline --fields uuid,vpn connection status | grep -qc "^VPN:.*yes" 1>/dev/null 2>&1
if [ $? -ne 0 ]; then
last_vpn_uuid=`nmcli --mode tabular --fields uuid,type,timestamp connection list | grep -E "\s+vpn\s+" | sort -k3 -nr | head -n1 | awk '{ print $1 }'`
nmcli connection up uuid "$last_vpn_uuid"
fi
Tôi đang dùng Ubuntu 14.04 LTS trên một số máy. Do thực tế, tôi có một số điều kiện tiên quyết đặc biệt:
Tôi đang làm việc với kịch bản rất được chứng minh và rất đáng tin cậy này:
Tuy nhiên - có một số cảnh báo với applet của trình quản lý mạng mà tôi có thể tạm thời giải quyết (xem phần Khắc phục sự cố của bài viết).
vpnautoconnect không làm việc cho tôi.
câu trả lời của @vincentYo nhìn thẳng về phía trước, nhưng tôi không thể hoàn thành nó, vì vậy tôi đã làm như dưới đây.
step1: tạo tập lệnh shell và thêm lệnh vpn
vim auto_vpn.sh
#!/bin/sh
vpnc --enable-1des
Bước2: mở tệp sudoer và yêu cầu kernel không hỏi mật khẩu cho tệp này.
sudo vim / etc / sudoers
hầu hết những thứ bên trong tập tin này sẽ được bình luận, chỉ cần thêm vào như bên dưới
tên người dùng ALL = (root) NOPASSWD: your_shell_script.sh
thí dụ:
sharath ALL = (root) NOPASSWD: /home/sharath/workspace/work/src/auto_vpn.sh
Bước 3: thiết lập một công việc định kỳ, sẽ kích hoạt tập lệnh shell này, bên dưới công việc cron sẽ chạy mỗi phút (bcz internet của tôi tiếp tục và tắt, vì vậy mỗi phút)
* * * * * sudo /home/sharath/workspace/work/src/auto_vpn.sh
Tôi đang sử dụng cái này từ nhiều ngày, hoạt động tốt trong Ubuntu 16.04 LTS .. Xin chào !!