人生若只如初见

WXY

frp安装和使用并结合nginx配置域名https访问

2024-11-20

前言

在开发过程中,我们常常需要将本地开发的服务或者内网应用暴露到公网进行测试或使用。FRP (Fast Reverse Proxy) 是一款高效的内网穿透工具,可以帮助你将内网服务暴露到外部网络。而 Nginx 作为一个高性能的 Web 服务器和反向代理服务器,通常用于处理 HTTP/HTTPS 请求。在本文中,我们将介绍如何安装和使用 FRP,并结合 Nginx 配置域名和 HTTPS 访问,从而实现安全的内网穿透和远程访问。

一、FRP 简介

FRP 是一个支持反向代理的内网穿透工具,通过它,你可以将位于内网的服务暴露到公网。FRP 由两部分组成:服务端(frps)和客户端(frpc)。frps 运行在公网服务器上,负责接收来自客户端的连接并转发到本地的内网服务,而 frpc 则运行在内网设备上,负责将本地服务映射到 FRP 服务器上。

FRP 支持多种协议,包括 HTTP、HTTPS、TCP、UDP 等,因此它在各种场景下都非常实用。

二、安装 FRP

本文教程采用systemd方式来管理frps 先放上frp官方文档:https://gofrp.org/zh-cn/docs/setup/systemd/

安装 FRP 服务器端(frps)

1.链接到服务器终端,执行命令 sudo su 切换为root用户,可避免一些权限引起的问题

2024-11-20-hcifladi.webp

2.在github选择frp版本 和自己服务器对应的架构 下载对应的frp包

我这里下载linux-amd64位,目前最新版本是0.61.0

2024-11-20-kgqwwahb.webp

wget https://github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz


# 如国内机器访问GitHub网络不通畅 可使用下面命令  github代理服务:https://gh-proxy.com/
wget https://gh-proxy.com/github.com/fatedier/frp/releases/download/v0.61.0/frp_0.61.0_linux_amd64.tar.gz

3.解压并修改配置文件

我这里选择把frps 可执行命令放到 /usr/local/bin 目录下。frps.toml 配置文件放到 /etc/frps/目录下

# 解压缩
tar -zxvf frp_0.61.0_linux_amd64.tar.gz 

# 复制可执行目录frps 到/usr/local/bin目录下
cp frp_0.61.0_linux_amd64/frps /usr/local/bin/

#赋予frps 可执行权限
chmod +x /usr/local/bin/frps

# 新建一个存在配置文件的目录
mkdir /etc/frps

# 把配置文件复制到/etc/frps/目录下
cp frp_0.61.0_linux_amd64/frps.toml  /etc/frps/

修改frps.toml配置文件内容

# vim 和nano 编辑器二选一即可  

vim  /etc/frps/frps.toml

nano /etc/frps/frps.toml

把下面内容粘贴进配置文件并保存

frps.toml

# frps绑定端口 (必选)
bindPort = 7000
# frp 穿透访问内网中的网站监听端口 配合后面使用nginx做域名绑定访问
vhostHTTPPort = 7001
# frps 日志 (可选)
log.to =  "/logs/frps.log"
# frps 日志等级 (可选)
log.level =  "info"
# frps 日志存放天数 (可选)
log.maxDays = 15


# 验证
auth.method = "token"
auth.token = "123321"

2024-11-20-cefgljyc.webp

此处bingdPort端口7000 记得防火墙放行哦

2024-11-20-gegwdjps.webp

4.配置 systemd 守护进程 并开启开机自启

创建 frps.service 文件

使用文本编辑器 在 /etc/systemd/system 目录下创建一个 frps.service 文件,用于配置 frps 服务。

# 二选一
vim /etc/systemd/system/frps.service

nano etc/systemd/system/frps.service

粘贴下面内容 保存并退出

frps.service

[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径,即上面第3步的路径
ExecStart = /usr/local/bin/frps -c /etc/frps/frps.toml

[Install]
WantedBy = multi-user.target

使用 systemd 命令管理 frps 服务

# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps

2024-11-20-ugcmlslk.webp

配置nginx

我这里教程使用是1panel面板,感谢小张 提供的1panel面板来做本教程使用

1.新增网站,注意不要忘记解析域名

2024-11-20-ddsonxkg.webp

2024-11-20-impstkzj.webp

2.申请ssl,配置https访问

2024-11-20-yuygmqei.webp

2024-11-20-fsnejlbj.webp

到此服务端已经配置完成。 如果你使用的不是1panel面板,那么使用nginx配置即可, 面板最终操作还是会生成nginx.conf配置文件。

windows 客户端使用

下载frpc 客户端,github提供的压缩包里面同时包含frps服务端 和frpc客户端了

2024-11-20-znmwutid.webp

解压后修改frpc.toml配置文件, 记得修改为自己的内容

frpc.toml

serverAddr = "111.111.111.111"
serverPort = 7000
auth.method = "token"
auth.token = "123321"

[[proxies]]
name = "test"
type = "http"
localIP = "127.0.0.1"
localPort = 8082
customDomains = ["test.frp.xxx.com"]

2024-11-20-uiahcdyk.webp

启动frpc 成功后访问域名

2024-11-20-dxpmryqy.webp

到此教程就结束了

如果windows客户端需要开机自启frpc可参考另一篇文章: https://www.wxy97.com/archives/39