您当前的位置:首页 > 计算机 > 软件应用 > 网络应用

frp专注于内网穿透的反向代理应用,部署使用实战教程

时间:11-16来源:作者:点击数:

最近公司业务调整优化,将大部分项目都迁移到了云服务器上托管运行。包括开发环境基本上也迁移了到了云服务器。

开发环境+测试环境+演示环境+线上环境 都整了云服务器上,这样服务器的压力偏大。再加上公司闲置了不少服务器。

于于是乎就想起了公司“废物”利用了!本文内容全部是实战操作!

准备工作

1)一台有公网IP的服务器(博主使用的是一台物理机 下行 10M  上行 100M

2)内网服务器:

2 台 CentOS 7.8 系统 服务器,一台数据库,一台WEB服务。

1 台Windows 服务器,用于做跳板机访问。

开源仓库

https://github.com/fatedier/frp

常见编译

打包后不同的的可执行文件适用不同的平台!以下供大家参考!

  • darwin/386:对应 Mac x86
  • darwin/amd64:对应 Mac amd64
  • linux/386:对应 Linux x86
  • linux/amd64:对应 Linux amd64
  • Windows/386:对应 Windows x86
  • Windows/amd64:对应 Windows amd64

支持协议

TCP & UDP

常见的TCP和UDP协议转发,也是用的比较多的一种!

HTTP & HTTPS

仅需要将网站转发到外网访问,可以使用这个。这样不会浪费端口。

STCP & SUDP

TCP 和 UDP 类型的服务提供一种安全访问的访问能力。避免让端口直接暴露在公网上导致任何人都能访问到。

XTCP

采用 P2P 的方式进行打洞穿透,如果能成功,后续的流量将不会经过 frps,而是直接通信,不再受到 frps 所在服务器的带宽限制。

TCPMUX

支持将单个端口收到的连接路由到不同的代理。有点和HTTP(S)相似。

部署步骤

目录说明

我们下载的源码基本上都包含3部分。

-rwxr-xr-x 1 1001 docker  9064448 Aug  3 23:22 frpc
-rw-r--r-- 1 1001 docker     9503 Aug  3 23:25 frpc_full.ini
-rw-r--r-- 1 1001 docker      126 Aug  3 23:25 frpc.ini
-rwxr-xr-x 1 1001 docker 12054528 Aug  3 23:22 frps
-rw-r--r-- 1 1001 docker     5010 Aug  3 23:25 frps_full.ini
-rw-r--r-- 1 1001 docker       26 Aug  3 23:25 frps.ini
-rw-r--r-- 1 1001 docker    11358 Aug  3 23:25 LICENSE
drwxr-xr-x 2 1001 docker       88 Aug  3 23:25 systemd

frpc 开头的为客户端运行

frps 开头的为服务端运行

systemd 为 systemctl 服务,维持 frps[c]在后台运行的

.ini 配置文件

配置文件

这里主要介绍简单配置,不介绍太复杂的内容。

服务端配置

主要是绑定的端口 13333,客户端必须链接到这个端口。

dashboard开头的配置是 frp提供的一个监控台,可选的。

token 就是密码了,越复杂越好。

vhost 虚拟主机,指定了80端口 和 443端口。

[common]
bind_port = 13333
dashboard_addr = 0.0.0.0
#dashboard_port = 13334          
#dashboard_user = admin          
#dashboard_pwd = dh147258369           
token =5#!Lxxxxx123131dddd
vhost_http_port = 80
vhost_https_port = 443

客户端配置

下面是我客户端的配置。

common 远程服务器的 IP 端口 TOKEN

TCP 用的比较多一些,比如SSH,MYSQL等

一般WEB站点 HTTP / HTTPS 就用的非常多了。

我没有将复杂的配置在这个配置文件完成,还大部分是在NGINX里面做了一下。

比如 SSL 证书,HTTP 跳转 HTTPS 等

[common]
server_addr = 124.xxx.xxx.xxx 
server_port = 13333
token = 5#!Lxxxxx123131dddd

[mysql]
type = tcp 
local_ip = 127.0.0.1
local_port = 3306
remote_port = 13306

[ssh-110]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 13322


[api-web-http]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = api.ruyo.net

[api-web-https]
type = https
local_ip = 127.0.0.1
local_port = 443 
custom_domains = api.ruyo.net


[tool-web-http]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = tool.ruyo.net

[tool-web-https]
type = https
local_ip = 127.0.0.1
local_port = 443
custom_domains = tool.ruyo.net

Server部署

1)从git上下载代码,依此执行一下代码即可

wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_386.tar.gz -O frp.tar.gz

tar -zxvf frp.tar.gz -C ./

mkdir /etc/frp

cp frp_0.37.1_linux_386/frps /usr/bin/frps

cp frp_0.37.1_linux_386/frps.ini /etc/frp/frps.ini

cp frp_0.37.1_linux_386/systemd/frps.service /usr/lib/systemd/system/frps.service

systemctl status frps.service 

systemctl start frps.service

CLIENT部署

wget https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_linux_386.tar.gz -O frp.tar.gz

tar -zxvf frp.tar.gz -C ./

mkdir /etc/frp

cp frp_0.37.1_linux_386/frpc /usr/bin/frpc

cp frp_0.37.1_linux_386/frpc.ini /etc/frp/frpc.ini

cp frp_0.37.1_linux_386/systemd/frpc.service /usr/lib/systemd/system/frps.service

systemctl status frpc.service 

systemctl start frpc.service

Windows

这里主要介绍Windows客户端如何部署。

直接下载最新版本frp

https://github.com/fatedier/frp/releases/download/v0.37.1/frp_0.37.1_windows_386.zip

解压后,修改配置文件

控制台直接输入:frpc.exe -c frpc.ini 即可启动!

后台运行

@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit

:begin
REM
frpc.exe -c frpc.ini

在frpc.exe目录新建一个文本文件,复制上面的内容保存。修改后缀名为 start-frpc.bat

双击即可运行!

开机启动

可以利用任务计划来运行!缺定不太稳定,如果开机不登陆账号,无法启动服务。

1)Win + R 组合快捷键,打开运行对话框,然后输入命令 taskschd.msc ,点击下方的“确定”打开服务,如下图所示。

2)新建任务计划

3)输入任务名称,按图勾选!

4)新建触发器,选择 启动时

5)新建操作,选择bat脚本。起始于 设置一下目录

6)保存的时候,验证一下登陆账号和密码

开机启动2

这里分享的是 @net.ee 大佬分享的CMD运行脚本,核心是利用nssm来维护 frp的进程后台守护运行,开机启动服务 等!

如果大家相对nssm 了解一下请移步:http://www.nssm.cc/

文件下载:大佬提供文件下载 / 分流下载地址(提取码:9197)

下载压缩包减压后,得到如图文件。

分别针对的是 32位系统,64位系统,XP系统。

根据自己的系统选择不同目录中文件复制里面到 frp的目录中即可!

双击运行即可!

亲测,体验非常棒!再也不用担心Windows系统自动重启导致连不上的问题了!

使用总结

1)密钥一定要设置并且要复杂一些。

2)内网机器A 能否启动FRP 转发 到内网机器B?  答案:不能,内网机器B需要安装客户端!

3)能*墙吗?答案:能,但是没有加密非常容易导致端口或者IP被Q。

4)如果使用比较敏感的端口比如:80,443,8080,8888,请保证你的域名有备案且接入(国外服务器不用担心这个问题)。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门