<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>http://blaireaulinux.fr//wiki/index.php?action=history&amp;feed=atom&amp;title=Quel_process_%C3%A9coute_sur_un_port</id>
	<title>Quel process écoute sur un port - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="http://blaireaulinux.fr//wiki/index.php?action=history&amp;feed=atom&amp;title=Quel_process_%C3%A9coute_sur_un_port"/>
	<link rel="alternate" type="text/html" href="http://blaireaulinux.fr//wiki/index.php?title=Quel_process_%C3%A9coute_sur_un_port&amp;action=history"/>
	<updated>2026-05-28T01:23:14Z</updated>
	<subtitle>Historique des révisions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.37.0</generator>
	<entry>
		<id>http://blaireaulinux.fr//wiki/index.php?title=Quel_process_%C3%A9coute_sur_un_port&amp;diff=408&amp;oldid=prev</id>
		<title>AdminWiki : Page créée avec « Category:solaris  Lorsqu&#039;un port tcp/ip est à l&#039;écoute, il est parfois utile de savoir quel est le process correspondant. Pour le port 22, tout admin système sait q... »</title>
		<link rel="alternate" type="text/html" href="http://blaireaulinux.fr//wiki/index.php?title=Quel_process_%C3%A9coute_sur_un_port&amp;diff=408&amp;oldid=prev"/>
		<updated>2013-09-18T13:59:42Z</updated>

		<summary type="html">&lt;p&gt;Page créée avec « &lt;a href=&quot;/wiki/index.php?title=Cat%C3%A9gorie:Solaris&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Catégorie:Solaris (page inexistante)&quot;&gt;Category:solaris&lt;/a&gt;  Lorsqu&amp;#039;un port tcp/ip est à l&amp;#039;écoute, il est parfois utile de savoir quel est le process correspondant. Pour le port 22, tout admin système sait q... »&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:solaris]]&lt;br /&gt;
&lt;br /&gt;
Lorsqu&amp;#039;un port tcp/ip est à l&amp;#039;écoute, il est parfois utile de savoir quel est le process correspondant. Pour le port 22, tout admin système sait que c&amp;#039;est ssh, mais certains ports ne peuvent pas se deviner.&lt;br /&gt;
&lt;br /&gt;
Sous Solaris, pour répondre à cette question, le plus simple est d&amp;#039;utiliser lsof, mais il n&amp;#039;est pas installé par défaut. Sinon on peut utiliser des scripts qui se basent sur la commande &amp;#039;&amp;#039;&amp;#039;pfiles&amp;#039;&amp;#039;&amp;#039;. C&amp;#039;est beaucoup, beaucoup plus long à répondre que lsof, mais normalement ça marche sur tous les Solaris de base.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous, on va voir quels process écoutent sur le port 5666. Pour commencer, on vérifie que le port est bien à l&amp;#039;écoute.&lt;br /&gt;
&lt;br /&gt;
 # netstat -an |grep LISTEN |grep 5666&lt;br /&gt;
       *.5666               *.*                0      0 49152      0 LISTEN&lt;br /&gt;
&lt;br /&gt;
==Avec lsof==&lt;br /&gt;
&lt;br /&gt;
 # lsof -i :5666&lt;br /&gt;
 COMMAND   PID   USER   FD   TYPE        DEVICE SIZE/OFF NODE NAME&lt;br /&gt;
 nrpe     9736 nagios    5u  IPv4 0x3008c674040      0t0  TCP *:5666 (LISTEN)&lt;br /&gt;
 nrpe    10507 nagios    5u  IPv4 0x3011dd44340      0t0  TCP *:5666 (LISTEN)&lt;br /&gt;
 nrpe    11080 nagios    5u  IPv4 0x30102752e00      0t0  TCP *:5666 (LISTEN)&lt;br /&gt;
 nrpe    12388 nagios    5u  IPv4 0x6007a842400      0t0  TCP *:5666 (LISTEN)&lt;br /&gt;
 nrpe    12573 nagios    5u  IPv4 0x300d05ac7c0      0t0  TCP *:5666 (LISTEN)&lt;br /&gt;
 nrpe    15447 nagios    5u  IPv4 0x3011ebff540      0t0  TCP *:5666 (LISTEN)&lt;br /&gt;
 nrpe    16331 nagios    5u  IPv4 0x3015ac4eac0      0t0  TCP *:5666 (LISTEN)&lt;br /&gt;
 nrpe    16444 nagios    5u  IPv4 0x30159e15c40      0t0  TCP *:5666 (LISTEN)&lt;br /&gt;
 nrpe    18492 nagios    5u  IPv4 0x3015add71c0      0t0  TCP *:5666 (LISTEN)&lt;br /&gt;
 nrpe    25023 nagios    5u  IPv4 0x300cfdf55c0      0t0  TCP *:5666 (LISTEN)&lt;br /&gt;
