Inicié un servidor tftp con atftpd -v --port 69 --bind-address 10.10.10.2 --daemon /srv/tftp/
un comando, pero por alguna razón no veo el servidor TFTP escuchando en el puerto 69 en la salida ss/netstat. Sin embargo, si me conecto a un servidor TFTP con un cliente TFTP, puedo transferir archivos y automáticamente se inicia otra instancia del servidor TFTP (PID 5191):
# ss -l -4 -u
Recv-Q Send-Q Local Address:Port Peer Address:Port
# ss -l -6 -u
Recv-Q Send-Q Local Address:Port Peer Address:Port
# pgrep -lf tftp
4316 /usr/sbin/atftpd -v --port 69 --bind-address 10.10.10.2 --daemon /srv/tftp/
5191 in.tftpd --tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 /srv/tftp
#
in.tftpd
es un enlace simbólico a /usr/sbin/atftpd
. ¿Cómo pueden los clientes conectarse al servidor TFTP si el servidor TFTP no está escuchando en el puerto UDP 69? ¿Hay otros servidores que funcionan de la misma manera?
Respuesta1
No es que el servidor no esté escuchando en el puerto, es que las herramientas que estás usando no te muestran toda la información que deseas ver.
Tienes unas cuantas opciones:
Utilice la -a
opción con ss
y netstat
para especificar todas las conexiones actuales.
ss -au
Úselo lsof -i UDP
para enumerar todas las conexiones UDP actuales
sudo lsof -i UDP
Se utiliza fuser -v -n udp [port]
para determinar si el puerto está actualmente en uso por un proceso.
sudo fuser -v -n udp 69