我研究过以下问题,但没有成功:
- 如何在 14 04 上安装和配置 tftp 服务器
- 如何在 ubuntu 14 04 中设置 tftp 服务器
- 如何在 ubuntu 14 10 utopic 中安装和设置 tftp 服务器
- 如何安装并运行 tftp 服务器
我尝试过使用 tftp-hpa、atftpd 和 tftp。我又回到了 tftp,因为使用其他的没什么区别。
到目前为止我已经:
安装 tftp
sudo apt-get install xinetd tftpd tftp
设置 /etc/xinetd.d/tftp
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /tftpboot
disable = no
}
创建 /tftpboot 文件夹并运行以下命令:
sudo chmod -R 777 /tftpboot
sudo chown -R nobody /tftpboot
我已经通过 iptables 允许端口 69:
sudo iptables -A INPUT -p tcp --dport 69 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 69 -j ACCEPT
sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:tftp
ACCEPT udp -- anywhere anywhere udp dpt:tftp
并重新启动服务:
sudo /etc/init.d/xinetd restart
我可以使用 localhost 正常连接(如果我明确使用 127.0.0.1,结果相同):
tftp localhost
tftp> status
Connected to localhost.
Mode: netascii Verbose: off Tracing: off
Rexmt-interval: 5 seconds, Max-timeout: 25 seconds
tftp> get test
Received 21 bytes in 0.0 seconds
tftp> quit
但是,我的同事都无法从他们的机器上访问它(同一个网络,同一个子网掩码),最重要的是,我无法从我需要它的嵌入式主板上访问它(以太网电缆插入同一个交换机)。我已经在谷歌上搜索了几个小时,但还没有找到解决办法。
事实上它在本地工作表明它是防火墙/端口问题,但 iptables 上允许使用端口 69,我不确定我还能做什么。
答案1
因为您只有INPUT
规则,这意味着您只接受来自端口 69 的传入流量,但您也有传出的流量,这意味着您ACCEPT
也需要传出的流量。
sudo iptables -A OUTPUT -p tcp --dport 69 -j ACCEPT
sudo iptables -A OUTPUT -p udp --dport 69 -j ACCEPT