目录
一、FTP Server
1.1.简介
FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中应用层的协议之一,作用是提供文件共享服务。
互联网上大多数的媒体资源和软件资源。都是通过FTP服务器传递的。
软件包:vsftpd
1.2.FTP基础
1.2.1.控制端口
控制端口(command)21/tcp
1.2.2.数据端口
数据端口(data) 20/tcpf
1.3.FTP Server默认配置
1.3.1.安装vsftp
yum install -y vsftpd
1.3.2.准备分发的文件
touch /var/ftp/test_ftp.txt
注意:FTP服务器的主目录:“/var/ftp/",是FTP程序分享内容的本机目录。
1.3.3.启动服务
# systemctl start vsftpd
# systemctl enable vsftpd
查看:netstat -anpt
1.3.4.关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
vim /etc/selinux/config
修改内容为:SELINUX = disabled
1.4.FTP Client(默认仅能下载文件)
任何系统的firefox,IE。
1.客户机打开浏览器
2.输入“ftp://服务器IP地址”
默认仅能下载文件,无法上传文件。
1.4.1.LinuxFTP客户端程序1:lftp
1)安装客户端工具
yum -y install lftp
这里安装如果出问题,检查一下yum源。腾讯云可以用。
[root@hadooptest yum.repos.d]# cat CentOS-Base.repo
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[os]
name=Qcloud centos os - $basearch
baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7
[updates]
name=Qcloud centos updates - $basearch
baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/updates/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7
[centosplus]
name=Qcloud centosplus - $basearch
baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/centosplus/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7
[cr]
name=Qcloud centos cr - $basearch
baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/cr/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7
[extras]
name=Qcloud centos extras - $basearch
baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/extras/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7
[fasttrack]
name=Qcloud centos fasttrack - $basearch
baseurl=http://mirrors.cloud.tencent.com/centos/$releasever/fasttrack/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://mirrors.cloud.tencent.com/centos/RPM-GPG-KEY-CentOS-7
[root@hadooptest yum.repos.d]#
2)访问服务器
lftp 服务器的IP地址
3)查看并下载
[root@hadooptest yum.repos.d]# lftp 192.168.75.147
lftp 192.168.75.147:~> ls
-rw-r--r-- 1 0 0 25 Jul 21 21:15 ftp_test.txt
drwxr-xr-x 2 0 0 6 May 11 2016 pub
# 下载文件
lftp 192.168.75.147:/> get ftp_test.txt
25 bytes transferred
lftp 192.168.75.147:/> get pub/
get: Access failed: 550 Failed to open file. (pub/)
lftp 192.168.75.147:/> get pub
# 下载目录
lftp 192.168.75.147:/> mirror pub
Total: 1 directory, 0 files, 0 symlinks
lftp 192.168.75.147:/>
1.4.2.LinuxFTP客户端程序2:wget
检查是否安装wget
[root@hadooptest ftp_test]# wget ftp://192.168.75.147/ftp_test.txt
--2025-07-21 21:52:08-- ftp://192.168.75.147/ftp_test.txt
=> “ftp_test.txt”
正在连接 192.168.75.147:21... 已连接。
正在以 anonymous 登录 ... 登录成功!
==> SYST ... 完成。 ==> PWD ... 完成。
==> TYPE I ... 完成。 ==> 不需要 CWD。
==> SIZE ftp_test.txt ... 25
==> PASV ... 完成。 ==> RETR ftp_test.txt ... 完成。
长度:25 (非正式数据)
100%[=================================================================================================================>] 25 --.-K/s in 0s
2025-07-21 21:52:08 (6.31 MB/s) - “ftp_test.txt” 已保存 [25]
-O 指定文件名和路径。
[root@hadooptest ftp_test]# wget ftp://192.168.75.147/ftp_test.txt -O /tmp/ftp.sh
--2025-07-21 21:53:04-- ftp://192.168.75.147/ftp_test.txt
=> “/tmp/ftp.sh”
正在连接 192.168.75.147:21... 已连接。
正在以 anonymous 登录 ... 登录成功!
==> SYST ... 完成。 ==> PWD ... 完成。
==> TYPE I ... 完成。 ==> 不需要 CWD。
==> SIZE ftp_test.txt ... 25
==> PASV ... 完成。 ==> RETR ftp_test.txt ... 完成。
长度:25 (非正式数据)
100%[=================================================================================================================>] 25 --.-K/s in 0s
2025-07-21 21:53:04 (4.73 MB/s) - “/tmp/ftp.sh” 已保存 [25]
[root@hadooptest ftp_test]# cat /tmp/ftp.sh
hello world
this is ftp`
[root@hadooptest ftp_test]# wget http://nginx.org/download/nginx-1.10.2.tar.gz
1.4.3.启动上传功能
配置文件简介
用于设定FTP服务器功能开启或关闭的文件
# vim /etc/vsftpd/vsftpd.conf
1)检查禁用匿名账户登录开启
目的:启用/禁用匿名账号
anonymous:匿名的;不具名的;不知姓名的;没有特色的;名字不公开的
anonymous_enable=YES
//是否允许匿名用户登录ftp
2)配置上传指令
启动上传文件的能力
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES
# 允许匿名用户进行文件上传
anon_upload_enable=YES
# 启动创建目录的能力
anon_mkdir_write_enable=YES
# 如果设置为YES,则允许匿名用户执行除上载和创建目录之外的写入操作,例如删除和重命名。通常不建议这样做,但包括完整性。
anon_other_write_enable=YES
# 默认权限掩码
anon_umask=022
# 匿名用户主目录
anon_root=/var/ftp
# 匿名用户访问速率
anon_max_rate=0
重启ftp程序
systemctl restart vsftpd
3)创建上传目录
注意:上传文件时,一定要来这个目录。
mkdir /var/ftp/upload
chmod 777 /var/ftp/upload
4)客户端测试
新建一个测试文件
LINUX系统访问登录FTP
lftp 192.168.75.147
上传文件 anonymous_user.txt
进入之后
cd upload
put anonymous_test.txt
注意:这里报Access failed,说明当前upload目录并没有权限,所以我们需要给文件目录赋权。并且还需要将SELinux置为0
上传文件:
使用lftp给FTP上传目录
创建目录
上传目录
# 下载远程目录到本地(默认)
mirror [远程目录] [本地目录]# 上传本地目录到远程(-R反向同步)
mirror -R [本地目录] [远程目录]
5)系统用户的配置
匿名用户的访问,用户之间是没有限制的。可以共同访问资源。系统用户访问就很好的根据用户权限。区分了访问的资源。
匿名开放模式
匿名开放模式是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到FTP服务器。这种模式一般用来访问不重要的公开文件。
本地用户模式
本地用户模式是通过Linux系统本地的账户密码信息进行认证的模式,相较于匿名开放模式更安全,而且配置起来相对简单。但是如果被黑客破解了账户的信息,就可以畅通无阻地登录FTP服
务器,从而完全控制整台服务器。
虚拟用户模式
虚拟用户模式是这三种模式中最安全的一种认证模式,它需要为FTP服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,
仅供FTP服务程序进行认证使用。这样,即使黑客破解了账户信息也无法登录服务器,从而有效降低了破坏范围和影响。
使用本地用户模式
# 禁止匿名访问模式
anonymous_enable=NO
# 是否允许本地用户登录 FTP
local_enable=[YES|NO]
# 是否开放本地用户的其他写入权限
write_enable=[YES|NO]
# 本地用户上传文件的 umask 值
local_umask=022
6)其他系统客户机的访问
二、NFS Server
2.1.名词解释
NFS:Network File System 网络文件系统,Linux/Unix系统之间共享文件的一种协议,NFS 的客户端主要为Linux支持多节点同时挂载,以及并发写入。
作用:提供文件共享服务,为 Web Server 配置集群中的后端存储
2.1.1.案例环境
nas 192.168.142.133
NAS(Network Attached Storage:网络附属存储)按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为“网络存储器”。
web1 192.168.75.210
关闭防火墙
#vi /etc/selinux/config
SELINUX=disabled
# setenforce 0
# systemctl stop firewalld
# systemctl disable firewalld
2.2.NAS(存储端)(关闭防火墙)
Network Attached Storage:网络附属存储,NFS是NAS的一种
2.2.1.安装NFS服务器
这里测试了腾讯的yum源可以安装nfs软件,所以换一下源。
# yum -y install nfs-utils
# mkdir /root/webdata
存储网站代码,放置一个测试页面。
2.2.2.配置NFS服务器
/etc/exports文件包含NFS服务器上可供NFS客户端访问的本地物理文件系统表的内容文件由服务器的系统管理员维护。
# vim /etc/exports
/webdata 192.168.75.0/24(rw)
注释
/webdata指的是发布资源的目录
192.168.75.0/24允许访问NFS的客户机
(rw)可读可写
2.2.3.启动NFS服务器
# systemctl start nfs-server
# systemctl enable nfs-server
检查NFS输出是否正常
# exportfs -v
-v 检查输出的目录
/root/webdata
192.168.75.0/24(rw,wdelay,no_root_squash,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)
2.3.web1客户端(关闭防火墙)
WEB1服务器
2.3.1.安装NFS客户端
# yum -y install nfs-utils httpd
# service httpd start
# service httpd enable
2.3.2.查看存储端共享
# showmount -e 192.168.75.147
// 查询NFS服务器可用目录
查看的结果
2.3.3. 手动挂载
# mount -t nfs 192.168.75.147:/root/webdata
/var/www/html/
注释
mount -t nfs 192.168.142.133:/root/webdata
/var/www/html
挂载命令 类型 nfs类型 nfs服务器地址:nfs输出目录
本地目录
发现挂载不起:
no_root_squash 会赋予客户端 root 完全权限,仅在可信局域网 中使用,生产环境建议用 root_squash 并通过普通用户权限控制访问。
2.3.4.查看挂载
# df
2.3.5.使用web客户端查看web服务器
真机打开浏览器浏览网页即可。
2.4.测试网站访问
# firefox 192.168.75.147
在命令行中输入 firefox 192.168.75.147 的作用是 启动 Firefox 浏览器并尝试访问 IP 地址为 192.168.75.147 的服务器所提供的 Web 服务(默认通过 HTTP 协议访问 80 端口)。
三、SSH SERVER
3.1.简介
有没有感觉在服务器的字符界面,进行选取,复制,粘贴,翻页很不方便。所以就可借助SSH(安全外壳协议)远程操作和管理系统,不仅方便而且安全可靠。
3.2.SSH 服务器实战
1、登录CentOS
2、查询SSH是否安装
查看SSH是否安装。
输入命令:rpm -qa | grep ssh/yum list installed | grep ssh
注:若没安装SSH则可输入:yum install openssh-server安装
3、SSH服务管理
配置文件管理:vim /etc/ssh/sshd_config
禁止root用户远程登录
可设置为: PermitRootLogin no
若需要允许root通过密钥登录(禁止密码登录)
可设置为:PermitRootLogin prohibit-password
结果:
Port 22:登录端口22
启动服务
(默认启动)systemctl start sshd
查看端口
netstat -antp | grep sshd
22号端口提供者SSH服务
开机启动
(默认启动)systemctl enable sshd
4、使用SSH远程管理
#ssh 账户名@IP地址
5、免密登录
环境:192.168.142.134
业务服务器-数量非常大:192.168.142.129
跳板机
1.使用129远程134需要使用密码
2.在129生成秘钥并传递给134
生成秘钥
传递秘钥
3.使用129远程134-免密