Saya sangat merekomendasikan untuk tidak menggunakan ping
konektivitas. Ada terlalu banyak admin jaringan yang menonaktifkan ICMP (protokol yang digunakannya) karena kekhawatiran tentang serangan banjir ping yang berasal dari jaringan mereka.
Sebagai gantinya, saya menggunakan tes cepat dari server yang andal pada port yang bisa Anda buka:
if nc -zw1 google.com 443; then
echo "we have connectivity"
fi
Ini menggunakan netcat ( nc
) dalam mode pemindaian port -nya , tusukan cepat ( -z
adalah mode nol-I / O [digunakan untuk memindai] ) dengan batas waktu cepat ( -w 1
menunggu paling banyak satu detik). Ia memeriksa Google di port 443 (HTTPS).
Saya telah menggunakan HTTPS daripada HTTP sebagai upaya untuk melindungi dari portal captive dan proxy transparan yang dapat menjawab pada port 80 (HTTP) untuk host mana pun. Ini lebih kecil kemungkinannya ketika menggunakan port 443 karena akan ada ketidaksesuaian sertifikat, tetapi itu masih terjadi.
Jika Anda ingin membuktikan diri terhadap hal itu, Anda harus memvalidasi keamanan pada koneksi:
test=google.com
if nc -zw1 $test 443 && echo |openssl s_client -connect $test:443 2>&1 |awk '
handshake && $1 == "Verification" { if ($2=="OK") exit; exit 1 }
$1 $2 == "SSLhandshake" { handshake = 1 }'
then
echo "we have connectivity"
fi
Ini memeriksa koneksi (daripada menunggu openssl untuk kehabisan waktu) dan kemudian membuat jabat tangan SSL, dengan mengetik pada fase verifikasi. Diam-diam keluar ("benar") jika verifikasi "OK" atau yang keluar dengan kesalahan ("salah"), maka kami melaporkan temuan tersebut.
$ ethtool <dev> | awk '$0 ~ /link detected/{print $3}'