社区编辑申请
注册/登录
Frp做内网穿透访问家里的Web网站
安全 应用安全
大厂云做活动经常是1H 1G 1M的带宽,机器性能有限,如果web业务稍微大一些,可能连Mysql都跑不动。我们可以利用frp做内网穿透去访问家用电脑上的web服务。至少家用电脑是真材实料的物理核心。也可以充分利用带宽。

 

大厂云做活动经常是1H 1G 1M的带宽,机器性能有限,如果web业务稍微大一些,可能连Mysql都跑不动。我们可以利用frp做内网穿透去访问家用电脑上的web服务。至少家用电脑是真材实料的物理核心。也可以充分利用带宽。

frp做内网穿透访问家里的Web网站frp做内网穿透访问家里的Web网站

服务器端配置

服务器端的配置,参考之前的文章:【教你用FRP做内网穿透 使用远程桌面连接家里的windows电脑】

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

  1. [common] 
  2. bind_addr=0.0.0.0 
  3. bind_port = 7000 
  4. vhost_http_port = 8080 
  5.  
  6. token=12310086 
  7. dashboard_port = 7500 
  8. dashboard_user = admin 
  9. dashboard_pwd = admin123 

用 frps执行修改的文件

  1. ./frps -c frps.ini 

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

内网提供Web端机器设置如下

  1. [common] 
  2. server_addr = 服务器IP 
  3. server_port = 7000 
  4. token=12310086 
  5.  
  6. [http]#连接名称随意设置,见名知意即可 
  7. type = http 
  8. local_ip = 127.0.0.1 
  9. local_port = 80 
  10. use_encryption = false 
  11. use_compression = true 
  12. custom_domains = frp.xxxx.cn #你的域名 

说明

"use_encryption"是否启用加密,我这里选择不启用,可以根据情况启用。

"use_compression"是否压缩数据,压缩了传输速度会快那么一些,自行测试快多少。

"custom_domains"是绑定的访问域名,必须设置,不设置无法启动frpc。

  1. ./frpc -c frpc.ini 

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

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

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

访问控制

如果希望加上一层访问控制,在frpc.ini对应的http服务配置中加上"http_user"和“http_pwd”参数:

  1. http_user = admin 
  2. http_pwd = admin 
  1. [common] 
  2. server_addr = 服务器IP 
  3. server_port = 7000 
  4. token=12310086 
  5.  
  6. [http]#连接名称随意设置,见名知意即可 
  7. type = http 
  8. local_ip = 127.0.0.1 
  9. local_port = 80 
  10. use_encryption = false 
  11. use_compression = true 
  12. http_user = admin 
  13. http_pwd = admin 
  14. custom_domains = frp.xxxx.cn #你的域名 

执行流程

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

注意事项

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

其 他

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

frps.ini

  1. [common] 
  2. bind_addr=0.0.0.0 
  3. bind_port = 7000 
  4. vhost_http_port = 8080 
  5. token=12310086 
  6. dashboard_port = 7500 
  7. dashboard_user = admin 
  8. dashboard_pwd = admin123 
  9. subdomain_host= example.com 

frpc.ini

  1. [common] 
  2. server_addr = 103.255.61.100 
  3. server_port = 7000 
  4. token=12310086 
  5.  
  6. [http] 
  7. type = http 
  8. local_ip = 127.0.0.1 
  9. local_port = 80 
  10. use_encryption = false 
  11. use_compression = true 
  12. subdomain = frp 
  13.  
  14. [tomecat] 
  15. type = http 
  16. local_ip = 127.0.0.1 
  17. local_port = 8080 
  18. use_encryption = false 
  19. use_compression = true 
  20. subdomain = tomcat 

本文转载自微信公众号「Linux就该这么学」,可以通过以下二维码关注。转载本文请联系Linux就该这么学公众号。

 

责任编辑:武晓燕 来源: Linux就该这么学
相关推荐

2022-04-13 18:40:59

Python开发

2022-05-16 13:37:12

Sysrv僵尸网络微软

2022-05-03 22:25:57

Python浏览器语言

2022-05-20 14:08:13

Web3元宇宙区块链

2022-04-14 10:10:59

Nginx开源Linux

2022-05-20 16:50:33

区块链Web3加密资产

2022-05-26 11:37:58

亚马逊云科技C7g实例

2022-05-06 20:18:36

2022-05-17 08:39:05

VueViteTypeScript

2022-04-28 15:38:42

WebViewJavaUI

2022-04-30 08:43:52

Spring模块化框架

2022-04-29 08:00:36

web3区块链比特币

2022-04-13 08:00:00

Hilla开发Java

2022-01-17 07:22:11

Web应用渗透

2022-05-19 14:57:30

CSS代码工具

2022-05-07 07:26:05

PyScriptHTMLPython 代码

2022-04-28 09:46:20

Nginx文件Linux

2022-04-27 10:53:34

web优化性能

2022-05-15 22:21:33

WiFi热点无效WiFiWindows 11

2022-04-13 08:20:32

DockerGo项目

同话题下的热门内容

俄罗斯最大银行遭到DDoS攻击多集群Kubernetes管理和访问XDR注定会失败吗?浅谈网络安全服务化转型的底层逻辑与挑战新报告指出美国政府缺乏关于勒索软件攻击的全面数据代码安全:从响应式安全转向主动式安全请注意,PDF正在传播恶意软件

编辑推荐

权威解读 | 网络安全等级保护2.0标准体系以及主要标准百亿级访问量的实时监控系统如何实现?浅谈反浏览器指纹追踪符号执行:利用Angr进行简单CTF逆向分析拿什么拯救你,我的网络安全
我收藏的内容
点赞
收藏

51CTO技术栈公众号