文章目录
- 前言
- 一、frp是什么?
- 二、为什么使用 frp?
- 二、使用步骤
- 1.下载压缩包
- 2. 解压
- 3. 编辑服务器配置文件
- 4. 启动服务器
- 5. 编辑客户端配置文件
- 6. 启动客户端
- 7. 访问
- 总结
- 最后
前言
- 内网穿透之frp篇,本文介绍了frp一些使用实例
- 官方文档:https://gofrp.org/docs/
- Github:https://github.com/fatedier/frp
- 博主服务器:阿里云 CentOS 7.2 64
- 要求:
5.1 拥有公网IP的服务器
一、frp是什么?
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
二、为什么使用 frp?
官方文档是这么说的:
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
- 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
- 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
- 代理组间的负载均衡。
- 端口复用,多个服务通过同一个服务端端口暴露。
- 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
- 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
- 服务端和客户端 UI 页面。
通俗点说就是通过一台拥有公网IP的服务器访问处在内网的服务器。
二、使用步骤
传送门:https://github.com/fatedier/frp/releases 目前我写教程时的版本为0.33.0,那么就以0.33.0开始
话不多说直接开始:
1.下载压缩包
可以看到作者提供了多种压缩包给我们 这里我的服务器是CentOS 64位 我选择了 frp_.0.33.0_linux_amd64.tar.gz,这里俩个选择,一种直接下载到本地再通过winScp上传到服务器,二是直接在服务器中进行下载
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz
2. 解压
cd /usr/local
mkdir frp
我把压缩包放在了这里面
tar -xzvf frp_0.33.0_linux_amd64.tar.gz
3. 编辑服务器配置文件
cd frp_0.33.0_linux_amd64
ls
frpc frpc_full.ini frpc.ini frps frps_full.ini frps.ini LICENSE systemd
这里我们可以看到 压缩包内共8个文件
frpc frpc.ini frpc_full.ini 为客户端软件及配置
frps frps.ini frps_full.ini 为服务器软件及配置
在这里我们需要用到的是服务器配置 也就是frps.ini
vi frps.ini
这是我服务器配置参数:
[common]
#frp服务器监听地址,如果是IPV6地址必须用中括号包围
bind_addr = 0.0.0.0
#frp服务器监听端口
bind_port = 7000
#如果要使用vitual host,就必须设置
vhost_http_port = 80
#vhost_https_port = 443
#Web后台监听端口
dashboard_port = 7500
#Web后台的用户名和密码
dashboard_user = admin
dashboard_pwd = admin
#Web后台的静态资源目录,调试用的,一般不设
#assets_dir = ./static
#日志输出,可以设置为具体的日志文件或者console
log_file = /usr/local/frp/frps.log
#日志记录等级,有trace, debug, info, warn, error
log_level = info
#日志保留时间
log_max_days = 3
4. 启动服务器
./frps -c ./frps.ini
如果想后台启动
nohup ./frps -c ./frps.ini &
查看启动状态
cat nohup.out
至此服务器启动成功。
注:需要注意的地方 7000、80、7500端口都是要开放的!
再注:阿里云的端口在系统开放后 需要到控制台安全组开启端口!!!
CentOS7 几条防火墙命令
#开启防火墙
systemctl start firewalld
#关闭防火墙
systemctl stop firewalld
#开放指定端口 permanent-永久生效 例80
firewall-cmd --zone=public --add-port=80/tcp --permanent
#开放指定范围端口 例8080-8090
firewall-cmd --zone=public --add-port=8080-8090/tcp --permanent
#查看指定端口状态
firewall-cmd --zone=public --query-port=80/tcp
#查看已开放端口列表
firewall-cmd --list-ports
#关闭指定开放端口
firewall-cmd --zone=public --remove-port=8080-8090/tcp --permanent
#添加/关闭端口后都要重启防火墙
firewall-cmd --reload
开放端口后,假设服务器的公网IP为1.2.3.4,那么访问1.2.3.4:7500 输入上面设置的后台帐号密码 即可进去Web后台。
5. 编辑客户端配置文件
客户端这边我选择了Windows下的CentOS7 虚拟机
与服务器解压等相同操作,这次编辑的frpc.ini文件
vi frpc.ini
[common]
#服务器公网IP
server_addr =1.2.3.4
#服务器端口
server_port = 7000
[ssh]
#SSH连接
type = tcp
#本地内网IP
local_ip = 192.168.159.129
#本地内网端口
local_port = 22
#服务器监听端口
remote_port = 6000
[web]
#Http请求
type = http
#本地IP
local_ip = 192.168.159.129
#本地端口
local_port = 8080
#可为域名 与 服务器IP
custom_domains = www.test.com
6. 启动客户端
./frpc -c ./frpc.ini
如果想后台启动
nohup ./frpc -c ./frpc.ini &
查看启动状态
cat nohup.out
至此客户端启动成功。
7. 访问
#访问1.2.3.4:6000 即可连接内网的服务器
1.2.3.4:6000
#访问1.2.3.4:80即可转到Web服务
1.2.3.4:80
总结
必须想法设法搞到公网IP哈哈哈哈哈
最后
我是卢生
生有热烈 藏于俗常