netstat

  • ¿De qué forma se puede determinar qué proceso está escuchando en un determinado puerto? Supongamos que necesitamos ejecutar un programa que abre el puerto 6789 para aceptar conexiones. Pero al momento de crear el socket el programa finaliza con error debido a que el puerto está siendo utilizado por otro proceso. Esta situación se puede presentar, por ejemplo, cuando estamos desarrollando y probando un programa que abre conexiones y nos quedan instancias abiertas ocupando puertos.

  • Este artículo explica cómo listar todos los sockets Unix abiertos en un sistema GNU/Linux utilizando la herramienta netstat.

  • Para listar los puertos abiertos junto con los procesos asociados a cada uno, en Windows, es posible recurrir al comando netstat, similar al de sistemas *nix.

  • A veces hay que aplicar alguna configuración de emergencia para resolver un problema urgente, pero la misma puede afectar a los usuarios que están conectados actualmente a un servidor. Existe una variedad de causas diferentes que pueden perjudicar a los usuarios actuales de un servicio. Por ejemplo puede hace falta reiniciar Apache, o directamente detenerlo porque es necesario reiniciar un servidor de bases de datos. También podría ser necesario reiniciar directamente el sistema operativo por un problema de hardware (se llenó un disco y hay que ampliar su capacidad, o agregar más memoria RAM). Sea como sea, los Sysadmins en general buscamos un horario fuera de oficina para este tipo de "actividades", pero en caso de emergencias, no queda otra alternativa que hacerlo en horarios de oficina. En este caso puede ser útil saber si hay usuarios actualmente conectados al servidor, para afectar a la menor cantidad de gente posible.

  • Utilizando la herramienta netstat es posible listar las conexiones TCP y UDP establecidas en un sistema GNU/Linux. De esta manera es posible tener una noción del número de clientes conectados con nuestro servidor. Aunque, jugando un poco con la salida de netstat, también es posible determinar exactamente el número total de conexiones establecidas y el número de clientes únicos por IP.

  • A la hora de listar los puertos TCP abiertos (IPv4), además del tradicional netstat, FreeBSD incluye la herramienta sockstat.