参考:
利用frp 穿透到内网的http/https网站,实现对外开放(这篇博客有点老,需要改动,不能照抄):https://www.cnblogs.com/hahaha111122222/p/8509150.html
frp内网穿透(windows和服务器):https://blog.csdn.net/u012578214/article/details/125603023
软件下载地址:https://github.com/fatedier/frp/releases
frps.ini服务端配置
#服务端配置
[common]
bind_addr = 0.0.0.0
bind_port = 7000
# 服务器端监听http请求的端口。如访问http://123.222.111.132:8088/pri/gis/getlocation 等于访问 http://localhost:8089/pri/gis/getlocation
vhost_http_port = 8089
privilege_token=12345678# 服务端启动
nohup ./frps -c frps.ini > log.txt 2>&1 &下图是查找服务端口,然后 用 kill 1123456 来关闭服务,之后用 nohup ./frps -c frps.ini > log.txt 2>&1 & 重新启动服务端
- bind_addr: 指定FRP服务器监听的地址。0.0.0.0表示监听所有网络接口,即可以从任何网络接口接收连接。
- bind_port: 指定FRP服务器监听的端口。这里是7000,意味着FRP服务器会在该端口等待来自客户端的连接。
- vhost_http_port: 服务器端监听http请求的端口
- privilege_token: 这是一个用于身份验证的令牌,确保只有知道这个令牌的客户端能够连接到服务器。它提高了安全性,防止未经授权的访问。
frpc.ini客户端配置
[common]
server_addr = 123.222.111.132
server_port = 7000
privilege_token = 12345678[web]
type = http
# 要代理的本地服务的端口。如访问http://123.222.111.132:8088/pri/gis/getlocation 等于访问 http://localhost:8089/pri/gis/getlocation
local_port = 8089
# 这个配置好像没用 local_ip = 127.0.0.1
custom_domains = 123.222.111.132
#remote_port = 6000
- server_addr: 指定FRP服务器的IP地址或域名。这是客户端用来连接服务器的地址。
- server_port: 客户端尝试连接到FRP服务器的端口。需要与服务端配置的bind_port相匹配。
- privilege_token: 同样是用于身份验证的令牌,必须和服务端设置的一致。- type = http: 表明这是一个HTTP类型的隧道,适用于Web服务
- local_ip 和 local_port: 指定了要代理的本地服务的位置。在这个例子中,它指向了运行在127.0.0.1:8089上的服务。
- custom_domains: 这个字段应该包含一个或多个域名,这些域名将会被解析到FRP服务器的公网IP,并且当请求到达时会被路由到此隧道关联的服务。但是,不应该设置为IP地址。
- remote_port: 如果你没有域名并且希望通过IP直接访问,则可以取消注释这一行并指定一个远程端口。这允许你通过http://<公网IP>:<remote_port>的形式访问你的服务。
通过这样的配置,你可以从互联网上的任意位置通过FRP服务器访问位于私有网络内部的SSH服务
客户端命令行启动
测试访问windows本地接口:http://123.222.111.132:8088/pri/gis/getlocation
frpc.ini客户端配置 local_port 改为 5173 后,重启windows上的frpc.exe 后,可以通过 http://123.222.111.132:8088/#/gis 访问本地vscode启动的前端页面