如何使我的 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

相关内容