
Я запустил tftp-сервер с помощью atftpd -v --port 69 --bind-address 10.10.10.2 --daemon /srv/tftp/
команды, но по какой-то причине я не вижу TFTP-сервер, прослушивающий порт 69 в выводе ss/netstat. Однако, если я подключаюсь к TFTP-серверу с помощью TFTP-клиента, я могу передавать файлы, и автоматически запускается другой экземпляр 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
является символической ссылкой на /usr/sbin/atftpd
. Как клиенты могут подключиться к серверу TFTP, если сервер TFTP не прослушивает порт UDP 69? Существуют ли другие серверы, которые работают таким же образом?
решение1
Дело не в том, что сервер не прослушивает порт, а в том, что используемые вами инструменты не показывают вам всю необходимую информацию.
У вас есть несколько вариантов:
Используйте -a
опцию с ss
и netstat
для указания всех текущих подключений.
ss -au
Используйте lsof -i UDP
для вывода списка всех текущих подключений UDP.
sudo lsof -i UDP
Используйте fuser -v -n udp [port]
для определения, используется ли порт в данный момент каким-либо процессом.
sudo fuser -v -n udp 69