一、准备。
ubuntu虚拟机和window之间采用桥接方式(电脑主机最好是网线上网)
二、ftp服务器配置。
2.1. 安装ftp服务器。
目前Linux上使用较多的ftp服务器是vsftpd。所以,我们需要先安装vsftpd软件。在Ubuntu上安装vsftpd,使用的命令是
sudo apt-get install vsftpd
在终端输入这句命令,有可能会提示-“无法定位到软件包 vsftpd”,那么这个问题的解决办法是在 /etc/apt/sources.list文件的最后,添加如下代码,
deb http://ftp.us.debian.org/debian stable main contrib non-free
deb http://ftp.us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://ftp.us.debian.org/debian testing main contrib non-free
deb http://ftp.us.debian.org/debian-non-US testing/non-US main contrib non-free
deb http://ftp.us.debian.org/debian unstable main contrib non-free
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文件。具体的配置和说明,见下文,
# 禁止匿名用户登录
anonymous_enable=NO
# 允许系统用户登录
local_enable=YES
# 启用可以修改文件的 FTP 命令
write_enable=YES
# 本地用户创建文件的 umask 值
local_umask=022
# 允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
dirmessage_enable=YES
# 开启日记功能
xferlog_enable=YES
# 使用标准的20端口来连接ftp
connect_from_port_20=YES
# 使用标准日志格式
xferlog_std_format=YES
# 如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录
chroot_list_enable=YES
# 指定限制的用户文件
chroot_list_file=/etc/vsftpd/chroot_list
# ftp服务器将处于独立启动模式
listen=YES
# 设置一个本地用户登录后进入到的目录
local_root=/home/ftp
# 设置PAM认证服务的配置文件名称,该文件保存在“/etc/pam.d/”目录下
pam_service_name=vsftpd
# ftp将检查userlist_file设置文件中指定的用户是否可以访问vsftpd服务器
userlist_enable=YES
# 只允许user_list文件中记录的ftp用户能登录vsftp服务,其他的ftp用户都不可以登录。
userlist_deny=NO
# 定义限制/允许用户登录的文件
userlist_file=/etc/vsftpd/allowed_users
# ftp服务器将使用tcp_wrappers作为主机访问控制模式
tcp_wrappers=YES
# 连接ftp服务费使用的端口
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:传送;