GNU/Linux >> Tutoriales Linux >  >> Linux

Mostrar opciones de enchufe

Tuve el mismo problema hoy; desafortunadamente, en mi sistema, el -T opción de lsof no acepta el f bandera, y tampoco quería construir el knetstat módulo del núcleo.

Afortunadamente, estaba en la posición de poder strace la aplicación mientras estaba configurando el socket, así:

strace -e trace=setsockopt -f -o /tmp/log ./program arg1 arg2

Esto rastrea ./program arg1 arg2 , escribiendo el seguimiento en /tmp/log . Solo rastreamos el setsockopt() llamada al sistema, que se utiliza para establecer opciones de socket. La opción -f hace strace también rastree cualquier proceso secundario creado por el programa rastreado.

Si tienes suerte, /tmp/log contendrá líneas como esta:

18806 setsockopt(60, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0

Esto indica que el proceso 18806 llamado setsockopt() en FD 60 para configurar SO_KEEPALIVE a 1 (habilitándolo), y que la llamada al sistema tuvo éxito con el código de retorno 0 .

También es posible adjuntar a un proceso existente:

strace -e trace=setsockopt -f -o /tmp/log -p PID

Puede desconectarse del proceso usando CTRL-C y omita el -o opción y su argumento para enviar la traza a stderr .


En Linux, puede usar el módulo de kernel knetstat para inspeccionar las opciones de socket, incluido SO_BROADCAST .


Puedes usar lsof(8) . Si PID es el ID del proceso y FD es el número del descriptor de archivo del socket que le interesa, puede hacer esto:

lsof -a -p PID -d FD -T f

Para listar todos los sockets IPv4 de un proceso:

lsof -a -p PID -i 4 -T f

Esto imprimirá las opciones de socket con un SO= , entre otra información. Tenga en cuenta que si no se configuran opciones, obtendrá la cadena vacía, por lo que verá algo como SO=PQLEN=0 etc. Para probar SO_BROADCAST , solo grep para la cadena SO_BROADCAST después del SO= , por ejemplo

if lsof -a -p PID -d FD -T f | grep -q 'SO=[^=]*SO_BROADCAST'; then
    # socket has SO_BROADCAST
else
    # it doesn't
fi

Linux
  1. 6 opciones avanzadas de formato tcpdump

  2. Mostrar tipos de bases de datos MySQL en bash

  3. ¿Api del zócalo de Tmux?

  4. 7 ejemplos del comando lsof en Linux

  5. Opciones de comando grub-install

Mis opciones favoritas de comando principal de Linux

Comando lsof en Linux (10 ejemplos)

Mostrar árbol de Navidad animado en la terminal

Plasma 5.20 y escalado de pantalla - Excelente

¿Qué es Opciones +FollowSymLinks?

Toma de dominio Sniff UNIX