atftpd 可以实现服务器与客户端的文件传输
第一步:安装
sudo apt update &&sudo apt upgrade -y
sudo apt install atftpd
第二步:运行
运行的话,要设置几个选项,具体可以通过下列命令查询
atftpd --help
然后系统会列出可用的选项,我这里就不介绍了
运行
安装完成后,要手动关闭atftpd.socket服务,这个服务在安装完成后会自动运行,这会和我们手动运行atftpd发生冲突。
#查看端口占用情况
#ss -nle | grep 69
#会显示
#udp UNCONN 0 0 *:69 *:* ino:57344 sk:23bb #cgroup:/system.slice/atftpd.socket v6only:0 <->
sudo systemctl stop atftpd.socket #这一步很关键,不关闭的话,就没法正常运行!!!因为69端口会被这个进程所占用!!!
另一种方法你可以sudo killall atftpd,也可以达到这个效果
我电脑的ip是192.168.0.111, 我使用的端口是69,这个可以在下列命令中随意改成你需要的
sudo atftpd --daemon --bind-address 192.168.0.111 --port 69 /srv/tftp
如果你的ip是192.168.0.112 要使用70端口,你就可以改成这样
sudo atftpd --daemon --bind-address 192.168.0.112 --port 70 /srv/tftp
第三步,修改权限
因为/srv/tftp是atftpd自创的一个目录,其属性是-rw-r--r--,只读,为了方便我们操作文件,将其改下,
sudo chmod 777 /srv/tftp
第四步,在本机上测试
既然安装了,我们就测试一下是否运行正常,这需要一个tftp client
我们下载一个
sudo apt install atftp
然后测试一下
先在/srv/tftp下新建一个文件
echo 'hello world' > /srv/tftp/test
然后get一下
cd ~/桌面
atftp -gr test 192.168.0.111 69
这时我们会在桌面看到一个test的文件
一般来说不论atftpd是否运行正常,都会看到这个文件,为了验证其运行正常,我们需要检查一下这个文件的内容
cat test
如果显示为我们刚刚echo的内容'hello world'那就是正常的,如果什么都不显示,那就说明连接出了问题
按照我上面一步步来的,没有多余的错误操作的,正常来说,是不会有问题的.
我们再验证一下put
echo 'put success' > testput
atftp -pl testput 192.168.0.111 69
cat /srv/tftp/testput
如果显示put success
那么说明atftpd服务器已经可以成功接收和发送了
大功告成!
一般来说,本机上如此测试成功了,在本地其它电脑上都是可以连接的,如果出现不能连接的情况,那么检查客户机防火墙设置
总结,如果连接不成功,查看atftpd.socket的状态,如果在运行,就给它停止掉,它会占用69端口,停止掉以后,一般情况下,就可以了。