你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

利用frp做内网穿透去访问家用电脑上的web服务

[复制链接]
gaosmile 发布时间:2020-10-30 18:37
大厂云做活动经常是1H 1G 1M的带宽,机器性能有限,如果web业务稍微大一些,可能连Mysql都跑不动。我们可以利用frp做内网穿透去访问家用电脑上的web服务。至少家用电脑是真材实料的物理核心。也可以充分利用带宽。

微信图片_20201030182441.png


服务器端配置


参考之前的文章,在之前文章的基础上再加一个"vhost_http_port"参数,用于接收 HTTP 请求。服务器端的防火墙或者宝塔面板之类的,放行frp用到的端口。需要额外注意,这里的演示的服务器端我用nginx监听了80端口,把来自域名的访问转发到frps使用的8080端口。当然你也可以直接让frps使用80端口。

[common]
bind_addr=0.0.0.0
bind_port = 7000
vhost_http_port = 8080

token=12310086
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin123
<以上代码可复制粘贴,可往左滑>用 frps执行修改的文件./frps -c frps.ini
<以上代码可复制粘贴,可往左滑>

微信图片_20201030182445.png


内网提供Web服务的机器设置

内网提供Web端机器设置如下[common]
server_addr = 服务器IP
server_port = 7000
token=12310086

[http]#连接名称随意设置,见名知意即可
type = http
local_ip = 127.0.0.1
local_port = 80
use_encryption = false
use_compression = true
custom_domains = frp.xxxx.cn #你的域名
<以上代码可复制粘贴,可往左滑>

说明


"use_encryption"是否启用加密,我这里选择不启用,可以根据情况启用。
"use_compression"是否压缩数据,压缩了传输速度会快那么一些,自行测试快多少。
"custom_domains"是绑定的访问域名,必须设置,不设置无法启动frpc。
./frpc -c frpc.ini
<以上代码可复制粘贴,可往左滑>

微信图片_20201030182448.png

当frpc连上frps时候,在frps端会有反馈,面板里也能看到有一个新连接。

微信图片_20201030182452.png
微信图片_20201030182457.png
然后把绑定的域名解析到服务器端的ip上,就可以用域名访问到内网的机器了。访问时候frps会有连接提示。

微信图片_20201030182501.png
微信图片_20201030182504.png

如果frpc没有启动会报下面错误。

微信图片_20201030182508.png


访问控制

如果希望加上一层访问控制,在frpc.ini对应的http服务配置中加上"http_user"和“http_pwd”参数:http_user = admin
http_pwd = admin
<以上代码可复制粘贴,可往左滑>[common]
server_addr = 服务器IP
server_port = 7000
token=12310086

[http]#连接名称随意设置,见名知意即可
type = http
local_ip = 127.0.0.1
local_port = 80
use_encryption = false
use_compression = true
http_user = admin
http_pwd = admin
custom_domains = frp.xxxx.cn #你的域名
<以上代码可复制粘贴,可往左滑>

微信图片_20201030182511.png


执行流程


  • 内网端的80端口运行着网站。
  • 内网端的frpc读取配置,把内网机器的80端口转发到服务器端的8080端口。
  • 在服务器端用nginx监听了80端口,把来自域名的访问请求转发到frps监听的8080端口。
  • 服务器端的8080端口又把请求转发到内网的80端口上。
  • 就这样反复横跳,实现了通过外网访问内网的web服务。


注意事项


  • 尽管服务器端的frps在监听转发8080端口,直接访问公网IP:8080无效。
  • 如果同一个内网服务需要绑定多个域名,"custom_domains" 用英文","加其他域名。
  • https证书在服务器端的nginx上配置,也可以使用frp插件在内网端配置


其  他


如果frp反代网站全程只需要一个域名,不同的服务对应不同的二级域名,frps加一个"subdomain_host"参数,参数值填没有前缀的域名,frpc加一个"subdomain"参数,参数值只填域名前缀。,比如我们要访问frp.example.com和tomcat.example.com,两个域名都解析到公网服务器上

frps.ini


[common]
bind_addr=0.0.0.0
bind_port = 7000
vhost_http_port = 8080
token=12310086
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin123
subdomain_host= example.com
<以上代码可复制粘贴,可往左滑>


frpc.ini


[common]
server_addr = 103.255.61.100
server_port = 7000
token=12310086

[http]
type = http
local_ip = 127.0.0.1
local_port = 80
use_encryption = false
use_compression = true
subdomain = frp

[tomecat]
type = http
local_ip = 127.0.0.1
local_port = 8080
use_encryption = false
use_compression = true
subdomain = tomcat


收藏 2 评论0 发布时间:2020-10-30 18:37

举报

0个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版