我之前使用的是 14.04,我能够设置并使 tftp 服务器和客户端工作。现在我升级到 14.10,tftp 服务器不再工作
这是我所做的:
安装软件包。
sudo apt-get install tftpd-hpa
Run Code Online (Sandbox Code Playgroud)编辑配置文件如下。
sudo vi /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-s -c -l"
Run Code Online (Sandbox Code Playgroud)创建 TFTP 文件夹。
sudo mkdir /tftpboot
sudo chmod -R 777 /tftpboot
sudo chown -R nobody /tftpboot
Run Code Online (Sandbox Code Playgroud)重新启动应用程序以应用新配置。
sudo service tftpd-hpa restart
Run Code Online (Sandbox Code Playgroud)(来源)
那个时候,我不知道那个tftpd-hpa是TFTP服务器的包,tftp-hpa是TFTP客户端的,所以我做的是为TFTP CLIENT安装另一个包。
安装以下软件包:
sudo apt-get install xinetd tftpd tftp
Run Code Online (Sandbox Code Playgroud)更改/etc/xinetd.d目录权限。
sudo chmod –R 777 xinetd.d
Run Code Online (Sandbox Code Playgroud)在其中创建一个名为 tftp 的文件/etc/xinetd.d并写入以下内容:
service tftp {
socket_type = dgram
protocol = UDP.
WAIT = YES
user = root
server = /usr/sbin/in.tftpd
server_args =-s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
Run Code Online (Sandbox Code Playgroud)保存并退出。
创建tftpboot目录并更改权限。
cd /
sudo mkdir /tftpboot
chmod –R 777 /tftpboot
Run Code Online (Sandbox Code Playgroud)重启服务
sudo /etc/init.d/xinetd restart
Run Code Online (Sandbox Code Playgroud)安装 TFTP 服务器和另一个用于 TFTP 客户端工作包的分步过程在 14.04 中但不在 14.10 中,我认为第二次安装和设置 ( sudo apt-get install xinetd tftpd tftp) 是 TFTP 服务器不工作的罪魁祸首。我已经卸载了我认为不需要的软件包。但是 TFTP 服务器仍然无法正常工作。我该怎么做才能使 TFTP 服务器正常工作?
小智 1
这对我有用:
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /tftpboot
disable = no
}
Run Code Online (Sandbox Code Playgroud)
这是一个老问题,但对于任何寻求清晰性的人来说,我的答案可能会有所帮助:
tftpd-hpa是一个独立的 tftp 服务器 - 它不需要配置 xinetd 即可工作,事实上我读过的一些建议将导致tftpd-hpa和之间对端口 69 的争用xinetd!
用户风暴 在本页其他地方的答案就是一个例子。我确信此配置可以与其他一些 tftp 包一起使用,但我不知道它如何与.xinetdtftpd-hpa
看一下tftpd-hpain的默认配置/etc/default/tftpd-hpa:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"
Run Code Online (Sandbox Code Playgroud)
除非您需要具有更多选项的解决方案,否则应确保不配置xinetd为处理 tftp 或侦听端口 69(或者根本不安装它)。/etc/default/tftpd-hpa根据您的需要进行编辑,然后运行sudo systemctl restart tftpd-hpa,您应该会很好。您可以通过以下方式验证:
$ sudo netstat -tulpn | grep 69
udp 0 0 0.0.0.0:69 0.0.0.0:* 45262/in.tftpd
udp6 0 0 :::69 :::* 45262/in.tftpd
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26846 次 |
| 最近记录: |