&lt;br /&gt;
==Avec un script ksh==&lt;br /&gt;
&lt;br /&gt;
Voici le script (récupéré sur le net).&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/ksh&lt;br /&gt;
 ID=`id | cut -f 2 -d &amp;#039;=&amp;#039; | cut -f 1 -d &amp;#039;(&amp;#039;`&lt;br /&gt;
 if [ $ID -ne 0 ] ; &lt;br /&gt;
 then &lt;br /&gt;
         echo &amp;gt;&amp;amp;2 &amp;quot;Need to be run by root&amp;quot;&lt;br /&gt;
         exit 1 &lt;br /&gt;
 fi&lt;br /&gt;
 i=0&lt;br /&gt;
 while getopts :p:P:a opt&lt;br /&gt;
 do&lt;br /&gt;
 case &amp;quot;${opt}&amp;quot; in&lt;br /&gt;
 p ) port=&amp;quot;${OPTARG}&amp;quot;;i=3;;&lt;br /&gt;
 P ) pid=&amp;quot;${OPTARG}&amp;quot;;i=3;;&lt;br /&gt;
 a ) all=all;i=2;;&lt;br /&gt;
 esac&lt;br /&gt;
 done&lt;br /&gt;
 if [ $OPTIND != $i ]&lt;br /&gt;
 then&lt;br /&gt;
 echo &amp;gt;&amp;amp;2 &amp;quot;usage: $0 [-p PORT] [-P PID] [-a] (Wildcards OK) &amp;quot;&lt;br /&gt;
 exit 1&lt;br /&gt;
 fi&lt;br /&gt;
 shift `expr $OPTIND - 1`&lt;br /&gt;
 if [ &amp;quot;$port&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
 # Enter the port number, get the PID&lt;br /&gt;
 #&lt;br /&gt;
 port=${OPTARG}&lt;br /&gt;
 echo &amp;quot;PID\tProcess Name and Port&amp;quot;&lt;br /&gt;
 echo &amp;quot;_________________________________________________________&amp;quot;&lt;br /&gt;
 for proc in `ptree -a | awk &amp;#039;/ptree/ {next} {print $1};&amp;#039;`&lt;br /&gt;
 do&lt;br /&gt;
 result=`pfiles $proc 2&amp;gt; /dev/null| egrep &amp;quot;port: $port$&amp;quot;`&lt;br /&gt;
 if [ ! -z &amp;quot;$result&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
 program=`ps -fo comm= -p $proc`&lt;br /&gt;
 echo &amp;quot;$proc\t$program\t$port\n$result&amp;quot;&lt;br /&gt;
 echo &amp;quot;_________________________________________________________&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 done&lt;br /&gt;
 elif [ &amp;quot;$pid&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
 # Enter the PID, get the port&lt;br /&gt;
 #&lt;br /&gt;
 pid=$OPTARG&lt;br /&gt;
 # Print out the information&lt;br /&gt;
 echo &amp;quot;PID\tProcess Name and Port&amp;quot;&lt;br /&gt;
 echo &amp;quot;_________________________________________________________&amp;quot;&lt;br /&gt;
 for proc in `ptree -a | awk &amp;#039;/ptree/ {next} $1 ~ /^&amp;#039;&amp;quot;$pid&amp;quot;&amp;#039;$/ {print $1};&amp;#039;`&lt;br /&gt;
 do&lt;br /&gt;
 result=`pfiles $proc 2&amp;gt; /dev/null| egrep port:`&lt;br /&gt;
 if [ ! -z &amp;quot;$result&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
 program=`ps -fo comm= -p $proc`&lt;br /&gt;
 echo &amp;quot;$proc\t$program\n$result&amp;quot;&lt;br /&gt;
 echo &amp;quot;_________________________________________________________&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 done&lt;br /&gt;
 elif [ $all ]&lt;br /&gt;
 then&lt;br /&gt;
 # Show all PIDs, Ports and Peers&lt;br /&gt;
 #&lt;br /&gt;
 echo &amp;quot;PID\tProcess Name and Port&amp;quot;&lt;br /&gt;
 echo &amp;quot;_________________________________________________________&amp;quot;&lt;br /&gt;
 for proc in `ptree -a | sort -n | awk &amp;#039;/ptree/ {next} {print $1};&amp;#039;`&lt;br /&gt;
 do&lt;br /&gt;
 out=`pfiles $proc 2&amp;gt;/dev/null| egrep &amp;quot;port:&amp;quot;`&lt;br /&gt;
 if [ ! -z &amp;quot;$out&amp;quot; ]&lt;br /&gt;
 then&lt;br /&gt;
 name=`ps -fo comm= -p $proc`&lt;br /&gt;
 echo &amp;quot;$proc\t$name\n$out&amp;quot;&lt;br /&gt;
 echo &amp;quot;_________________________________________________________&amp;quot;&lt;br /&gt;
 fi&lt;br /&gt;
 done&lt;br /&gt;
 fi&lt;br /&gt;
 exit 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Avec un script perl==&lt;br /&gt;
&lt;br /&gt;
Voici le script, également trouvé sur le net.&lt;br /&gt;
&lt;br /&gt;
 #! /usr/bin/env perl&lt;br /&gt;
 ##&lt;br /&gt;
 ## Search the processes which are listening on the given port.&lt;br /&gt;
 ##&lt;br /&gt;
 ## For SunOS 5.10.&lt;br /&gt;
 ##&lt;br /&gt;
 &lt;br /&gt;
 use strict;&lt;br /&gt;
 use warnings;&lt;br /&gt;
 &lt;br /&gt;
 die &amp;quot;Port missing&amp;quot; unless $#ARGV &amp;gt;= 0;&lt;br /&gt;
 my $port = int($ARGV[0]);&lt;br /&gt;
 die &amp;quot;Invalid port&amp;quot; unless $port &amp;gt; 0;&lt;br /&gt;
 &lt;br /&gt;
 my @pids;&lt;br /&gt;
 map { push @pids, $_ if $_ &amp;gt; 0; } map { int($_) } `ls /proc`;&lt;br /&gt;
 &lt;br /&gt;
 foreach my $pid (@pids) {&lt;br /&gt;
     open (PF, &amp;quot;pfiles $pid 2&amp;gt;/dev/null |&amp;quot;) &lt;br /&gt;
         || warn &amp;quot;Can not read pfiles $pid&amp;quot;;&lt;br /&gt;
     $_ = &amp;lt;PF&amp;gt;;&lt;br /&gt;
     my $fd;&lt;br /&gt;
     my $type;&lt;br /&gt;
     my $sockname;&lt;br /&gt;
     my $peername;&lt;br /&gt;
     my $report = sub {&lt;br /&gt;
         if (defined $fd) {&lt;br /&gt;
             if (defined $sockname &amp;amp;&amp;amp; ! defined $peername) {&lt;br /&gt;
                 print &amp;quot;$pid $type $sockname\n&amp;quot;; } } };&lt;br /&gt;
     while (&amp;lt;PF&amp;gt;) {&lt;br /&gt;
         if (/^\s*(\d+):.*$/) {&lt;br /&gt;
             &amp;amp;$report();&lt;br /&gt;
             $fd = int ($1);&lt;br /&gt;
             undef $type;&lt;br /&gt;
             undef $sockname;&lt;br /&gt;
             undef $peername; }&lt;br /&gt;
         elsif (/(SOCK_DGRAM|SOCK_STREAM)/) { $type = $1; }&lt;br /&gt;
         elsif (/sockname: AF_INET[6]? (.*)  port: $port/) {&lt;br /&gt;
             $sockname = $1; }&lt;br /&gt;
         elsif (/peername: AF_INET/) { $peername = 1; } }&lt;br /&gt;
     &amp;amp;$report();&lt;br /&gt;
     close (PF); }&lt;/div&gt;</summary>
		<author><name>AdminWiki</name></author>
	</entry>
</feed>