概述
最近在做微信小程序开发,回调url必须外网可以访问,用了ngrok的免费套餐,有时不太稳定且网速感人,想着手头好几台服务器,不如自己搭建不是更好吗。
环境
服务器:Centos 7.5
本机:Windows 10
日期:2021-1-2
版本均是当前时间最新版
步骤
- 安装golang
因为frp是基于go语言开发的,所以我们需要在服务器和本机都安装对应的golang
打开golang官网:https://golang.org/doc/install ,下载对应的版本
- Centos安装
wget https://golang.org/dl/go1.15.6.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.15.6.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
go version
输出版本信息即表示安装成功
- Windows直接下一步下一步安装即可
- 下载frp
GitHub地址:https://github.com/fatedier/frp/releases ,下载对应内核的版本
- Centos
如果不清楚自己的服务器是什么内核的,可以在服务器里输入 go version
,会输出版本信息,例如: go version go1.15.6 linux/amd64
然后下载对应的即可
我这里是amd64的所以下载frp_0.34.3_linux_amd64.tar.gz
wget https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_linux_amd64.tar.gz
tar -C /usr/local -xzf frp_0.34.3_linux_amd64.tar.gz
cd /usr/local
ll
- Windows
直接用浏览器下载 https://github.com/fatedier/frp/releases/download/v0.34.3/frp_0.34.3_windows_amd64.zip
网速慢问题,可使用油猴插件,https://github.com/RC1844/FastGithub
- 配置并启动
Centos操作:
- 进入frp目录
cd /usr/local
vi frps.ini
- 修改 frps.ini 文件,设置监听 HTTP 请求端口为 80:
[common]
# tunnel port通信管道
bind_port = 7000
# http和https
vhost_http_port = 80
vhost_https_port = 443
# 子域名
subdomain_host = xxx.code016.com
# token
token = 12345678ab
# dashboard图形管理页面
dashboard_port = 81
dashboard_user = admin
dashboard_pwd = admin888
# ---设置完成----
- 启动frps
./frps -c frps.ini
看到输出
new proxy [web] success
即表示成功
- 浏览器输入ip:81,可以看到图形化的frp设置
Windows操作:
修改 frpc.ini 文件,假设 frps 所在的服务器的 IP 为 x.x.x.x,
local_port
为本地机器上 Web 服务监听的端口, 绑定自定义域名为custom_domains
。[common] server_addr = x.x.x.x server_port = 7000 # token要跟服务器的一样 token = 12345678ab [web] # 协议为http(即80端口) type = http # 内部映射的IP local_ip = 127.0.0.1 # 内部映射为8080端口 local_port = 8080 # 域名地址 custom_domains = xxx.code016.com
- 启动frpc。
在frp目录下打开cmd,输入
frpc.exe -c frpc.ini
看到输出
[web] start proxy success
即表示成功
域名解析
登录自己的域名平台,我的是在腾讯云购买的,添加A记录解析,记录值填自己服务器地址
可选:将frps设置为服务
vi /etc/systemd/system/frps.service
- 填写下面配置,路径要注意是否正确
[Unit]
Description=frps
After=network.target
[Service]
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
[Install]
WantedBy=multi-user.target
- 命令
# 启动
systemctl start frps.service
# 关闭
systemctl stop frps.service
# 查看启动状态
systemctl status frps.service
# 开机自启
systemctl enable frps.service
测试
通过浏览器访问 http://xxx.code016.com
即可访问到处于内网机器上 8080 端口的服务