当前位置:首页 > CN2资讯 > 正文内容

frp和nginx区别 nginx frp 对比

1天前CN2资讯

 


背景

由于平时公司开发和测试的机器全部都是在公司的内网环境,最近前端团队说他们的VPN经常连接不上,希望能通过公网访问到后端的接口,并且做一些案例演示的时候,也可以直接连接到测试机器上面,这样更加方便一些。于是就有了这么一个需求,需要打通内外网。

方案一、VPN

本人就在阿里云租了一台VPS,最开始是打算使用ppp连接到公司的VPN服务器,这样VPS和内网就打通了,但是一切就绪之后,开始拨号,发现连上了,使用ps -lef | greo ppp也发现了ppp的进程,日志也没报错,欣喜!但是好事总是多磨难,就在用ifconfig查看ip信息的时候,发现ppp对应的竟然是我VPS在阿里的内网地址(PS:内网网关为192.168.1.1),并没有给我分配192.168.1.x这样的ip,使用ping去ping内网的机器也不通,几经折腾之后,发现此路并不容易行得通。

就在我打算放弃使用之后,想到还有一台windows的服务器,那个可以连接上vpn,于是就使用那台机器做了一个常识,当连接上VPN之后,悲剧发生了,远程桌面连接断开了,在本机ping这台服务器的公网ip,无果,于是猜测可能是因为VPN的原因导致公网ip不起作用了……

方案二、内网穿透

goproxy

最开始我是使用goproxy来测试内网穿透,当一切就绪后,其实是可以连上的,不过访问的速度不是很好,不懂是不是我配置不恰当,这里就不展开了,下面说一下frp。

frp

frp这个也是使用go语言编写的内网穿透工具,配置起来比较简单,在linux下,只需要下载对应的发行包解压后,修改下配置文件启动即可,这里也不说关于怎么安装了。

下面记录下frp使用过程中遇到的一些"坑"。其实在我看来,对于第一次接触这个软件的人来说,比较坑的地方在于frpc.ini的custom_domains这个配置项,最开始是配置了一个域名,然后使用这个域名frps配置的http端口进行访问是可以访问到内网的,不过换成了ip之后就访问不通了,直接跳转到frp提供的一个html页面。这让我百思不得其解啊。再后来觉得域名加端口号这种方式实在是不雅,就想到了配置子域名的形式进行访问。

以万网的域名为例,添加一个子域名,如test,选择A记录,地址解析到VPS的公网ip,这个时候通过在vps上配置nginx反向代理到frps监听的那个http端口,理论上就可以接收到通过二级域名访问过来的请求了。但是呢?并不得,直接返回404了,其根本的原因就是上面说到的custom_domains,在跟踪了从浏览器发起的请求,请求头的Host是子域名,但是frpc.ini的custom_domains配置的是主域名,怀疑是请求已经通过链路发送到了内网,但是内网的frpc获取请求头中的Host跟配置文件中的进行比较,发现不一致时,则认为404,抱着这个猜想,修改了frpc.ini的配置,将custom_domains修改为了二级域名,然后重启frpc,重新访问,这个时候请求就通了。所以,这个配置项一定是跟访问的域名/Ip要一致,如果不一致,也可以通过nginx的proxy_set_header Host设置成和custom_domains一样的,不过个人不建议这样做。

关于内网机器,我是通过内网一台机器跟frps进行通信,然后将http请求都转发给监听80端口的nginx来处理,在nginx里面,根据配置的location 反向代理到其他内网机器的tomcat或者别的servlet容器,需要注意一下,如果location不是直接配置/的话,需要加rewrite把前缀给替换掉,否则可能会请求不到。

以上就是本人的这次尝试的一个总结,后续有什么新的发现继续补充……希望给有需要的朋友提供点参考,如果有什么理解不到位的地方,也请大家多多指出!


 

    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/19087.html

    分享给朋友:

    “frp和nginx区别 nginx frp 对比” 的相关文章

    Amazon Lightsail Free Tier 全面解析:如何免费体验并最大化利用 AWS 入门服务

    Amazon Lightsail 的免费层(Free Tier)为新用户提供了一个绝佳的机会,可以在不产生额外费用的情况下体验其服务。这个免费试用期不仅让用户能够熟悉 Lightsail 的功能,还能为后续的使用打下基础。下面我们将从免费试用时长、资源限制、套餐内容以及超出免费套餐的计费方式等方面,...

    全面提升VPS性能测试与优化方法指南

    VPS性能测试概述 在使用VPS的过程中,了解它的性能测试显得尤为重要。VPS性能测试是一种评估虚拟专用服务器性能的手段,可以帮助我们清晰地了解VPS的状态与能力。这项测试不仅关注CPU型号、内存大小等硬件配置,还涵盖了磁盘存储量、操作系统版本以及虚拟化程序等多个方面的检测。通过这些参数,我们能对V...

    2023年最佳VPS服务商排名与推荐

    在数字化时代,VPS(虚拟专用服务器)成为了很多企业和开发者青睐的主机解决方案。简单来说,VPS是将一台物理服务器划分成多个虚拟服务器,每个虚拟服务器都能够独立运行它自己的操作系统和应用。这样的设计不仅提升了资源利用率,还为用户提供了更高的灵活性与控制权,尤其适合需要稳定性能的中小型企业和开发者。...

    解决BestTrace中的timestamp is error问题及优化网络性能指南

    BestTrace是一款强大的网络诊断工具,广泛用于追踪数据包从源头到目标的网络路径。它的工作原理结合了traceroute和ping的功能,让用户不仅能够查看每一跳的延迟,还能监测到丢包情况。这意味着,你在使用BestTrace时,能够获得关于网络连接质量的详细信息,及时发现潜在的问题。 在我实际...

    水牛VPS:高性能虚拟专用服务器的最佳选择与比较

    水牛城VPS,顾名思义,是在美国纽约州布法罗市托管的虚拟专用服务器。这种服务器因其独特的地理位置和优越的技术配置,吸引了众多用户,特别是需要高性能和灵活性的网站和应用程序。这类服务的定义非常简单,但其特点却非常丰富。通常来说,水牛城VPS提供了良好的网络带宽、灵活的存储选项,以及能够根据用户需求进行...

    Zenlayer如何优化企业全球网络连接与数字化转型

    在当今数字化时代,企业对全球网络连接的需求呈现出爆炸式增长。Zenlayer作为一家基于SDN的全球网络及服务提供商,恰如其分地填补了这一市场空白。总部位于洛杉矶的Zenlayer,不仅连接着企业和用户与云端,还通过其高度灵活的裸机云、云连接以及边缘计算服务,帮助企业迅速部署和管理全球IT资源。我认...