搞了两三天,终于把ftp的链接问题搞定了。其实到最后的解决方法很简单,关键就在于选对版本。因为不同的版本遇到的问题不同,你如果按照不一样的版本解决问题,到头来只是竹篮打水有一场空。不过话说回来,有bug才有产出,也算是在其中学到了一些东西,比如ftp协议与tcp/ip协议的关系;怎么看端口号有没有激活,为了安全如何修改端口号;文件传输到底是以什么模式运行等。
首先罗列一下我以上提到的几个问题:
(1)ftp协议与tcp/ip协议的关系 ftp协议是基于tcp/ip应用层的一个协议,它定义了本地登录户机与远程服务器之间的交互过程。
(2)怎么看端口号有没有激活?为了安全如何修改端口号?
$ netstat -tlpn 。如下图的local adress,其中用于ftp传输的端口号21已经激活,处于listen的状态。
$ /etc/services文件里面可以查看并修改
(3)文件传输到底是以什么模式运行?
一定要创建一个用户,然后通过ftp协议,将远程服务器和本机建立连接,实现文件传输。同时ubuntu的vsftpd.config里面有相关用户设置的定义以及$chmod 777 这样的命令是设定文件的应用类型的,是上传还是下载用。
操作时经常用到命令:$sudo apt-get ;$sudo service vsftpd restart;$netstat -tlpn;$ps -e|grep vstfpd;
整体思路就是安装vsftpd,配置vsftpd,新建用户进行传输
好的,接下来就是搭建vsftp的过程。需要强调的是我们用的是
ubuntu16+vsftp3.0版本。(应该2.3.5版以后的版本都可以,因为vsftpd就是2.3.5版开始,取消了根目录的可写权限)
1.更新源列表
打开"终端窗口",输入"sudo apt-get update"-->回车-->"输入当前登录用户的管理员密码"-->回车,就可以了。如果不运行该命令,直接安装vsftpd,会出现"有 几个软件包无法下载,您可以运行apt-get update------"的错误提示,导致无法安装
2.安装vsftpd
打开"终端窗口",输入"sudo apt-get install vsftpd"-->回车-->安装完成(如无法安装可用尝试重启一下)
3.判断vsftpd是否安装成功
打开"终端窗口",输入"sudo service vsftpd restart"重启vsftpd服务-->回车-->vsftpd处于运行状态,说明安装成功。
4.新建"/home/uftp"目录作为用户主目录
打开"终端窗口",输入"sudo mkdir /home/uftp"-->回车-->输入"sudo ls /home"-->回车-->有一个uftp目录,目录新建成功。
5.新建用户uftp并设置密码
打开"终端窗口",输入"sudo useradd -d /home/uftp -s /bin/bash uftp"-->回车-->用户新建成功-->输入"sudo passwd uftp"设置uftp用户的密码-->回车-->输入两次密码-->回车-->密码设置成功。
6.使用vi修改配置文件/etc/vsftpd.conf
打开"终端窗口",输入"sudo vi /etc/vsftpd.conf"-->回车-->打开了vsftpd.conf文件,修改wrtie-enable=yes;并向文件中添加"userlist_deny=NO
userlist_enable=YES userlist_file=/etc/allowed_users"和"seccomp_sandbox=NO"-->使文件中的"local_enable=YES"-->保存。
7使用vi新建/etc/allowed_users文件
打开"终端窗口",输入"sudo vi/etc/allowed_users"-->回车-->输入uftp-->保存, 文件创建成功。(这里的6.7好像不一定 要,只要将vsftpd.conf文件,修改wrtie-enable=yes即可。但是因为自己怕好不容易配好ed环境又坏了,所以不敢尝试,等下次重新配置的时候再尝试看看。)
8.使用gedit查看/etc/ftpusers文件中的内容
打开"终端窗口",输入"sudo gedit /etc/ftpusers"-->回车-->打开这个文件后,看一看有没有uftp这个用户名,如果没有,就直接退出。如果有就删除uftp,因为这个文件中记录的是不能访问FTP服务器的用户清单。
9.使用8utfp或者直接访问ftp://主机ip地址,登录FTP服务器(ip可用ifconfig命令查看)
下载安装8utfp,运行8utfp-->输入IP、用户名、密码-->保存-->勾选"保存密码"-->确定-->登录-->登录