Saya mengoperasikan beberapa daemon server yang menggunakan udp untuk berkomunikasi dengan sejumlah besar klien. Bagaimana cara menemukan dan mendaftar semua "koneksi" udp aktif yang sedang berbicara ke server untuk memperkirakan jumlah klien aktif yang terhubung ke daemon server? Saya tidak bisa memikirkan cara mudah untuk melakukan ini selain mengendus paket dengan tshark atau tcpdump dan melihat sumber ip dari paket udp pergi ke daemon server dan ya, saya tahu UDP adalah protokol tanpa sambungan dan tanpa kewarganegaraan.
linux
networking
udp
packet-analyzer
Batu api
sumber
sumber
sudo lsof -iUDP
Jawaban:
UDP adalah protokol stateless - jadi, tidak ada negara.
Untuk melihat apa yang mendengarkan UDP:
sumber
Anda bisa mencatat setiap koneksi UDP menggunakan iptables:
Mungkin Anda ingin membatasi ke beberapa port. Periksa dokumentasi di sini atau, lebih disukai
man iptables
,.sumber
Di Linux, dengan asumsi bahwa iproute2 diinstal, Anda dapat menjalankan perintah ss untuk menarik soket udp seperti:
Atau semua soket udp, dengan proses terkait:
Berikut adalah contoh tambahan yang dapat Anda gunakan dengan ss, termasuk mendapatkan koneksi per proses.
http://www.cyberciti.biz/files/ss.html
sumber
ss
hanya menampilkan soket UDP bukan koneksi .ss -pa
danss -upa
dalam contoh? Haruskah setengah dihapus?Seperti yang disebutkan orang lain, UDP tidak memiliki koneksi sehingga status tidak dilacak di lokasi standar yang mungkin Anda lihat.
Salah satu metode yang dapat Anda gunakan adalah cukup mengatur beberapa aturan netfilter sederhana yang menggunakan
--state
opsi. Ini akan memaksa netfilter untuk melacak status terkait dengan UDP. Setelah Anda membuat aturan maka Anda dapat menggunakan alat seperti conntrack untuk melihat tabel status netfilter. Di sini misalnya adalah seperti apa bentuk sistem saya. Anda dapat melihat ada beberapa sistem yang sering berkomunikasi ke udp / 1194 (OpenVPN).Aturan netfilter Anda bisa sesederhana ini.
sumber
terinspirasi oleh jawaban ini , saya telah menemukan bahwa
ss
sintaks berikut ini berfungsi untuk saya:... karena "mendengarkan" soket UDP seperti soket TCP "tertutup".
sumber