Oke, ini membuat saya takut - Saya melihat sekitar 1500-2500 di antaranya:
root@wherever:# netstat
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:60930 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60934 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60941 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60947 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60962 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60969 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60998 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60802 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60823 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60876 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60886 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60898 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60897 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60905 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60918 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60921 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60673 localhost:sunrpc TIME_WAIT
tcp 0 0 localhost:60680 localhost:sunrpc TIME_WAIT
[etc...]
root@wherever:# netstat | grep 'TIME_WAIT' |wc -l
1942
Angka itu berubah dengan cepat.
Saya memiliki konfigurasi iptables yang cukup ketat sehingga saya tidak tahu apa yang menyebabkan ini. ada ide?
Terima kasih,
Tamas
Sunting: Output dari 'netstat -anp':
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:60968 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60972 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60976 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60981 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60980 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60983 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60999 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60809 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60834 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60872 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60896 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60919 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60710 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60745 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60765 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60772 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60558 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60564 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60600 127.0.0.1:111 TIME_WAIT -
tcp 0 0 127.0.0.1:60624 127.0.0.1:111 TIME_WAIT -
Jawaban:
EDIT: tcp_fin_timeout TIDAK mengontrol durasi TIME_WAIT, hardcoded pada 60-an
Seperti yang disebutkan oleh orang lain, memiliki beberapa koneksi
TIME_WAIT
adalah bagian normal dari koneksi TCP. Anda dapat melihat intervalnya dengan memeriksa/proc/sys/net/ipv4/tcp_fin_timeout
:Dan mengubahnya dengan memodifikasi nilai itu:
Atau secara permanen dengan menambahkannya ke /etc/sysctl.conf
Juga, jika Anda tidak menggunakan layanan RPC atau NFS, Anda bisa mematikannya:
Dan matikan sepenuhnya
sumber
ss --numeric -o state time-wait dst 10.0.0.100
TIME_WAIT normal. Ini adalah keadaan setelah soket ditutup, digunakan oleh kernel untuk melacak paket-paket yang mungkin hilang dan terlambat datang ke pesta. Banyaknya koneksi TIME_WAIT adalah gejala mendapatkan banyak koneksi yang berumur pendek, tidak perlu khawatir.
sumber
Itu tidak penting. Semua yang menandakan adalah bahwa Anda membuka dan menutup banyak koneksi TCP Sun RCP (1500-2500 dari mereka setiap 2-4 menit). The
TIME_WAIT
negara adalah apa socket masuk ke dalam ketika menutup, untuk mencegah pesan dari tiba untuk aplikasi yang salah seperti mereka mungkin jika soket yang digunakan kembali terlalu cepat, dan untuk beberapa tujuan lain yang bermanfaat. Jangan khawatir tentang itu.(Kecuali, tentu saja, Anda tidak benar-benar menjalankan apa pun yang seharusnya memproses banyak operasi RCP. Lalu, khawatir.)
sumber
Sesuatu pada sistem Anda sedang melakukan banyak RPC (Remote Procedure Calls) dalam sistem Anda (perhatikan bahwa sumber dan tujuan adalah localhost). Itu sering terlihat untuk lockd untuk NFS mounts, tetapi Anda mungkin juga melihatnya untuk panggilan RPC lainnya seperti rpc.statd atau rpc.spray.
Anda dapat mencoba menggunakan "lsof -i" untuk melihat siapa yang membuka soket itu dan melihat apa yang melakukannya. Mungkin tidak berbahaya.
sumber
tcp_fin_timeout
TIDAK mengontrolTIME_WAIT
penundaan. Anda dapat melihat ini dengan menggunakan ss atau netstat dengan -o untuk melihat penghitung waktu mundur:bahkan dengan tcp_fin_timeout yang diatur ke 3, hitungan mundur untuk TIME_WAIT masih dimulai dari 60. Namun jika Anda memiliki net.ipv4.tcp_tw_reuse diatur ke 1 (
echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse
) maka kernel dapat menggunakan kembali soket di TIME_WAIT jika itu menentukan tidak akan ada kemungkinan konflik di TCP penomoran segmen.sumber
Saya punya masalah yang sama juga. Saya menghabiskan beberapa jam untuk mencari tahu apa yang sedang terjadi. Dalam kasus saya, alasan untuk ini adalah bahwa netstat mencoba mencari nama host yang sesuai dengan IP (saya berasumsi itu menggunakan API gethostbyaddr). Saya menggunakan instalasi Linux tertanam yang tidak memiliki /etc/nsswitch.conf. Yang mengejutkan saya, masalahnya hanya ada ketika Anda benar-benar melakukan netstat -a (menemukan ini dengan menjalankan portmap dalam mode verbose dan debug).
Sekarang apa yang terjadi adalah sebagai berikut: Per default, fungsi pencarian juga mencoba untuk menghubungi dap ypbind (Sun Yellow Pages, juga dikenal sebagai NIS) untuk meminta nama host. Untuk menanyakan layanan ini, portmapper portmap harus dihubungi untuk mendapatkan port untuk layanan ini. Sekarang portmapper dalam kasus saya dihubungi melalui TCP. Portmapper kemudian memberi tahu fungsi libc bahwa tidak ada layanan seperti itu dan koneksi TCP ditutup. Seperti yang kita ketahui, koneksi TCP tertutup memasuki keadaan TIME_WAIT untuk beberapa waktu. Jadi netstat menangkap koneksi ini ketika mendaftar dan baris baru ini dengan IP baru mengeluarkan permintaan baru yang menghasilkan koneksi baru dalam status TIME_WAIT dan seterusnya ...
Untuk mengatasi masalah ini, buat /etc/nsswitch.conf yang tidak menggunakan layanan NPC rpc yaitu dengan konten berikut:
sumber