ubuntu的ftp安装与配置

一、准备。

 ubuntu虚拟机和window之间采用桥接方式(电脑主机最好是网线上网)

二、ftp服务器配置。

2.1. 安装ftp服务器。

    目前Linux上使用较多的ftp服务器是vsftpd。所以,我们需要先安装vsftpd软件。在Ubuntu上安装vsftpd,使用的命令是

sudo apt-get install vsftpd

    在终端输入这句命令,有可能会提示-“无法定位到软件包 vsftpd”,那么这个问题的解决办法是在 /etc/apt/sources.list文件的最后,添加如下代码,

 
  1. deb http://ftp.us.debian.org/debian stable main contrib non-free

  2. deb http://ftp.us.debian.org/debian-non-US stable/non-US main contrib non-free

  3. deb http://ftp.us.debian.org/debian testing main contrib non-free

  4. deb http://ftp.us.debian.org/debian-non-US testing/non-US main contrib non-free

  5. deb http://ftp.us.debian.org/debian unstable main contrib non-free

  6. deb http://ftp.us.debian.org/debian-non-US unstable/non-US main contrib non-free

    然后在终端中执行命令

apt-get update

    经过漫长的等待,终端中最终会执行上面添加的代码。

2.2 vsftpd的配置。

安装好vsftpd后,我们就需要配置它,那么就要修改 /etc/vsftpd.conf文件。具体的配置和说明,见下文,

 
  1. # 禁止匿名用户登录

  2. anonymous_enable=NO

  3. # 允许系统用户登录

  4. local_enable=YES

  5. # 启用可以修改文件的 FTP 命令

  6. write_enable=YES

  7. # 本地用户创建文件的 umask 值

  8. local_umask=022

  9. # 允许为目录配置显示信息,显示每个目录下面的message_file文件的内容

  10. dirmessage_enable=YES

  11. # 开启日记功能

  12. xferlog_enable=YES

  13. # 使用标准的20端口来连接ftp

  14. connect_from_port_20=YES

  15. # 使用标准日志格式

  16. xferlog_std_format=YES

  17. # 如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录

  18. chroot_list_enable=YES

  19. # 指定限制的用户文件

  20. chroot_list_file=/etc/vsftpd/chroot_list

  21. # ftp服务器将处于独立启动模式

  22. listen=YES

  23. # 设置一个本地用户登录后进入到的目录

  24. local_root=/home/ftp

  25. # 设置PAM认证服务的配置文件名称,该文件保存在“/etc/pam.d/”目录下

  26. pam_service_name=vsftpd

  27. # ftp将检查userlist_file设置文件中指定的用户是否可以访问vsftpd服务器

  28. userlist_enable=YES

  29. # 只允许user_list文件中记录的ftp用户能登录vsftp服务,其他的ftp用户都不可以登录。

  30. userlist_deny=NO

  31. # 定义限制/允许用户登录的文件

  32. userlist_file=/etc/vsftpd/allowed_users

  33. # ftp服务器将使用tcp_wrappers作为主机访问控制模式

  34. tcp_wrappers=YES

  35. # 连接ftp服务费使用的端口

  36. listen_port=21

1. 需要手动创建一个目录-ftp的根目录,用户可以访问该目录下的资源,

mkdir /home/ftp

接着创建一个子目录,

mkdir /home/ftp/data

修改ftp这个目录的权限,

chmod -R 777 /home/ftp

2. 还需要手动创建一个文件allowed_users,位于 /etc下,创建该文件的命令是

touch allowed_users

创建文件成功后,我们就可以添加访问用户了,添加用户的命令是

useradd -d /home/ftp/data -s /sbin/nologin zhangxw

添加一个用户(zhangxw),但是该用户不能登录系统。

接着设置该用户的密码,输入命令,

passwd zhangxw

然后根据提示,输入密码即可。例如截图所示,

3. 将上面添加的用户,手动写入到 /etc/vsftpd/allowed_users。只需要添加一行,写入用户名即可。最终文件内容如下图所示,

退出保存即可!重启下vsftp服务!

重启vsftpd,命令是

service vsftpd restart

PS:

如果想要删除ftp某个用户,可以使用如下命令,例如删除用户名为 ”zhangxw”的用户,

