Je voudrais savoir quel processus (en particulier, l'ID de processus) utilise un port donné. Le seul hic, c'est que je ne veux pas utiliser sudo, ni connecté en tant que root. Les processus pour lesquels je veux que cela fonctionne sont exécutés par le même utilisateur que celui pour lequel je veux trouver l'ID du processus - j'aurais donc pensé que c'était simple.
Les deux lsof
et netstat
ne me diront pas l'ID du processus à moins que je ne les exécute en utilisant sudo - ils me diront cependant que le port est utilisé.
Comme un contexte supplémentaire - j'ai diverses applications qui se connectent toutes via SSH à un serveur que je gère et qui créent des ports inverses. Une fois ceux-ci configurés, mon serveur effectue un traitement à l'aide du port redirigé, puis la connexion peut être interrompue. Si je peux mapper des ports spécifiques (chaque application a les leurs) aux processus, il s'agit d'un simple script. Aucune suggestion?
C'est sur une boîte Ubuntu, en passant - mais je suppose que toute solution sera standard dans la plupart des distributions Linux.
-an
.netstat -pant
fonctionne également et il est plus facile à retenir.La suggestion de Pawel semble bien fonctionner pour moi, mais comme alternative, voici que j'écoute depuis shell1:
et voici moi le voir avec
lsof
de shell2:Edit : vous écrivez dans un commentaire
mais ce n'est pas le cas pour moi. Ayant utilisé ssh pour transmettre le port local 8001, avec
ssh vpn.example.com -L 8001:rt.int:80
, je trouve alors:Pourriez-vous peut-être nous montrer une partie de votre exemple de sortie, de préférence pas trop lourdement caviardé?
la source
lsof
sortie, sauf si je l'exécute en tant que root / sudo.