1、frp简介
frp 是⼀个开源、简洁易⽤、⾼性能的内⽹穿透和反向代理软件,⽀持 tcp, udp, http, https等 协议。frp 项⽬官⽹是 https://github.com/fatedier/frp
2、frp⼯作原理
服务端运⾏,监听⼀个主端⼝,等待客户端的连接; 客户端连接到服务端的主端⼝,同时告诉服务端要监听的端⼝和转发类型; 服务端fork新的进程监听客户端指定的端⼝; 外⽹⽤户连接到客户端指定的端⼝,服务端通过和客户端的连接将数据转发到客户端; 客户端进程再将数据转发到本地服务,从⽽实现内⽹对外暴露服务的能⼒。
3、frp的安装与配置
[root@y ~]# wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
[root@y ~]# tar -zxvf frp.tar.gz
[root@y ~]# mv frp_0.33.0_linux_amd64/ /frp
[root@y ~]# ls /frp
frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE systemd
[root@y ~]# vim /frp/frpc.ini 这里由于我没有云服务器所有连的别人的[common]
server_addr = 123.249.27.70 代理服务器IP
server_port = 7000代理标识
token=knee@588588[qwer] 被代理的主机名称,不允许和其他重复
type = tcp 代理服务类型
local_ip = 127.0.0.1
local_port = 22 本地被代理的端⼝
remote_port = 6022 选择代理后的端⼝
[root@y ~]#cd /frp
[root@y frp]# ./frpc -c frpc.ini 启动frp服务浏览器访问123.249.27.70:6002
换成4.10的主机搭建一个云frp的服务器
[root@localhost ~]# tar -zxvf frp.tar.gz
[root@localhost ~]# scp root@192.168.4.30:~/frp.tar.gz ~
[root@localhost ~]# mv frp_0.33.0_linux_amd64/ /fr
[root@localhost ~]# vim /frp/frps.ini服务名称
[common]服务端⼝
bind_port = 7000控制台⾯板账号
dashboard_user=aaa
控制台密码
dashboard_pwd=aaa控制台端⼝
dashboard_port=7500打开frp服务端⼝
[root@localhost ~]# firewall-cmd --zone=public --add-port=7000/tcp --permanent打开⼀组客户端⼝
[root@localhost ~]# firewall-cmd --zone=public --add-port=6000-6100/tcp --permanent打开控制台⾯板端⼝
[root@localhost ~]# firewall-cmd --zone=public --add-port=7500/tcp --permanent加载防⽕墙更新
[root@localhost ~]# firewall-cmd --reload
[root@localhost ~]# cd /frp
[root@localhost frp]# ./frps -c frps.ini
换成4.30的源主机这里由于是自己搭建了一个所以
[root@y ~]# vim /frp/frpc.ini
[common]
server_addr = 192.168.4.10
server_port = 7000[qwer]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6022
浏览器访问服务器IP:7500端口就可以访问到frp服务器,左边第二个选项TCP可以看见有没有可连接的主机,以及连接的端口号。
远程登录通过端口6022即可访问4.10的服务器就可以访问到客户端。
二、ftp
1.ftp服务概述:
FTP(File Transfer Protocol)是⼀种应⽤⾮常⼴泛并且古⽼的⼀个互联⽹⽂件传输协议。
主要⽤于互联⽹中==⽂件的双向传输==(上传/下载)、⽂件共享
跨平台 Linux、Windows
FTP是==C/S==架构,拥有⼀个客户端和服务端,使⽤==TCP协议==作为底层传输协议,
提供可靠的数据传输
FTP的默认端⼝ ==21号==(命令端⼝) ==20号==(数据端⼝,主动模式下) 默认被
动模式下
FTP程序(软件)==vsftpd==
2、FTP服务的客户端⼯具
Linux:ftp、lftp(客户端程序)
Windows:FlashFXP(虚拟主机)、FileZilla、IE、Chrome、Firefox
lftp和ftp⼯具区别:
lftp:默认是以==匿名⽤户==访问
ftp:默认是以==⽤户名/密码==⽅式访问
lftp可以批量并且下载⽬录
3、FTP的两种运⾏模式
在FTP服务中,其⼀共拥有两种模式(主动模式 + 被动模式)
4、搭建FTP服务
[root@y ~]# yum -y install vsftpd
[root@y ~]# systemctl restart vsftpd
[root@y ~]# systemctl enabled vsftpd
[root@y~]# firewall-cmd --set-default-zone=trusted 修改默认区域
[root@y ~]# firewall-cmd --get-default-zone 查看默认区域
5.FTP的配置⽂件详解
[root@y ~]# rpm -ql vsftpd
/usr/lib/systemd/system/vsftpd.service 启动脚本
/etc/vsftpd 配置⽂件的⽬录
/etc/vsftpd/ftpusers ⽤户列表⽂件,⿊名单
/etc/vsftpd/user_list ⽤户列表⽂件,可⿊可⽩(默认是⿊名单)
/etc/vsftpd/vsftpd.conf 配置⽂件(主配置⽂件)
/usr/sbin/vsftpd 程序本身(⼆进制的命令)
/var/ftp 匿名⽤户的默认数据根⽬录
/var/ftp/pub 匿名⽤户的扩展数据⽬录
vsftpd配置⽂件详解:
[root@y ~]# grep -v ^# /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限速操作)
6、ftp服务的搭建
[root@y ~]# yum -y install vsftpd
[root@y ~]# rpm -ql vsftpd 查看相关的配置文件
[root@y ~]# systemctl status vsftpd 查看启动状态
[root@y ~]# systemctl start vsftpd
root@y ~]# netstat -lpunt |grep ftp查看端口情况
[root@y ~]# firewall-cmd --zone=public --add-port=21/tcp --permanent
打开ftp端口
[root@y ~]# firewall-cmd --reload
[root@y ~]# firewall-cmd --zone=public --list-ports 查看打开的端口
[root@y ~]# setenforce 0 关闭selinx
[root@y ~]# vim /etc/selinux/config 永久关闭selinx
换一台主机设置为ftp的客户端
[root@localhost frp]# yum -y install ftp
[root@localhost frp]# ftp 192.168.4.30
[root@localhost frp]# yum -y install lftp
[root@localhost frp]# lftp 192.168.4.30 默认是匿名访问
这里是因为ls时端口是随机的所以找不到。
换回服务器
[root@y ~]# useradd kehu
[root@y ~]# echo kehu |passwd --stdin kehu
[root@y ~]# vim /etc/vsftpd/vsftpd.conf
17 local_root=/data/kehu 指定账号访问目录,需要写的
101 chroot_local_user=YES 去掉这里的注释,禁锢kehu中i能在/data/kehu活动
[root@y ~]# systemctl start vsftpd
[root@y ~]# cd /data/kehu/
[root@y kehu]# dd if=/dev/zero of=./syg.txt bs=3M count=1
[root@y kehu]# firewall-cmd --set-default-zone=trusted 设置信任所有端口
回到客户机
要下载的话就输入get 文件名,要上传就输入pull 文件名。
7、一般可能会遇见的问题