一勺大白
居家办公摸鱼程序猿...主修 PHP+Vue 的全栈!
记录一次Frp的部署流程
记录一次Frp的部署流程
发布时间:2024年10月27日 浏览量:4985

记录一次Frp的部署流程

写在前面

公司最近有需要用内网穿透技术对一些内网服务器进行测试或者监控的需求。

于是就在腾讯云开了一台小时计费的测试的服务器,在上面大致走了一遍部署流程。

走通了之后就销毁了服务器。

心想着过两天就在实际服务器部署。所以就没记笔记。

然而【过两天】就过了将近一个月的时间(1 月 8 号到今天 2 月 3 号。。。。。。)。

具体部署流程早忘了。今天又折腾了半天的时间。

终于把功能成功部署了。

这次还是记录一下。

免得以后如果再部署新的服务端,又忘了。

前期准备

首先 我是用的是 一台 Centos 作为服务端。 

下面有一台 家庭网络环境的 windows 作为 本次测试的内网服务器。  

Centos 服务器 需要 安装 Nginx , 除了基础的 80 端口 

还需要再额外开放一个其他端口  如  8848 

供 服务器 穿透入口使用。 

开放端口之后 

还需要指向一个域名 如  frp.xxx.com

供穿透出站使用

第一步 在官方的 github上下载对应的程序

Releases · fatedier/frp · GitHub



第二步 配置服务端

将下载好的 frp_0.53.2_linux_amd64 上传到 CentOS 服务器上

解压 (这里我把文件夹重命名为了  frp,并且直接给了 777 权限)

在 frp 文件夹中 新建 文件  frps.ini 

[common]
bind_port = 8848
vhost_http_port = 8081
token = 123456 
# 这里的 token 你可以改的复杂一点

在 /etc/systemd/system  中 新建文件  frps.service

[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target[Service]
Type=simple
# 下面输入 你实际的路径
ExecStart=/data/frp/frps -c /data/frp/frps.ini
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit[Install]
WantedBy=multi-user.target

使用命令行启动

systemctl start frps 开启
systemctl stop frps  停止
systemctl status frps  查看状态

如果你想对外的域名 使用的是 80 端口

还需要额外配置 nginx 伪静态

location ^~/  {
    proxy_pass  http://127.0.0.1:8081;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $host;
}

第三步 部署客户端

把下载好的 Windows 客户端解压 并且在 文件夹内新建文件 frpc.ini

[common]
server_addr = frp.xxx.com
server_port = 8848
token = 123456
[web]
type = http
local_ip = 127.0.0.1
local_port = 80
custom_domains = frp.xxx.com如果不是 多客户端 可以不用配置locations = /C123456

本地的 Nginx 添加 对应的域名

如果是多个客户端 还需要添加 路由( 如 C123456)伪静态

location ^~ /C123456/ {
    rewrite ^/C123456/(.*)$ /$1 break;
}

在客户端文件夹 打开 CMD 运行命令

frpc -c frpc.ini

现在 访问 frp.xxx.com/C123456 就可以使用内网穿透了。