¿Cómo puedo enumerar mis puertos abiertos en Debian?

59

¿Cuál es el comando para mostrar una lista de puertos abiertos en un servidor Debian?

Lo intenté netstat -a | egrep 'Proto|LISTEN'pero me gustaría algo más específico que realmente enumere el número de puerto.

Leonel
fuente

Respuestas:

86
 netstat -pln

-lenumerará los puertos de escucha, -ptambién mostrará el proceso, -nmostrará los números de puerto en lugar de los nombres. Agregar -tpara mostrar solo los puertos TCP.

Roca
fuente
13
Para -pque funcione correctamente, debe ejecutar esto como root, por sudo netstat -tplnlo tanto , de lo contrario, la columna de proceso no será particularmente útil, a menos que sea el usuario cuyo proceso está escuchando en un puerto determinado.
cjc
21

lsof -i -P

Consulte la página de manual para ver lsofque no hay escasez de opciones. -Penumera el número de puerto en lugar del nombre tomado de /etc/servicesEjecutar como root, sin embargo, esto le proporcionará una lista de todas las conexiones de red activas y su estado (escucha, establecido, etc.).

Jeff Ferland
fuente
Esta debería ser la respuesta correcta. Netstat no está instalado por defecto
José
11

Lo que casi todo el mundo quiere (TCP y UDP) es netstat -tunlp.

Lo uso todos los días, tal vez cada hora. El truco 'lsof' es más portátil (también funciona en Solaris), pero en Debian no es un paquete esencial, debe instalarlo.

zerodeux
fuente
Sí, y ejecútalo a través de sudo.
Martijn Heemels
2
Mi amigo me enseñó a recordar este comando con un nombre de flor que netstat -tulpenFlag ebrinda información adicional.
Deele
1
Y ahora, en 2018, mi nueva caja de Debian no tiene netstatpero tiene lsof. :)
Jason
10

Soy un gran admirador netstat -ntlpy lsof -i, ambos ya se mencionaron.

Un nuevo comando (er) para mí es ss .

La invocación es como:

ss -l

Es bueno tener opciones, en términos de comandos y banderas.

dmourati
fuente
1
Las opciones son especialmente buenas ya que el contenedor de Docker de Mongo (y presumiblemente muchos otros) tenía ss pero no netstat o lsof
Foon
Empecé a usar esto como una pregunta de entrevista. Probablemente preguntaron 40 personas diferentes. Hasta el momento nadie ha mencionado ss. Lo pregunto como el OP, luego, si responden, digo: "está bien, quito X, ahora cómo puedes hacerlo". Hasta que se acaben las ideas.
dmourati
6

Tu puedes hacer:

netstat -an | egrep 'Proto|LISTEN'

o simplemente:

netstat -anl

que le dará todos los enchufes de escucha en el sistema.

Karlson
fuente
2
Esta sería la mejor solución (donde "mejor" se define como "funciona en la gama más amplia de sistemas" (BSD, Linux, AIX, Solaris, creo HP-UX))
voretaq7
0

TechRepulic tiene un artículo decente que puedes encontrar aquí . Tiene algunos comandos similares a los enumerados anteriormente, pero también algunas variaciones. También recomendaría usar nmap para hacer un escaneo de puertos de la computadora en cuestión para que pueda ver desde una perspectiva externa qué puertos están abiertos y escuchando.

Eric
fuente
¿Podrías decirme por qué se rechazó esta votación? Como simplemente proporcioné un enlace con muchas de las soluciones anteriores que fueron aprobadas junto con una perspectiva diferente de hacer un escaneo externo también. Gracias.
Eric
8
No voté en contra, pero en el servidor por defecto, como la mayoría del intercambio de pila, generalmente esperamos que ponga la respuesta aquí, y no solo un enlace a otro lugar. Los enlaces desaparecen con el tiempo, pero queremos que el contenido en SF siga siendo valioso cuando los enlaces desaparezcan.
Zoredache
La única línea de código que tiene el enlace del artículo anterior es sudo nmap -T4 -A -v 192.168.1.1/24todo lo demás, hazlo, hazlo sin ningún detalle ... Es como leer la contraportada de un libro, muchas palabras sin carne.
KingsInnerSoul 01 de
0

Los puertos de escucha no son lo mismo que los puertos abiertos desde el exterior. Debes considerar el firewall. Si prueba un programa como el nmapde otra computadora, podrá ver los puertos abiertos no bloqueados por el firewall.

Niklas Rosencrantz
fuente
0

Prefiero usar en su lugar:

netstat -antp 
lsof -i 
netstat -lptu
netstat -tulpn
XsiSec
fuente