Linux网络服务——FTP服务器搭建
Posted 0611#
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux网络服务——FTP服务器搭建相关的知识,希望对你有一定的参考价值。
FTP服务器
- FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。
- FTP是用来在两台计算机之间传输文件,它可根据实际需要设置各用户的使用权限,同时还具有跨平台的特性,即在UNIX、Linux和Windows等操作系统中都可实现FTP客户端和服务器,相互之间可跨平台进行文件的传输。
FTP主动模式
主动模式是FTP的默认模式,也称为PORT模式- 在主动模式下,客户端会开启N和N+1两个端口,N为客户端的命令端口,N+1为客户端的数据端口
- 第一步,客户端使用端口N连接FTP服务器的命令端口21,建立控制连接并告诉服务器我这边开启了数据端口N+1。
- 第二步,在控制连接建立成功后,服务器会使用数据端口20,主动连接客户端的N+1端口以建立数据连接。这就是FTP主动模式的连接过程。
- 在这条红色的数据连接建立的过程中,服务器是主动的连接客户端的,所以称这种模式为主动模式。
主动模式利弊
- 主动模式对FTP服务器的管理有利,因为FTP服务器只需要开启21端口的“准入”和20端口的“准出”即可
- 但这种模式对客户端的管理不利,因为FTP服务器20端口连接客户端的数据端口时,有可能被客户端的防火墙拦截掉
FTP被动模式
FTP主动模式,简单的理解就是服务器的数据端口20主动连接客户端的数据端口,来建立数据连接,用来传输数据,这个数据连接的建立有可能被客户端防火墙拦截掉。为了解决这个问题就衍生出另外一种连接模式---被动模式。被动模式也称为passive模式。- 第一步,客户端的命令端口N主动连接服务器命令端口21,并发送PASV命令,告诉服务器用“被动模式”,控制连接建立成功后,服务器开启一个数据端口P,通过PORT命令将P端口告诉客户端。
- 第二步,客户端的数据端口N+1去连接服务器的数据端口P,建立数据连接。
- 在这条红色的数据连接建立的过程中,服务器是被动的等待客户端来连接的,所以称这种模式为被动模式。
被动模式利弊
- 被动模式对FTP客户端的管理有利,因为客户端的命令端口和数据端口都是“准出”,windows防火墙对于“准出”一般是不拦截的,所以客户端不需要任何多余的配置就可以连接FTP服务器了。
- 但对服务器端的管理不利。因为客户端数据端口连到FTP服务器的数据端口P时,很有可能被服务器端的防火墙阻塞掉。
一、实验目的
- 搭建FTP服务器
- 与客户端共享文件
二、实验环境
- Linux主机作为FTP服务器,ip地址:192.168.100.20
三、实验过程(如下)
第一步:FTP Server配置
一、使用yum安装方式
[root@pakho ~]# yum -y install vsftpd #安装
二、准备需要分享的文件
[root@pakho ~]# cp hosts.sh /var/ftp/ #复制桌面文件hosts到/var/ftp下
[root@pakho ~]# ls /var/ftp/ #查看
hosts.sh pub #pub为公共文件 public hosts.sh为准备分享的文件
注:FTP服务器的主目录:"/var/ftp/" ,是FTP程序分享的本机目录
三、启动FTP服务
[root@pakho ~]# systemctl start vsftpd #启动FTP服务
[root@pakho ~]# systemctl enable vsftpd #也可以设置为开机自启动
使用命令查看21号端口是否开启
20号端口没开是因为没开始传输数据
四、关闭防火墙!!!
[root@pakho ~]# systemctl stop firewalld #立刻停止防火墙
[root@pakho ~]# systemctl enable firewalld #开启关闭防火墙
[root@pakho ~]# setenforce 0 #关闭selinux
[root@pakho ~]# vim /etc/selinux/config #通过配置文件永久关闭selinux
第二步:FTP 客户端配置、测试
一、LinuxFTP客户端程序 lftp测试
- 打开一台新的虚拟机当客户机安装客户端
第一步:安装客户端工具
[root@611 ~]# yum -y install lftp #lftp轻量级ftp工具
第二步:访问服务器
- 首先作为客户端访问的服务器没有hosts这个文件
[root@611 ~]# ls #查看
inodetest.sh john-1.9.0.tar.gz
- 访问FTP服务器进行文件操作
[root@611 ~]# lftp 192.168.100.20 #访问FTP服务器的IP地址
lftp 192.168.100.20:~> ls #查看文件夹里的文件
-rw-r--r-- 1 0 0 321 May 10 20:00 hosts.sh
drwxr-xr-x 2 0 0 6 Oct 13 2020 pub
lftp 192.168.100.20:/> get hosts.sh #下载文件使用get
321 bytes transferred #提示321个字节已经传输完成
lftp 192.168.100.20:/> mirror pub #下载目录使用mirror mirror:镜像
Total: 1 directory, 0 files, 0 symlinks #提示1个文件夹已经传输完成 0个文件 0个链接
lftp 192.168.100.20:/> exit #完成后退出
注:访问FTP服务器的地址必须是准确地址否则访问错误的地址也提示访问成功
二、LinuxFTP客户端程序 wget测试
- 先清除环境将刚才下载的文件删除为本次测试准备
一切操作在客户端上执行
[root@611 ~]# rm -rf hosts.sh
[root@611 ~]# rm -rf pub/
- 下载文件
[root@611 ~]# wget ftp://192.168.100.20/hosts.sh #使用wget下载文件名必须输全否则无法下载
- 下载过程
三、windows客户端测试
- 将文件拖至桌面打开也能看到内容说明搭建ftp服务器成功
默认仅能下载文件
第三步 FTP优化:启用身份验证功能、上传下载功能
配置文件的操作
[root@pakho ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup #备份
[root@pakho ~]# vim /etc/vsftpd/vsftpd.conf #进入ftp主配置文件
一、检查禁用匿名账户登录开启
目的:启用/禁用匿名账户(默认,比较方便)
anonymous_enable=YES/NO #是否允许匿名用户开启或者关闭
二、配置上传指令
#anon_upload_enable=YES #匿名用户启动上传文件的权限默认关闭
#anon_mkdir_write_enable=YES #匿名用户启动创建目录的权限默认关闭
因为做实验的关系将其打开测试
设置完必须重启ftp服务
[root@pakho ~]# systemctl restart vsftpd #重启ftp
三、创建上传的目录
[root@pakho ~]# mkdir /var/ftp/upload #准备一个文件夹 upload:上传
[root@pakho ~]# chmod 777 /var/ftp/upload/ #给文件夹提权 给可写权限就行
查看是否提权成功
四、客户端测试
换一台虚拟机!
[root@611 ~]# echo ftptest > ftptest.txt #创建一个需要上传的文件
[root@611 ~]# lftp 192.168.100.20 #进入ftp服务器
lftp 192.168.100.20:~> cd upload/ #进入upload上传文件夹
lftp 192.168.100.20:/upload> put ftptest.txt #上传文件ftptest.txt
8 bytes transferred #提示上传成功
lftp 192.168.100.20:/upload> mkdir mltest #创建文件夹
mkdir ok, `mltest' created #文件夹mltest创建成功
lftp 192.168.100.20:/upload> exit #退出客户端
完成后进入服务器检查
以上是关于Linux网络服务——FTP服务器搭建的主要内容,如果未能解决你的问题,请参考以下文章