{"id":12639,"date":"2017-07-17T15:56:57","date_gmt":"2017-07-17T13:56:57","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=12639"},"modified":"2017-07-17T15:56:57","modified_gmt":"2017-07-17T13:56:57","slug":"netstat-monitorare-lo-stato-delle-nostre-connessioni","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/netstat-monitorare-lo-stato-delle-nostre-connessioni\/","title":{"rendered":"Netstat: monitorare lo stato delle nostre connessioni"},"content":{"rendered":"<p>Quando si pratica\u00a0programmazione di rete, dialogando\u00a0con servizi esterni o attivandone di propri, capita che si voglia verificare l&#8217;andamento complessivo delle connessioni. Esiste un comando Linux, <strong>netstat<\/strong>, che permette di avere rapidamente la situazione completa a patto che se ne conoscano le opzioni.\u00a0Vediamone alcuni esempi molto comuni.<\/p>\n<p>Per avere una <strong>lista completa<\/strong> delle connessioni, si pu\u00f2 usare l&#8217;opzione<strong> -a<\/strong>:<\/p>\n<pre class=\"lang:sh decode:true \">&gt; netstat -a<\/pre>\n<p>L&#8217;elenco ottenuto sar\u00e0 completo di connessioni di ogni genere (la prima colonna dell&#8217;output ne segnala la tipologia):<\/p>\n<pre class=\"lang:sh decode:true\">Proto CodaRic CodaInv Indirizzo locale      Indirizzo remoto        Stato   \r\n  \r\ntcp        0      0 192.168.122.1:domain    *:*                     LISTEN \r\ntcp6      38      0 192.168.233.188:51230   mail.eclipse.org:https  CLOSE_WAIT\r\nudp        0      0 192.168.122.1:domain    *:*<\/pre>\n<p>Per restringere la ricerca alle <strong>sole porte TCP<\/strong>, si deve aggiungere un&#8217;opzione <strong>-t<\/strong>:<\/p>\n<pre class=\"lang:sh decode:true\">&gt; netstat -at<\/pre>\n<p>e, cos\u00ec facendo, la prima colonna indicher\u00e0 solo il protocollo tcp.<\/p>\n<p>Molto importante, al fine del monitoraggio dei servizi attivati nella macchina, \u00e8 l&#8217;uso dell&#8217;opzione <strong>-l<\/strong> per rilevare solo le porte in cui ci sono <strong>servizi listening<\/strong>, quelli in ascolto:<\/p>\n<pre class=\"lang:sh decode:true\">&gt; netstat -lt<\/pre>\n<p>Inoltre, il tutto pu\u00f2 essere velocizzato con l&#8217;opzione <strong>-n<\/strong> che non effettua la conversione degli indirizzi in nomi simbolici:<\/p>\n<pre class=\"lang:sh decode:true\">&gt; netstat -ltn<\/pre>\n<p>Altro aspetto interessante consiste nell&#8217;uso dell&#8217;opzione <strong>-p<\/strong> che offre anche il PID, l&#8217;<strong>identificativo del processo<\/strong> che occupa la porta. Questo, ad esempio, pu\u00f2 rivelarsi utile nel caso in cui si voglia arrestare il servizio:<\/p>\n<pre class=\"lang:sh decode:true\">&gt; netstat -tlp<\/pre>\n<p>Cos\u00ec apparirebbe la rilevazione del\u00a0processo 1135 che incarna il server MongoDB:<\/p>\n<pre class=\"lang:sh decode:true \">Proto CodaRic CodaInv   Indirizzo-locale Indirizzo-remoto\u00a0Stato    PID\/Program\r\n\r\ntcp      0      0       127.0.0.1:27017    0.0.0.0:*      LISTEN   1135\/mongod<\/pre>\n<p>La shell Linux si pu\u00f2 rivelare un alleato importante offrendo strumenti pratici che aumentano la nostra visibilit\u00e0 nello sviluppo di backend o nel testing di app web o mobile.<\/p>\n<p>Conoscevate gi\u00e0 netstat ? Commentate e diteci cosa ne pensate, magari suggerendoci qualche sua altra opzione interessante!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Quando si pratica\u00a0programmazione di rete, dialogando\u00a0con servizi esterni o attivandone di propri, capita che si voglia verificare&#8230;<\/p>\n","protected":false},"author":561,"featured_media":13161,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[481],"tags":[1721,1814,1414,1815,1816],"class_list":["post-12639","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-risorse-utili","tag-linux","tag-netstat","tag-networking","tag-tcp","tag-udp"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12639","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/561"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=12639"}],"version-history":[{"count":7,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12639\/revisions"}],"predecessor-version":[{"id":13163,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12639\/revisions\/13163"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/13161"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=12639"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=12639"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=12639"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}