- 发现系统中没有ftp命令,安装ftp
- ftp连接到树莓派失败,显示
ftp:connect:Connection refused
,尝试127.0.0.1一样 - 猜测可能是21端口未开放,执行
netstat -tln
查看端口号情况,发现确实如此 - 尝试vsftpd,没有该命令,安装vsftpd
- 执行vsftpd,显示
500 OOPS: could not bind listening IPv6 socket
,问题不大,因为不需要用到ipv6 - 这时再查看端口情况,会发现21号端口已经在监听
- 尝试连接本地,
ftp 127.0.0.1
成功 - 尝试连接树莓派,失败,按前面的方法打开树莓派的21号端口
- 在树莓派安装vsftpd,执行vsftpd,显示
500 OOPS: config file not owned by correct user, or not a file
,问题不大 - 成功连接
成功get文件,但put文件失败
在修改
/etc/vsftpd.conf
,将write_enable=YES
前面的#取消。重启vsftp服务器
sudo service vsftpd restart
,启动ftp服务sudo service vsfptd start
注意
vsftpd.conf
文件中listen=YES
和listen_ipv6=YES
只能选一个, 前者开启tcp的21端口监听, 后者开启tcp6的21端口监听两个都注释, 默认开启tcp6的21端口监听
注意: 对于阿里云的服务器, 需要添加安全组规则, 即添加21端口开放, 其中
0.0.0.0/0
表示任何ipv4地址都可以访问ftp用户名和密码的确认, 参考https://blog.csdn.net/JoeBlackzqq/article/details/6954334
关于ftp的主动模式和被动模式, 参考https://www.cnblogs.com/xiaohh/p/4789813.html
注意: 作为匿名用户时, 需要开启创建文件夹和上传文件的权限
不建议作为匿名用户访问, 将会出现很多权限问题, 直接访问根目录
本地用户无法登录, 密码错误: 将
vsftpd.conf
中的pam_service_name=vsftpd
改为pam_service_name=ftp
, 参考自https://www.cnblogs.com/yjunzhang/p/3541094.html被动模式连接超时, 参考http://bbs.qcloud.com/thread-1343-1-1.html
关于selinux, 参考https://zh.wikipedia.org/wiki/%E5%AE%89%E5%85%A8%E5%A2%9E%E5%BC%BA%E5%BC%8FLinux
关于umask, 参考https://baike.baidu.com/item/umask
修改linux用户密码, 参考https://blog.csdn.net/u011630575/article/details/49821281
关于linux用户(组)管理与权限设定, 参考https://blog.csdn.net/zyqblog/article/details/79226826#12-%E7%BB%84%E5%92%8C%E7%94%A8%E6%88%B7%E7%9A%84%E5%88%9B%E5%BB%BA%E4%B8%8E%E5%88%A0%E9%99%A4-groupuser
关于无法put文件, 需要首先lcd到本地目录, 再直接上传该目录下的文件, 不能使用绝对路径或者相对路径, 参考https://blog.csdn.net/anzhen0429/article/details/75151173