以前一直使用的是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
-
进入服务器管理面板http连接中则会增加一条记录
-
本地起一个前端项目端口为8080,通过http://c.frp.linyisonger.cn即可访问。
拓展知识点
泛域名配置
以阿里云为例
记录值写上对应的服务器公网IP即可。
参考
https://www.jianshu.com/p/c0d7cb4cb00f
https://www.itcoder.tech/posts/docker-frp/