Làm cách nào để biết OS X được kết nối với mạng VPN từ dòng lệnh?


12

Làm cách nào để biết OS X được kết nối với mạng VPN từ dòng lệnh?

Bằng cách chạy ifconfigmà không có bất kỳ đối số nào khi tôi được kết nối, tôi thấy rằng có một utun0giao diện dường như là kết nối VPN. Khi tôi ngắt kết nối nó sẽ biến mất.

Tôi tin rằng tôi có thể sử dụng một cái gì đó như thế này để kiểm tra chuỗi utun0và đếm số lần xuất hiện:

ifconfig | grep -c utun0

Nhưng có một cách dễ dàng hoặc hiệu quả hơn để kiểm tra điều này? Nếu utun0là một thiết bị, hoặc thậm chí là một thiết bị giả, tôi không nên kiểm tra xem nó có tồn tại với thứ gì đó như:

if [ -a '/dev/utun0' ]

Thật không may, tôi không thấy bất kỳ thay đổi nào trong thư mục đó khi kết nối và ngắt kết nối, tôi chỉ xem /dev/tun0qua /dev/tun15và tôi không thể thực hiện được catngay cả với sudo...

Có cách nào đơn giản hơn để biết tôi có kết nối VPN không?


Loại VPN nào? Bạn có cấu hình trong Tùy chọn hệ thống không?
Daniel Beck

@DanielBeck -Vâng
PT

Câu trả lời:


10

Bạn cũng có thể, kể từ Mountain Lion 1 , sử dụng lệnh scutil.

Ví dụ:

$ scutil --nc list | grep Connected

Để được trợ giúp chi tiết hơn, bạn có thể xem trang hướng dẫn hoặc chạy:

$ scutil --nc help

Chú thích:

  1. Tôi không biết lệnh này hiện có trong các phiên bản OSX trước Mountain Lion, nhưng tôi có thể sai.

0

Vì bạn đang xác định giao diện thông qua Tùy chọn hệ thống, một cách dễ dàng để thực hiện việc này sẽ là sử dụng AppleScript. Đây là một đoạn sẽ làm những gì bạn muốn làm:

# Get the major version number. Mavericks changes the way things are done.
set osversion to do shell script "sw_vers 2>/dev/null | awk '/ProductVersion/ { print $2    }' | cut -f 2 -d ."
if osversion is less than 9 then
    set vpntype to 10
else
    set vpntype to 11
end if
try
    tell application "System Events"
        tell current location of network preferences
            set vpnservice to (name of first service whose kind is vpntype) as string
            set myConnection to the service vpnservice
            if myConnection is not null then
                if current configuration of myConnection is not connected then
                    return "Not Connected"
                else
                    return "Connected"
                end if
            end if
        end tell
    end tell
on error error_message
    return error_message
    error number -128
end try

Lưu tập tin này dưới dạng tập lệnh ở đâu đó (và đảm bảo bạn lưu tập tin dưới dạng tập tin tập lệnh!).

Bất cứ khi nào bạn muốn chạy nó, hãy sử dụng lệnh: osascript /path/to/script.scpt

Hoặc tạo một bí danh thực hiện điều đó.

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.