参考:https://blog.csdn.net/woyaochenggong774/article/details/46324787
注意FTP和TFTP协议是有区别的,二者不一样!
参考:https://blog.csdn.net/a642960662/article/details/66473628
1. 软件安装
确保 busybox 工具已经添加了 inetd 和 tftpd 工具
2. 修改配置文件 vi /etc/inetd.conf
确保开发板系统已经存在此文件,如果不存在,请自行创建该文件,文件内容见下面介绍。
下图是在 Zynq 上实现 tftp功能的例子:
tftpd 应该被用作 inetd 服务,在/etc/inetd.conf中配置 tftfd 服务,添加下面的内容:
69 dgram udp nowait root tftpd tftpd -l /home/tftp
其中 /home/tftp 为tftp服务器的指定目录,客户端可从此目录下载所需的文件。需创建和修改此目录的权限。
3. 创建Tftp服务器根目录 /home/tftp ,并修改权限
cd /home
mkdir /home/tftp
chmod 777 tftp
4. 启动 inetd 服务
/usr/sbin/inetd
可以将此命令添加到板卡的 /etc/profile 文件后,让此inetd 服务开机自启动。
5. 查看tftp 服务是否开启
6. 使用另外一块板卡测试tftp功能
TFTP服务器:主控板卡
TFTP客户端:数采板卡
1)主控板的IP地址,已经搭建了TFTP服务。
在 /home/tftp 目录下存了一个 test 文件
vsftpd即very secure FTP daemon(非常安全的FTP进程),是一个基于GPL发布的类UNIX类操作系统上运行的服务器的名字(是一种守护进程),可以运行在诸如Linux、BSD、Solaris、HP-UX以及Irix等系统上面。vsftpd支持很多其他传统的FTP服务器不支持的良好特性。使用 vsftpd 可以在 Linux/Unix 系统上搭建一个安全、高性能、稳定性好的轻量级FTP服务器。
下载源码
参考:https://www.cnblogs.com/zhangbing12304/p/11051405.html
版本:vsftpd-2.3.4.tar.gz
解压缩
配置
修改 Makefile: CC = arm-linux-gnueabihf-gcc
编译
make
1)make前先修改vsf_findlibs.sh文件,不然会报错,修改如下:
屏蔽掉上边的三行;
2)make时如果报错如下:
解决办法:修改Makefile
在CC 后面添加“ -lcrypt ”
3) make成功后:
make 后,当前目录下会生成两个文件:vsftpd 和 vsftpd.conf,这两个文件是我们要用的。
1)将编译生成的 vsftpd 工具放置在目录 /usr/bin下 ,vsftpd.conf配置文件放置在 /etc目录下;
2)修改配置文件vsftpd.conf:
不允许匿名登录,允许本地账户登录;
3)在开发板上创建一个本地用户:
用户名:heat 密码:123456
adduser heat
输入密码
这里创建的是用户heat
4)打开 vsftpd 服务
/usr/bin/vsftpd &
注意,后面还有一个 &。如果要让 vsftpd 开机启动,可以将该命令添加到 /etc/profile 或者 rc.local 文件最后。
++++++++++++++++++++++++++++++++++++++++++
转到PC机上测试,打开DOS命令行,连接ftp
++++++++++++++++++++++++++++++++++++++++++
PC机DOS下:
1)连接出现问题
解决办法:
在/etc/vsftpd.conf 文件内加入ftp_username=nobody 保存,重启vsftp服务
2)继续出现问题:
解决办法:
出现上面的错误,则需要建立/usr/share/empty目录。 mkdir /usr/share/empty
3)正常连接
从开发板取文件,文件放在了开发板用户 /home/heat 目录下,ftp服务器的默认路径是用户根目录
开发板侧:
参考:https://blog.csdn.net/qq_24835087/article/details/104498398
https://www.cnblogs.com/fly2wind/p/11939221.html
==================================================
修改配置文件
vim /etc/vsftpd.conf
匿名模式
anonymous_enable=YES
local_enable=NO
write_enable=YES
anon_upload_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
listen=YES
==================================================
开发板上执行:
adduser nobody
mkdir -p /usr/share/empty/
mkdir -p /var/ftp/
adduser -h /var/ftp ftp
==========================================
==========================================
FTP默认需要一个nobody用户
FTP默认需要一个empty目录
FTP匿名模式默认需要一个FTP用户
-h 限定ftp用户的工作目录为/var/ftp
注意:一旦限定了ftp用户的工作目录,该目录不能具有写权限,否则会报错,这个后面会说明。比如上面的/var/ftp,ftp目录不能具有写权限。chmod a-w /var/ftp去除用户主目录的写权限