大厂云做活动经常需要1H1G1M带宽,机器性能有限。如果web业务稍微大点,连Mysql都可能跑不起来。我们可以使用frp做内网穿透,在家里的电脑上访问web服务。至少家用电脑是真实事物的物理核心。带宽也可以得到充分利用。使用frp穿透内网访问你家网站frp执行内网穿透访问你家网站服务器端配置服务器端配置,参考上一篇文章:【教你使用FRP做内网穿透及使用远程桌面连接你家的windows电脑】参考上一篇文章,在上一篇文章的基础上增加一个“vhost_http_port”参数,用于接收HTTP请求。服务器端的防火墙或者宝塔面板允许frp使用的端口。需要额外注意。这里演示的服务器端,我使用nginx监听80端口,将域名的访问转发到frps使用的8080端口。当然也可以直接让frps使用80端口。[common]bind_addr=0.0.0.0bind_port=7000vhost_http_port=8080token=12310086dashboard_port=7500dashboard_user=admindashboard_pwd=admin123使用frps执行修改后的文件./frps-cfrps.ini内网提供Web服务机器设置内网提供Web端机器设置如下[common]server_addr=服务器IPserver_port=7000token=12310086[http]#连接名可以随意设置,看名字和含义就可以说明“use_encryption”是否启用加密,我这里选择不开启,可以根据情况开启。“use_compression”是否压缩数据,压缩后的传输速度会更快,快多少自己测试。"custom_domains"为绑定的访问域名,必须设置,不设置则无法启动frpc。./frpc-cfrpc.ini当frpc连接到frps时,frps端会有反馈,在面板上可以看到一个新的连接。然后把绑定的域名解析到服务器端的ip,就可以使用域名访问内网的机器了。访问时,frps会有连接提示。如果没有启动frpc,会报如下错误。访问控制如果想加一层访问控制,在frpc.ini对应的http服务配置中添加“http_user”和“http_pwd”参数:http_user=adminhttp_pwd=admin[common]server_addr=serverIPserver_port=7000token=12310086[http]#连接名可以随意设置,看名字就知道你想要什么。type=httplocal_ip=127.0.0.1local_port=80use_encryption=falseuse_compression=truehttp_user=adminhttp_pwd=admincustom_domains=frp.xxxx.cn#你的域名执行进程在内网网站的80端口运行。内网端的frpc读取配置,将内网机器的80端口转发到服务器端的8080端口。服务器端使用nginx监听80端口,将来自域名的访问请求转发到frps监听的8080端口。服务器端的8080端口将请求转发到内网的80端口。如此反复横向跳转,实现了通过外网访问内网的web服务。注意虽然服务器端的frps监听转发的是8080端口,但是直接访问公网IP:8080是无效的。如果同一个内网服务需要绑定多个域名,“custom_domains”英文“,”加上其他域名。https证书在服务器端的nginx上配置,也可以在内网使用frp插件配置其他的。如果frp反代网站全程只需要一个域名,不同的服务对应不同的二级域名,在frps中添加一个“subdomain_host”参数,该参数填写不带前缀的域名作为value,在frpc中增加一个“subdomain”参数,参数值只填域名前缀,比如我们要访问frp.example.com和tomcat.example.com,这两个域名都解析到公网服务器。admin123subdomain_host=example.comfrpc.ini[common]server_addr=103.255.61.100server_port=7000token=12310086[http]type=httplocal_ip=127.0.0.1local_port=80use_encryption=falseuse_compression=truesubdomain0local=frp[tomecat=127.httplocal_ip=falsecryption=8080usetruesubdomain=tomcat本文转载自微信公众号《Linux就该这么学》,可以通过以下二维码关注。转载本文,请联系Linux像这样学习公众号。
