frp概念
frp是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持tcp,udp,http,https
等协议。frp项目官网是https://github.com/fatedier/frp
frp工作原理
服务端运行,监听一个主端口,等待客户端的连接;
客户端连接到服务端的主端口,同时告诉服务端要监听的端口和转发类型;
服务端fork新的进程监听客户端指定的端口;
外网用户连接到客户端指定的端口,服务端通过和客户端的连接将数据转发到客户端;
客户端进程再将数据转发到本地服务,从而实现内网对外暴露服务的能力。
一、基本配置
1、解压
[root@qqq ~]# tar -xzvf frp_0.33.0_linux_amd64.tar.gz
2、给文件改名字
[root@qqq ~]# cp -r frp_0.33.0_linux_amd64 frp/
[root@qqq ~]# cd frp/
[root@qqq frp]# ls
3、修改客户端配置文件
[root@qqq frp]# vim frpc.ini
4、启动
[root@qqq frp]# ./frpc -c frpc.ini
二、准备两台机器
q(a) 内网主机 不可以被网络访问
w(b) 外网主机 可以被外网通过ip或者域名访问
使用q主机代理w主机,通过访问q主机管理w主机
frp访问q主机的特定端口,管理w主机的22端口
w服务端
1、完成文件下载
[root@w ~]# scp root@192.168.8.142:~/frp_0.33.0_linux_amd64.tar.gz ~
2、解压
[root@w ~]# tar -xzvf frp_0.33.0_linux_amd64.tar.gz
3、改名
[root@w ~]# cp -r frp_0.33.0_linux_amd64/ frp/
4、配置服务端的ini文件 frps.ini
[root@w frp]# rm -rf .frps.ini.swp
[root@w ~]# vim frp/frps.ini
5、开放端口
7500端口 面板
6000-6100客户端的代理端口
不关防火墙
[root@w frp]# firewall-cmd --zone=public --add-port=7000/tcp --permanent
[root@w frp]# firewall-cmd --zone=public --add-port=7500/tcp --permanent
[root@w frp]# firewall-cmd --zone=public --add-port=6000-6100/tcp --permanent
[root@w frp]# firewall-cmd --reload
6、启动
[root@w frp]# ./frps -c frps.ini
q客户端
1、进入目录
[root@q ~]# cd frp
2、修改客户端配置文件
[root@q frp]# vim frpc.ini
3、启动
[root@q frp]# ./frpc -c frpc.ini
三、FTP服务概述
1、FTP服务介绍
文件传输:文件上传与文件下载
FTP是一种应用非常广泛并且古老的一个互联网文件传输协议,主要用于互联网中 == 文件的双向传输 == (上传/下载)、文件共享, 跨平台 Linux、Windows, FTP是 == C/S == 架构,拥有一个客户端和服务端,使用 == TCP协议 == 作为底层传输协议,提供可靠的数据传输,FTP的默认端口 == 21号 == (命令端口)
被动模式下
FTP程序(软件) == vsftpd = 20号 ==(数据端口,主动模式下)默认FTP软件名称=>vsftpd => vs
2、FTP服务的客户端工具
服务端
(1)下载安装vsftpd
[root@q ~]# yum -y install vsftpd
(2)查看相关的配置文件
[root@q ~]# rpm -ql vsftpd
(3)查看服务状态
[root@q ~]# systemctl status vsftpd
(4)启动vsftpd服务
[root@q ~]# systemctl start vsftpd
(5)查看端口情况
[root@q ~]# netstat -lpunt | grep ftp //21端口
3、FTP的两种运行方式
主动模式、被动模式
4、搭建FTP
(1)开放端口
[root@q ~]# firewall-cmd --zone=public --add-port=21/tcp --permanent
[root@q ~]# firewall-cmd --reload
[root@q ~]# firewall-cmd --zone=public --list-ports //查看所有的开放端口
21/tcp
(2)关闭selinux
[root@q ~]# vim /etc/selinux/config
[root@q ~]# setenforce 0
(3)设置vsftpd服务开机自启动
[root@q ~]# systemctl enable vsftpd
客户端
[root@w ~]# lftp 192.168.8.142 //不能登录
[root@w ~]# ftp 192.168.8.142 //可以登录,但不能做什么,没有权限
Name (192.168.8.142:root): ftp
331 Please specify the password.
Password:
230 Login successful.
5、FTP配置文件详解(重要)
(1)查看vsftpd的配置文件
[root@q ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES 支持匿名用户访问
local_enable=YES 支持非匿名用户,普通账号登录,默认进入到自己家目录
write_enable=YES 写总开关
local_umask=022 反掩码 file:644 rw- r-- r-- dir:755
dirmessage_enable=YES 启用消息功能
xferlog_enable=YES 开启或启用xferlog日志
connect_from_port_20=YES 支持主动模式(默认被动模式)
xferlog_std_format=YES xferlog日志格式
listen=YES ftp服务独立模式下的监听
pam_service_name=vsftpd 指定认证文件
userlist_enable=YES 启用用户列表
tcp_wrappers=YES 支持tcp_wrappers功能(FTP限速操作)
(2)创建ftp登录的账户
[root@q ~]# useradd kefu
[root@q ~]# echo kefu | passwd --stdin kefu
(3)修改配置文件
[root@q ~]# vim /etc/vsftpd/vsftpd.conf
12行
(4)重启服务
[root@q ~]# systemctl restart vsftpd
(5)客户端测试
[root@w ~]# ftp 192.168.8.142 没有权限
Connected to 192.168.8.142 (192.168.8.142).
220 (vsFTPd 3.0.2)
Name (192.168.8.142:root): kefu
331 Please specify the password.
Password:
230 Login successful.
(6)指定用户访问的路径
[root@q ~]# vim /etc/vsftpd/vsftpd.conf
local_root=/data/kefu 新建
(7)创建配置文件对应的目录
[root@q ~]# mkdir -p /data/kefu/
(8)限定目录
[root@q ~]# vim /etc/vsftpd/vsftpd.conf
101行
(9)重启服务
[root@q ~]# systemctl restart vsftpd
(10)服务端创建文件
[root@q ~]# cd /data/kefu/
[root@q kefu]# dd if=/dev/zero of=bigfile0 bs=3M count=1
(11)客户端访问
[root@w ~]# ftp 192.168.8.142