云服务器搭建frp服务(超详细)

初学、没有云服务器的时候总想着怎样才能让别人访问到自己的项目。

后来慢慢接触到了更多内网映射的渠道,如樱花frp、浮居frp等等,也充过会员,速度还行。

 

前段时间接触到了用私人云服务器搭建的frp服务,这激起了我的兴趣,经过一番琢磨最终搭建起来了,特此记录

WindowsLinux 通用,只是软件版本和命令稍有不同

 

开始前你得具备以下条件

云服务器 + 大陆境内已备案的域名 + 愿意琢磨(第一次会稍微有点绕,其实很简单)

 

1.下载对应云服务器版本的 frp(frps) 包 

 我的云服务器版本是 CetenOS 7,这里给出我用到的,其余系统百度下载

 frp_0.27.0_linux_amd64.tar 点击下载

 

2.把 frp 包上传到云服务器,放到自己习惯的目录下(也可解压后通过宝塔面板上传),如下图

 不会 传/解压 用就百度,新人用宝塔也方便

 

3.修改 frps.ini 配置文件

示例:

[common]
# frp服务端口
bind_port = 7000
# 用户连接时的url端口
vhost_http_port = 10000
# 主域名 通过此域名连接(也可用公网IP)
subdomain_host = test.com
dashboard_port = 7500
# 账户
dashboard_user = admin
# 密码
dashboard_pwd = admin123
max_pool_count = 10
# 日志文件位置及名字
log_file = ./frps.log
# 日志级别
log_level = info
# 日志最多记录天数
log_max_days = 3
# token 客户端token需要与此一致
token = testtoken

[web01]
# 如果值为http,则必须设置 vhost_http_port
type = http
# 如果代理类型等于http,则必须设置自定义_域,并用逗号分隔
# 例:custom_domains = web01.yourdomain.com,web01.yourdomain2.com
custom_domains = test.com

 

4.云服务端口放行

步骤3自定义配置好了后

放行frp服务端口(步骤三的 bind_port = 7000

放行自定义访问端口(步骤三的 vhost_http_port = 10000

  

5.添加域名解析

例如你的主域名是 test.com

这里添加解析名为 frp,记录值为云服务器的 公网IP

最终效果是 frp.test.com

 

6.启动frp服务

先切换到frp的根目录

再用命令 ./frps -c ./frps.ini 启动服务

(上面是相对路径,也可不切换路径,直接在启动命令中用绝对路径)

此种方式启动服务后不能关闭命令窗口,命令窗口关闭后服务也会关闭

挂后台方式参考 步骤13

  

7.  至此,云服务器端配置全部完成  

  只有最后几个步骤了

 

8.客户端下载 frpc 包(不是frps包)

 我的系统是 Win10,这里给出我用到的,其余系统百度下载

 frpc_0.29.0_windows_amd64 点击下载

 

 下载好 frpc 包后,将文件解压到C盘以外的其它盘(一般文件不建议放C盘)

 示例:在E盘根目录新建一个名为 frpc的文件夹,将frpc包解压在里面

 

9.配置 frpc.ini

windows下双击打开 frpc.ini

左侧是云服务器的frps配置,供对照

右侧是客户端的frpc配置,这才是我们要设置的地方

 

1.local_ip 是要映射服务所在的主机ip,如果和fprc在同一电脑可用127.0.0.1(一般都是),不是的话要用对应ip地址

2.local_port 是我们的服务端口,比如SpringBoot程序或者Tomcat的端口是8080就填8080

3.右侧自定义域名与 步骤5 的解析一致(配置文件第6行和第10行请保持一致,防止多客户端冲突)

  

10.万事俱备,检查一遍

1.至此配置都完成了,检查一遍以上步骤是否有遗漏或者错误配置

2.确保云服务器 frps 处于运行状态 (./frps -c ./frps.ini 执行后不能关闭命令界面,否则会停止服务。挂后台方式参考 步骤13

3.确保本地 frpc 处于启动状态,Windows下启动后cmd窗口不能关(Windows下双击.bat文件启动,不能直接点 frpc.exe)

4.确保要映射的端口处于运行状态(如映射Tomcat请确保Tomcat处于运行状态)

 

11.启动内网映射

在确保以上步骤无误后

以Windows为例,双击 frpc.bat 启动映射服务(Windows客户端挂后台方式参考百度

如下图,提示success且光标处于待定状态便是启动成功了

 

12.访问服务

此前配置如下(参考 步骤3 步骤9):

主域名:test.com

DNS域名解析值:frp

云服务器访问端口:10000

映射类型:tcp / http

 

合并起来就是:http://frp.test.com:10000

外网即可通过以上链接访问我们映射出来的服务

 

13.frps 服务挂后台运行

以 Linux 为例,在目录 /etc/systemd/system 下新建文件名为 frps.service 的文件(Windows参考百度)

说明: ExecStart = frps.exe所在的目录/frps -c frps.ini所在的目录/frps.ini

内容如下:

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/home/frp_0.27.0_linux_amd64/frps -c /home/frp_0.27.0_linux_amd64/frps.ini

[Install]
WantedBy=multi-user.target

文件新建好后用以下命令控制(Linux的客户端也是此命令,把 frps 改成 frpc 即可):

systemctl enable frps #设置开机启动
systemctl start frps #启动
systemctl stop frps #停止
systemctl status frps #状态

 

其它:多个客户端使用映射

我们只需要在 步骤五 给每个不同客户端添加一个解析值就可以了

如 frp, frp2, frp3

不同客户端的配置文件里对应解析域名分别填上frp, frp2, frp3

最终访问的url就是:

http://frp.test.com:10000

http://frp2.test.com:10000

http://frp3.test.com:10000

 

转载请附上原文链接

posted @ 2022-01-09 00:35  散人长情  阅读(8123)  评论(0编辑  收藏  举报