userdel zhangxw

配置好vsftpd后,我们就可以启动它了。命令为

service vsftpd start

如需查看vsftpd的状态,可以输入命令

service vsftpd status

显示vsftpd的运行状态,截图如下所示,

可以看到vsftpd的状态是 运行。

PS:  有关ftp端口。

ftp服务有两个端口,默认情况下,一个是20端口,另一个是21端口。21端口用于连接,20端口用于数据传输。

进行ftp文件传输,客户端首先连接到ftp服务器的21端口,进行用户的认证,认证成功后,要传输文件时,ftp服务器会开一个端口20来进行传输数据文件。

    经过上面的步骤,我们就大致完成了有关vsftpd的安装以及配置。接下来,我们就来测试下用户能否连接至vsftpd服务中。首先查看Ubuntu上网的ip地址,在终端中输入

ifconfig

终端中便会出现该系统的上网信息,

ip地址在图上已经标记出来了。ip地址是 10.0.0.120,在终端中输入命令 “ftp ip地址”,

ftp 10.0.0.120

连接成功后,会提示输入用户名和密码,

登录成功,便会出现一个 ‘ftp>’这样的命令行,我们可以输入命令 ‘dir’,查看该用户能访问的目录,

上图显示了 /home/ftp/data 目录,并且这个目录的权限比较多,可读可写。

是否有小伙伴会想,能否在win系统中访问虚拟机中的ftp服务器呢?经过一番折腾,结果是~~~~,请继续看下文。

三、访问ftp。

1. 首先需要查看win系统的ip地址,相信大家对这个问题都不陌生吧?在  cmd 中 输入 ipconfig 就可以了,

因为我使用的是无线上网,所有就需要查看无线网络的ip地址,我本机的无线网络ip地址是10.0.0.149。然后去查看虚拟机的ip地址是否和我的ip地址在同一个网段内?如果两个不在同一个网段,那么需要修改虚拟机的网络ip地址。

2. 修改虚拟机ip地址。

具体修改虚拟机ip地址如下图所示,首先单击网络图标,出现一个下来列表,选择‘编辑连接’,

单击‘编辑连接’,出现一个网络连接对话框,如果有以太网,选中连接,点击编辑;如果没有以太网,点击添加,

修改虚拟机的ip与win电脑的ip为同一个网段,修改子网掩码、网管、DNS服务器,最后点击保存。然后查看虚拟机的ip是否修改成功。

3. 修改虚拟机网络配置。这一步修改前,建议将虚拟机关闭。修改完成后,重新启动。

选择Ubuntu,右键选择 设置,找到 网络。具体修改如下图所示,

修改完成后,点击 ok 按钮。然后,重新启动虚拟机。记得启动完虚拟机后,还要启动下vsftpd服务哦!

接下来就是见证奇迹的时刻了!

4. 验证。

我们通过两种方式来验证。

1). 打开cmd, 输入 ftp 10.0.0.120,如果出现下图所示,说明,是连接成功的

输入用户名和密码,

可以看到,可以连接访问 /home/ftp/data。

这种验证方式和我们直接在虚拟机中验证操作和命令基本上都一样。

2)修改配置文件

说明:tftpd32工具是安装在windows系统下的,其windows系统下使用图解如下:

1.下载tftpd32,在搜索页面输入“tftpd32 传输工具”可看到我上传的tftpd32软件;

2.打开和设置如下图所示:

设置

在上图中,我windows下的ip地址是192.168.0.34,一般情况下打开tftpd32工具后,会自动找到你的电脑ip地址;

3.windows系统设置完成后,并确保你的linux系统也安装了tftp服务器,那么就可以使用tftp进行文件传输了,说明如下:

便可在你的linux系统上通过命令与windows系统(tftpd32工具设置好的当前目录)上的文件进行互传操作了,命令如下:

在Linux系统终端输入:

a. 从windows上传东西到linux:tftp -r 文件 -g 目标ip地址(即windows下的ip);

b.从linux上传东西到windows:tftp -l 文件 -p 目标ip地址(同上);

注释:-r 远程;-l 本地;-g:获取;-p:传送;

猜你喜欢

转载自blog.csdn.net/oXiaoXue123456789/article/details/81557896
今日推荐