{"id":333,"date":"2024-09-24T08:24:36","date_gmt":"2024-09-24T08:24:36","guid":{"rendered":"https:\/\/pietrocornelio-labs.com\/?p=333"},"modified":"2024-09-24T08:41:03","modified_gmt":"2024-09-24T08:41:03","slug":"gnu-linux-killare-inactive-session","status":"publish","type":"post","link":"https:\/\/pietrocornelio-labs.com\/?p=333","title":{"rendered":"GNU\/Linux: Killare inactive session"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Troppe connessioni <strong>CLOSE_WAIT<\/strong> significa che c&#8217;\u00e8 qualcosa di sbagliato nel codice del SW Client.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questo script in Perl fa una cosa interessante: invia il comando ACK alle connessioni che stanno aspettando.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Naturalmente, usare questo script (programma) in perl con cautela adattandolo alle vostre esigenze. Testatelo prima in un ambiente di laboratorio per capirne le funzionalit\u00e0.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/usr\/bin\/perl \n\n# Servono le librerie\n# libnet-rawip-perl \n# libnet-pcap-perl \n# libnetpacket-perl\n# ------------------\n# by Pietro Cornelio\n# ------------------\n# Questo script invia il comando ACK alla connessioni che stanno aspettando.\n\n use strict; \n use Socket; \n use Net::RawIP; \n use Net::Pcap; \n use NetPacket::Ethernet qw(:strip); \n use NetPacket::IP qw(:strip); \n use NetPacket::TCP; \n use POSIX qw(setsid); \n use warnings; \n  \n open(my $CONNECTIONS_WAIT, \"netstat -tulnap | grep CLOSE_WAIT | awk '{print \\$4,\\$5}' | sed 's\/:\/ \/g' |\") || die \"Failed: $!\\n\"; \n  \n while ( my $conn = &lt;$CONNECTIONS_WAIT&gt; ) \n { \n   chomp $conn; \n   my ($src_ip, $src_port, $dst_ip, $dst_port) = split(' ', $conn); \n   my $packet = Net::RawIP-&gt;new({ip =&gt; { frag_off =&gt; 0, tos =&gt; 0, saddr =&gt; $dst_ip, daddr =&gt; $src_ip},\n   tcp =&gt; {dest =&gt; $src_port, source =&gt; $dst_port, seq =&gt; 10, ack =&gt; 1}}); \n   $packet-&gt;send; \n } <\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Troppe connessioni CLOSE_WAIT significa che c&#8217;\u00e8 qualcosa di sbagliato nel codice del SW Client. Questo script in Perl fa una cosa interessante: invia il comando ACK alle connessioni che stanno aspettando. Naturalmente, usare questo script (programma) in perl con cautela adattandolo alle vostre esigenze. Testatelo prima in un ambiente di laboratorio per capirne le funzionalit\u00e0.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[9,10,49,41],"tags":[],"class_list":["post-333","post","type-post","status-publish","format-standard","hentry","category-elettronica-informatica","category-linguaggi-programmazione","category-sistemi-informatici","category-unix"],"jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=\/wp\/v2\/posts\/333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=333"}],"version-history":[{"count":2,"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=\/wp\/v2\/posts\/333\/revisions"}],"predecessor-version":[{"id":335,"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=\/wp\/v2\/posts\/333\/revisions\/335"}],"wp:attachment":[{"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pietrocornelio-labs.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}