Làm cách nào để biết nếu tôi đăng nhập qua VPN?


16

Tôi sử dụng Juniper Networks (một chương trình Java thiết lập kết nối VPN).

Có một dòng lệnh tồn tại cho phép tôi kiểm tra xem liệu tôi đã đăng nhập bằng Juniper không?

Câu trả lời:


20

Nếu bạn chạy ifconfig -ahoặc ip link showbạn sẽ thấy một cái gì đó như tunXbên dưới, đây là thiết bị điều chỉnh được sử dụng bởi hầu hết VPN dựa trên tuyến đường:


# tun device
# used by route-based VPN

    tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
              inet addr:  P-t-P:  Mask:
              UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1300  Metric:1
              RX packets:10 errors:0 dropped:0 overruns:0 frame:0
              TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:500 
              RX bytes:1435 (1.4 KB)  TX bytes:1677 (1.6 KB)

# Jan 2020 refresh
# sample ifconfig output with 3 virtual interfaces
# for route-based VPN or overlay network

nebula1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1300
        inet 172.16.87.100  netmask 255.255.255.0  destination 172.16.87.100
        inet6 fe80::b2c4:4360:a3ae:15aa  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 500  (UNSPEC)
        RX packets 37  bytes 2980 (2.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 331  bytes 17408 (17.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1500
        inet 172.16.200.1  netmask 255.255.255.0  destination 172.16.200.1
        inet6 fe80::9d2e:5979:5ac2:43df  prefixlen 64  scopeid 0x20<link>
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 100  (UNSPEC)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1677  bytes 80496 (80.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP>  mtu 1420
        inet 172.16.111.100  netmask 255.255.255.0  destination 172.16.111.100
        unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  txqueuelen 1000  (UNSPEC)
        RX packets 37337578  bytes 10884991930 (10.8 GB)
        RX errors 0  dropped 67878  overruns 0  frame 0
        TX packets 60202096  bytes 66040772964 (66.0 GB)
        TX errors 169  dropped 44429 overruns 0  carrier 0  collisions 0

ip link đầu ra


5: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/none
6: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 100
    link/none
11: nebula1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1300 qdisc fq_codel state UNKNOWN mode DEFAULT group default qlen 500
    link/none

Hoặc nếu bạn đang sử dụng IPsec (ví dụ: strongSwan), ifconfig -asẽ hiển thị một thiết bị đường hầm (tunX) như bên dưới nếu bạn đang sử dụng chế độ Dựa trên tuyến đường (mặc định là dựa trên chính sách):

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:192.168.11.2  P-t-P:192.168.11.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Nếu strongSwan đang chạy định tuyến dựa trên chính sách (mặc định), bạn sẽ có thể tìm ra bằng cách thao tác bảng định tuyến kernel hoặc xem ip-xfrmkhung IP để chuyển đổi các gói (mã hóa tải trọng).

# manipulate kernel routing table for more info

ip r
route -nr

ip r show table main
ip r show table local

# strongswan specific table id 220
ip r show table 220

Ngoài ra, bạn có thể sử dụng ip tuntap showđể xem có thiết bị tun / tap để xác định xem VPN có được sử dụng hay không.

    ip tuntap show
    tun0: tun

2
Dựa trên câu trả lời của Terry Wang, bạn có thể sử dụng một lớp lót này để kiểm tra nó: ifconfig tun0 &> /dev/null && echo -e "\033[1;32m" "-- VPN is active --" "\033[0m"
zipizap

9

Bạn cũng có thể kiểm tra các tuyến đường của bạn với routelệnh. Bạn sẽ thấy nhiều tuyến đường hơn bình thường và đến các điểm đến khác nhau.

Thí dụ

Kết nối mà không có cây bách xù:

moose@pc07:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.255.0   U     2      0        0 wlan0
link-local      *               255.255.0.0     U     1000   0        0 wlan0
default         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0

Kết nối với Juniper:

moose@pc07:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.1     *               255.255.255.255 UH    1      0        0 wlan0
vpn.kit.edu     192.168.0.1     255.255.255.255 UGH   1      0        0 wlan0
192.168.0.0     *               255.255.255.0   U     2      0        0 wlan0
link-local      *               255.255.0.0     U     1000   0        0 wlan0
default         vpn-cl-192-62.s 0.0.0.0         UG    1      0        0 tun0
default         192.168.0.1     0.0.0.0         UG    10     0        0 wlan0

Đây là câu trả lời tốt hơn sau đó là câu trả lời được chấp nhận, ít nhất là nếu bạn hỏi tôi :)
Aleks

1

Sử dụng các ncdiaglệnh cây bách xù sẽ cung cấp cho bạn thông tin này.

  • Sử dụng ncdiag -tcho một bài kiểm tra đường hầm.
  • Sử dụng ncdiag -hcho thông tin máy chủ.

Cụ thể hơn:

$ cd ~/.juniper_networks/network_connect
~/.juniper_networks/network_connect$ file !$
file ncdiag
ncdiag: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, stripped
~/.juniper_networks/network_connect$ ./ncdiag 
    usage: ./ncdiag -A [or]
    usage: ./ncdiag -i -s -d -t -h -a -r <hostname> -k -v
     -A : All tests
     -i : installation test 
     -s : service test 
     -d : driver tests 
     -t : tunnel test 
     -h : host info 
     -a : adaptor test 
     -r : resolve host 
     -k : kill NC gui 
     -v : version   

~/.juniper_networks/network_connect$ ./ncdiag -t
+==============================================================================+
|   Tests:          |        Results:                      |
+==============================================================================+
       o  NC Diagnostics            
             NC Tunnel Test          Established

       Finished running tests 
+==============================================================================+
~/.juniper_networks/network_connect$ ./ncdiag -h
+==============================================================================+
|   Tests:          |        Results:                      |
+==============================================================================+

   o  Host Details              
         Hostname            tau
         Domainname          (none)
         IP Routing Enabled      Yes
         IP Loopback test        Passed
         Nameserver Details     
           8.8.8.8       Ping Passed

           8.8.6.6       Ping Passed
         Gateway Ping Test           
            10.20.20.1       Ping Passed

   Finished running tests 

+ ================================================= ============================= +


1

Trong trường hợp của tôi, thiết bị là cscotun0(Tôi sử dụng Máy khách di động an toàn Cisco Anyconect) chứ không phải tun0.

Do đó (dựa trên câu trả lời của Terry Wang và bình luận của zipizap), nếu bạn không biết tên thiết bị, bạn có thể sử dụng:

if [ "0" == `ifconfig | grep tun0 | wc -l` ]; then echo "n"; else echo "y"; fi

hoặc, nếu bạn biết tên thiết bị:

if ifconfig cscotun0 &>/dev/null; then echo "y"; else echo "n"; fi

CẬP NHẬT Với Ubuntu 18.04, tôi cần:

if [ "`ifconfig | grep vpn0`" != "" ] ; then echo yes; else echo no; fi

Thật không may, ifconfig vpn0bây giờ trả về 0 (thành công) ngay cả khi vpn không hoạt động.


0

Giải pháp thay thế (Gnome)


Kiểm tra khi nó chạy

➜ ifconfig -a | grep vpn | grep RUNNING
1:179:vpn0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1334

Kiểm tra khi nó không chạy

➜ ifconfig -a G vpn
179:vpn0: flags=4240<POINTOPOINT,NOARP,MULTICAST>  mtu 1334

để bạn có thể kiểm tra LÊN , CHẠY qua grep như hình bên dưới

ifconfig -a | grep vpn | grep RUNNING
vpn_running=$?

if [ $vpn_running -ne 0 ]; then

    echo "VPN <span color='yellow'><tt>UP</tt></span> | iconName=utilities-terminal-symbolic bash='nmcli con up id VPN' terminal=false"
else
    echo "VPN <span color='red'><tt>(DOWN)</tt></span> | iconName=utilities-terminal-symbolic bash='nmcli con down id VPN' terminal=false"
fi

Tôi đang sử dụng plugin shell argo gnome tuyệt vời và ở trên là một phần của tập lệnh của tôi để tôi có thể khởi chạy VPN từ thanh công cụ (hoặc tắt 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.