ubuntu16.04 搭建ftp服务器
前言
网络操作系统的实验,做这个的时候心态大崩,各种弱智问题出现,差点没磕死在桌上!顺带一句,垃圾inode,禁我虚拟机网卡。。。。
实验准备
ubuntu16.04 win7各一台,两个主机需要建立一个局域网,vm很容易实现这个事,ubuntu还需要外网网卡
实验开始
安装vsftpd
1 | sudo apt-get install vsftpd |
修改/etc/vsftpd.conf文件
1 | sudo vim /etc/vsftpd.conf |
修改内容如下:
1 | # Example config file /etc/vsftpd.conf |
对于上面的文件解释一下:
- listen=NO 是否开启监听ipv4和ipv6数据
- anonymous_enable=NO 拒绝匿名登陆
- write_able=YES 设置可以上传文件,这个设置可以看个人的需要
- xferlog_enable=YES 开启日志记录
- xferlog_file=/var/log/vsftpd.log 设置日志文件路径
- xferlog_std_format=YES 设置日志格式为标准输出
- connetct_from_port_20=YES 绑定20端口
- ftpd_banner=welcome to FTP service. 欢迎语句,在使用shell时可以看到
- chroot_local_user=YES
- chroot_list_enable=YES
- chroot_list_file=/etc/vsftpd.chroot_list 这三个配置实现的功能是:用户被限制在自己的主目录下。用户名单来源于/etc/vsftpd.chroot_list
- pam_service_name=ftp 原配置中为vsftpd,ubuntu用户需要更改成ftp
- utf8_filesystem=YES 编码统一为utf8编码,可以识别中文,防止乱码
创建用户组
1 | mkdir /home/username // |
将创建的用户加入白名单
1 | sudo vim /etc/vsftp.chroot_list |
然后重启ftp服务
1 | sudo service vsftpd restart |
测试
首先在命令行内测试:
1 | ftp localhost |
查看文件夹内文件
可以看见刚刚创建的共享文件夹pub
打开win7从资源管理器上进行登陆 ftp://192.168.112.129
输入账号密码即可登陆
在服务器端浏览器中输入ftp://localhost 登陆本地账户的账号密码:
在客户端浏览器输入ftp://192.168.112.129 登陆账号同样可以进行查看文件
总结
若在测试阶段,发现root用户登陆不了,即出现下面这种报错:
是因为root用户默认在ftp的黑名单中,这时我们只需要改变/etc/ftpusers中root注释掉就行
然后重启一下ftp服务,即可成功登陆
1 | sudo service vsftpd restart |
若出现这种情况,则是因为chroot不可写
在配置文件/etc/vsftpd.conf中结尾加入一行
1 | allow_writeable=YES |
然后重启服务即可解决问题
参考链接:
https://blog.csdn.net/qq_33279781/article/details/73607466
https://blog.csdn.net/timothy93bp/article/details/77527531
https://blog.csdn.net/bluishglc/article/details/42398811
原文作者: fzykn06
原文链接: http://fzykn06.github.io/2019/05/11/ubuntu16-04-搭建ftp服务器/
版权声明: 转载请注明出处(必须保留作者署名及链接)