¿Cómo puedo saber qué aplicación utiliza qué puerto?

¿Cómo puedo saber qué aplicación utiliza qué puerto?

He estado mirando netstatla salida en una MacBook. Noté que algunas aplicaciones te permiten especificar qué puerto utiliza. Por ejemplo, utorrentte permite hacer eso. Elegí un puerto 55743, luego lo ejecuté netstat | grep 55743y el resultado fue el siguiente.

udp6       0      0  *.55743                *.*
udp4       0      0  *.55743                *.*

Cuando salgo, utorrentel puerto se libera. Pero, si no sabía el número de puerto, ¿cómo puedo saber qué aplicación está utilizando qué puerto? ¿Y es posible que algunas aplicaciones utilicen puertos en secreto para comunicarse con dispositivos servidores externos?

Respuesta1

Como mencionó David Houde, lsof -isu amigo le brinda una instantánea de las conexiones/operaciones de los sockets actuales. Desafortunadamente, en OS X netstatno es compatible con esta función.

Otras opciones incluyen:

Activity Monitor.apple permite ver los archivos y puertos abiertos por una aplicación. Esto se puede hacer haciendo doble clic en un proceso y abriendo la pestaña "Abrir archivos y puertos".

Dtrace - echa un vistazoasí que conectatescript que le brinda información continua sobre las operaciones de la red hasta que salga (control+c). Salida de ejemplo:

sudo /tmp/soconnect.d 
PID    PROCESS          FAM ADDRESS          PORT   LAT(us) RESULT
8211   X-Lite           2   192.168.1.109    5060        25 Success
4112   Google Chrome    2   173.194.34.134   443         53 In progress
8211   X-Lite           2   192.168.1.109    5060        30 Success

Una aplicación que personalmente me gusta bastante es Little Snitch, pero resulta que es un software comercial. Aunque se trata de un software de firewall de escritorio, tiene una serie de características que pueden resultarle interesantes:

  • monitor de red, que le indica qué aplicaciones se están conectando y dónde (similar a la salida de soconnect.d en cierto modo)
  • capturar el tráfico de red por aplicación (es decir, similar a Wirehark, puede observar el tráfico de red, pero limitarlo solo a una aplicación específica)

Para responder a su segunda pregunta, sí, en los sistemas operativos tradicionales (por ejemplo, OS X, Windows), las aplicaciones tienen la capacidad de conectarse a sistemas de terceros de varias maneras y enviar cualquier cosa. Varios firewalls de escritorio intentan solucionar este problema permitiéndole especificar dónde se puede conectar cada aplicación, teniendo así una especie de lista blanca. Como todo lo demás en materia de seguridad, este enfoque no está exento de riesgos.

PD. No tengo ninguna asociación con ningún proveedor de software de firewall de escritorio :)

Respuesta2

Puedes lograr esto con algunos argumentos más de netstat o usando lsof:

netstat -lp
lsof -i udp:55743

información relacionada