我正在关注这使用 tftp 的教程:
首先,我安装所有必需的软件包:
sudo apt-get install xinetd tftpd tftp -y
接下来,创建一个配置文件:
sudo nano /etc/xinetd.d/tftp
将以下内容放入文件中。
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = var/lib/tftpboot -s
disable = no
}
现在我更改目录的所有权:
sudo mkdir /var/lib/tftpboot
sudo chown -R nobody:nobody /var/lib/tftpboot
sudo chmod -R 777 /var/lib/tftpboot
并启动TFTP服务:
sudo service xinetd stop
sudo service xinetd start
然后验证TFTP是否正常运行:
root@ravi-Inspiron-N5010:/home/ravi# netstat -na | grep LIST | grep 69
unix 2 [ ACC ] STREAM LISTENING 16171 @/com/ubuntu/upstart-session/1000/1692
root@ravi-Inspiron-N5010:/home/ravi#
netstat 的输出与教程中提到的不同:
tcp 0 0 0.0.0.0:69 0.0.0.0:* LISTEN
答案1
TFTP 是基于 UDP 的协议,因此,您不会找到显示“LISTEN”或“LISTENING”的行。
跑步netstat -na | grep udp
看看你会得到什么。
答案2
如前所述,输出看起来足够合法。但问题是,您是否真的尝试过通过客户端访问 TFTP 服务器?唯一确定它是否在听的方法......
一件事是,如果这是 Ubuntu,则可能需要更改其中一个步骤。基本上应该是:
sudo service xinetd restart
不是
sudo service xinetd stop
sudo service xinetd start
只需要更改第 4 步,因为 xinetd 是由 upstart 产生的。你需要使用“service xinetd restart”重新启动它 – BЈовић 2013-09-04 12:14 https://askubuntu.com/questions/201505/how-do-i-install-and-run-a-tftp-server
另一种选择是简单地尝试不同的 TFTP(tftpd-hpa、atftpd 等)服务器来运行...
http://www.cyberciti.biz/faq/install-configure-tftp-server-ubuntu-debian-howto/
答案3
您没有提及您遵循了哪个教程。然而,输出似乎相当合法。 tftp 确实使用 xinetd 包装器,因此仅当存在实际连接的客户端时,您才会在 netstat 中看到连接。尝试一下,然后再次运行 netstat
netstat -tupan
确保您的防火墙允许连接到该端口:
iptables -I INPUT -s <your subnet> -p tcp --dport 69 -j ACCEPT
iptables -I INPUT -s <your subnet> -p udp --dport 69 -j ACCEPT
其中“您的子网”是 192.168.1.0/24