Sockstat adalah utiliti baris perintah serba lengkap yang disertakan dengan FreeBSD. Ini melihat penggunaan yang sangat besar dalam memeriksa sambungan rangkaian dan soket terbuka. Dalam FreeBSD, ia menyenaraikan nama dan status proses latar belakang dan latar depan yang menyebabkan port rangkaian dibuka. Anda bahkan boleh menyesuaikannya untuk mengatur senarai soket komunikasi mengenai status sambungan, versi IP, port apa yang sedang didengarkan oleh program tertentu, dll., dan mempermudah hasil berdasarkan pemilikan soket dan deskriptor untuk soket komunikasi. Dengan Sockstat, anda juga dapat melihat semua perincian yang rumit pada setiap soket / IPC domain Unix. Langkah yang tepat adalah mengintegrasikan sockstat dengan saringan grep untuk menggandakan fungsinya dan memanfaatkannya sepenuhnya.
Mari lihat beberapa perkara kemas yang boleh kita hasilkan dengan Sockstat di FreeBSD.
Senaraikan Port yang berfungsi di FreeBSD dengan Sockstat
Perintah Sockstat menyenaraikan semua soket yang sedang dibuka dalam sistem FreeBSD. Taipkan arahan sockstat tanpa sebarang bendera atau pilihan untuk melihat senarai soket terbuka:
$ sockstat
Mari luangkan sedikit masa dan kaji maksud setiap label lajur dalam output. Lajur pertama dari kiri dilabel PENGGUNA, dan ia menyenaraikan semua akaun pengguna (root, mysql) yang menjadi milik setiap soket. Header kolom kedua adalah COMMAND, dan header lajur ini menyenaraikan semua perintah yang telah menetapkan setiap soket untuk dibuka. Lajur PID dan lajur FD menyenaraikan ID proses dan deskriptor fail, masing-masing, dari soket. Lajur berjudul PROTO memaparkan semua protokol pengangkutan jenis soket yang dihubungkan ke setiap port yang dibuka. Dua lajur terakhir adalah Alamat Tempatan dan Alamat Asing. Yang pertama dari dua ini menyenaraikan alamat IP tempatan untuk setiap soket terbuka. Manakala yang terakhir menunjukkan alamat IP apa yang dihubungkan ke setiap soket ini.
Senaraikan versi tertentu dari Opened Ports di FreeBSD
Untuk menyenaraikan soket terbuka dengan versi protokol tertentu sahaja, misalnya, versi Ipv4, tambahkan bendera -4 pada akhir arahan sockstat:
$ sockstat -4
Anda juga boleh memaparkannya dengan senarai versi lain yang serupa, misalnya
$ sockstat -6
Sekiranya memaparkan semua soket dengan IPv6.
Senaraikan soket terbuka berdasarkan TCP / UDP di FreeBSD
Tambahkan bendera -P ke perintah sockstat untuk menunjukkan senarai soket terbuka berdasarkan TCP atau UDP. Anda juga perlu menambahkan nama argumen protokol ke perintah, yang dapat anda cari dengan menuju ke / etc / protokol fail dan memeriksa fail di sana. Untuk hanya mempunyai soket berasaskan TCP, ketik perintah berikut:
$ sockstat -P tcpBegitu juga, anda boleh membuat senarai pendek berdasarkan UDP:
$ sockstat -P udpKedua-duanya dapat dihubungkan bersama dengan sangat sederhana:
$ sockstat -P tcp, udp
Setakat ini, sockstat tidak memberikan sokongan kepada protokol ICMP.
Paparkan soket dengan Nombor Port tertentu
Untuk melihat semua soket yang dibuka, baik TCP dan UDP, sementara senarai disusun berdasarkan nombor port (tempatan dan sebaliknya), ketik perintah sockstat dengan bendera yang sesuai:
$ sockstat -P tcp -p 443$ sockstat -P udp -p 53
$ sockstat -P tcp -p 443,53,80,21
Dalam perintah di atas, yang pertama menunjukkan TCP HTTPS Port, yang kedua adalah UDP DNS Ports, sementara yang ketiga menunjukkan kedua-duanya.
Lihat port terbuka yang didengarkan di FreeBSD
Dengan bendera -l ditambahkan pada perintah sockstat, anda akan diberikan soket terbuka yang sedang mendengar melalui rangkaian protokol dan semua soket domain UNIX yang terbuka serta paip yang dinamakan.
$ sockstat -lSenaraikan port yang didengarkan secara aktif di rangkaian
Tambahkan bendera -l dan -s ke perintah sockstat agar port TCP terbuka disusun mengikut status mendengarnya.
$ sockstat -46 -l -s
UDP tidak dapat ditampilkan sebagai protokol bukan rangkaian, sehingga tidak menyimpan data mengenai status mendengar.
Susun port terbuka dengan aplikasi / arahan menggunakannya
Inilah bahagian di mana memasangkan arahan Sockstat dengan utiliti grep sangat berguna; Dengan grep utiliti, anda boleh mempunyai port terbuka yang disenaraikan oleh aplikasi yang sedang dalam proses menggunakannya.
Perintah yang akan anda gunakan untuk menyenaraikan port terbuka yang dihubungkan terutamanya dengan pelayan ntpd adalah:
$ sockstat -46 | grep ntpd
Anda boleh membuat penyenaraian lebih spesifik dengan hanya memaparkan soket yang disambungkan dengan menambahkan bendera -c pada perintah di atas:
$ sockstat -46 -c | grep ntpd
Paparkan semua Unix Sockets
Minta semua soket domain Unix disenaraikan dengan menambahkan bendera ke arahan sockstat:
$ sockstat -u
Ini juga mesti menunjukkan paip yang dinamakan bersama dengan Unix Sockets.
Susun port terbuka dengan HTTPS Connected Protocols
Untuk memaparkan senarai yang ditunjukkan oleh protokol HTTPS untuk setiap soket, gunakan arahan di bawah:
$ sockstat -46 -s -P TCP -p 443 -c
Senaraikan Soket Jauh HTTP
Anda juga boleh menyenaraikan semua soket jauh yang kini menggunakan protokol HTTP. Jalankan salah satu daripada perintah berikut di terminal:
$ sockstat -46 -c | egrep '80 | 443 '| awk 'cetak $ 7' | uniq -c | urutkan -nr$ sockstat -46 -c -p 80,443 | grep -v ALAMAT | awk 'print $ 7' |
uniq -c | urutkan -nr
Cari berapa kali alamat IP menghantar permintaan
Untuk mengetahui berapa banyak permintaan sambungan yang diterima dari setiap alamat IP, anda dapat menjalankan perintah berikut:
$ sockstat -46 -c | egrep '80 | 443 '| awk 'cetak $ 7' | potong -d: -f1 | uniq -c | urutkan -n
Dengan menentukan sama ada terdapat banyak permintaan sambungan yang luar biasa tinggi yang dikirimkan oleh alamat IP, anda dapat mengenal pasti bahawa ada niat jahat dan boleh memasukkan amaran kuning secara positif dan mengambil protokol keselamatan yang sesuai.
Hantar pertanyaan DNS dari soket TCP
Anda boleh menghantar pertanyaan DNS menggunakan soket TCP di konsol, dengan syarat rangkaian tersebut bebas dari sebarang lalu lintas DNS. Jalankan arahan di bawah:
$ dig + tcp www.domain.com @ 127.0.0.1Mengakhiri
Oleh itu, anda telah belajar banyak tentang penggunaan perintah sockstat dan variasinya dengan bendera dan suis. Anda juga melihat bagaimana ia digunakan dengan cara yang berbeza untuk menunjukkan diagnostik rangkaian dalam pilihan yang berbeza dan menggunakan maklumat ini untuk melakukan penyelesaian masalah pelbagai aspek di FreeBSD. Itu banyak, tetapi sekarang anda sudah biasa dengan perkara ini, anda harus mempertimbangkan untuk memasukkan baris perintah sockstat dengan beberapa alat baris perintah yang kuat, seperti netstat dan Isof.