一直都想学习Linux,但是由于各种原因,耽搁至今。最近有点时间,所幸就走进了Linux的世界。本文是学习Linux的第一篇。记录自己的学习之路。回到主题,请开始你的表演!
一、准备。
我们都知道,要学习Linux,首先需要在电脑上安装Linux系统, 具体的安装步骤,详情可以参考Linux安装。为了简单,我在win10电脑上安装了VirtualBox虚拟机,在该虚拟机中,安装了Ubuntu。具体安装VirtualBox虚拟机和Ubuntu,都比较简单,这里就不在详细描述!如有疑问,请自行百度。
安装好Ubuntu后,就开始Linux之旅了!
由于本篇文章主要是讲解ftp方面的,所以有关Linux的知识,请自行百度!因为我也是初学者!^_^
二、ftp服务器配置。
2.1. 安装ftp服务器。
目前Linux上使用较多的ftp服务器是vsftpd。所以,我们需要先安装vsftpd软件。在Ubuntu上安装vsftpd,使用的命令是
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经过漫长的等待,终端中最终会执行上面添加的代码。
PS:
修改/etc/apt/sources.list文件,我们可以使用在终端中输入命令
vi /etc/apt/sources.list
就会弹出一个文件编辑界面,这个就是vi编辑界面,此时,我们就能使用vi的基本命令来操作该文件了。
vim编辑器,相信使用过Linux的伙伴们,都不会陌生。vim 编辑器有两种模式,一种是命令模式,另一种是编辑模式。命令模式下,才能使用vi的一些命令,例如,将光标移动到文件内容的最后一行,使用 “G”;“j”-使光标移动下一行;“k”-使光标移动到上一行;“x”-删除光标后的字符;“X”-删除光标前的字符;退出并保存,使用“:wq”;“q!”-退出不保存修改;要从命令模式切换至编辑模式,可以使用“i”和“a”(“i”-在当前字符的前面插入的内容,“a”-在当前字符的后面插入的内容)。编辑模式下,就可以输入新的内容了;从编辑模式切换至命令模式,按“esc”键即可。下面列举下,vi的常用命令,
Ctrl+u:向文件首翻半屏; Ctrl+d:向文件尾翻半屏; Ctrl+f:向文件尾翻一屏; Ctrl+b:向文件首翻一屏; esc:从编辑模式切换到命令模式; ZZ:命令模式下保存当前文件所做的修改后退出vi; :行号:光标跳转到指定行的行首; :$:光标跳转到最后一行的行首; x或X:删除一个字符,x删除光标后的,而X删除光标前的; D:删除从当前光标到光标所在行尾的全部字符; dd:删除光标行正行内容; ndd:删除当前行及其后n-1行; nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字; p:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的下方; P:粘贴文本操作,用于将缓存区的内容粘贴到当前光标所在位置的上方; /字符串:文本查找操作,用于从当前光标所在位置开始向文件尾部查找指定字符串的内容,查找的字符串会被加亮显示; ?name:文本查找操作,用于从当前光标所在位置开始向文件头部查找指定字符串的内容,查找的字符串会被加亮显示; a,bs/F/T:替换文本操作,用于在第a行到第b行之间,将F字符串换成T字符串。其中,“s/”表示进行替换操作; a:在当前字符后添加文本; A:在行末添加文本; i:在当前字符前插入文本; I:在行首插入文本; o:在当前行后面插入一空行; O:在当前行前面插入一空行; :wq:在命令模式下,执行存盘退出操作; :w:在命令模式下,执行存盘操作; :w!:在命令模式下,执行强制存盘操作; :q:在命令模式下,执行退出vi操作; :q!:在命令模式下,执行强制退出vi操作; :e文件名:在命令模式下,打开并编辑指定名称的文件; :n:在命令模式下,如果同时打开多个文件,则继续编辑下一个文件; :f:在命令模式下,用于显示当前的文件名、光标所在行的行号以及显示比例; :set number:在命令模式下,用于在最左端显示行号; :set nonumber:在命令模式下,用于在最左端不显示行号;
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
接着设置该用户的密码,输入命令,
passwd zhangxw然后根据提示,输入密码即可。例如截图所示,
3. 将上面添加的用户,手动写入到 /etc/vsftpd/allowed_users。只需要添加一行,写入用户名即可。最终文件内容如下图所示,
退出保存即可!重启下vsftp服务!
重启vsftpd,命令是
service vsftpd restart
如果想要删除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). 使用第三方工具。
使用Xftp工具。相信很多使用Linux服务的小伙伴都知道这个工具。具体的安装、下载就不多说了,比较简单。下面是它的使用。
打开这个工具,新建一个连接,具体的配置,如下图所示,
输入ftp服务器ip地址,选择协议 ftp,输入端口 21,填写用户名和密码,最后点击 确定按钮。
然后在工具中点击 打开头标,会出现一个会话对话框,选中我们新建的连接,点击连接按钮,
如果一切都顺利的话,将会出现如下所示的界面,
现在,我们就可以上传文件到 data 目录中 了。选中一个文件,拖动到data目录中,
至此,有关Linux中配置ftp服务器的成功了!希望看博文的读者,能动手实践操作下!