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

利用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扩展软件包
关注我们
st-img 微信公众号
st-img 手机版