以前一直使用的是ngrok,但是由于配置总是失败,用了frp发现配置比ngrok要简单快多了。
如果一个方向老是错误,不如换个方向试试看,也许会是捷径呢~ (●’◡’●)
Linux 服务器
域名 [已备案]
Visual Studio Code
进入服务器
如果连接不成功,也可能是服务器22端口未开放,去购买服务器的平台进行开发22端口即可。
我这里连接的是root文件夹
新建frp文件夹
在文件夹下新建frps.ini文件
[common]
bind_port = 7000
vhost_http_port = 7001
token = [令牌]
subdomain_host = [二级域名][例:frp.linyisonger.cn]
dashboard_port = 7002
dashboard_user = [管理平台用户名]
dashboard_pwd = [管理平台密码]
enable_prometheus = true
在文件夹下新建docker-compose.yml文件
version: '3'
services:
frps:
container_name: docker_frps
image: snowdreamtech/frps
network_mode: "host"
volumes:
- ./frps.ini:/etc/frp/frps.ini
restart: always
在文件下执行
docker-compose up --force-recreate --build -d
配置nginx
内网ip:可以通过 ip addr
获取
server {
listen 80;
server_name frp.linyisonger.cn;
location / {
proxy_pass http://[内网ip]:7002;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
server {
listen 80;
server_name *.frp.linyisonger.cn;
location / {
proxy_pass http://[内网ip]:7001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
连接不成功可能7000/7001端口未开放
https://github.com/fatedier/frp/releases 下载对应版本,我这里是win系统,以win为例。
目录结构如图
编辑frpc.ini文件
[common]
server_addr = [服务器IP或域名][例linyisonger.cn]
server_port = 7000
token = [令牌][需与服务器端一致]
[aaa]
type = http
local_ip = localhost
local_port = 8080
subdomain = c
remote_port = 7001
启动客户端
.\frpc -c frpc.ini
日志
PS C:\Users\ASUS\Desktop\frp_linyisonger> .\frpc -c frpc.ini
2022/03/18 09:46:14 [I] [service.go:327] [cee1faf63cd66d2c] login to server success, get run id [cee1faf63cd66d2c], server udp port [0]
2022/03/18 09:46:14 [I] [proxy_manager.go:144] [cee1faf63cd66d2c] proxy added: [aaa]
2022/03/18 09:46:14 [I] [control.go:181] [cee1faf63cd66d2c] [aaa] start proxy success
本地起一个前端项目端口为8080,通过http://c.frp.linyisonger.cn即可访问。
以阿里云为例
记录值写上对应的服务器公网IP即可。
参考
https://www.jianshu.com/p/c0d7cb4cb00f
https://www.itcoder.tech/posts/docker-frp/