扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
cpolar是一种安全的内网穿透云服务,它将内网下的本地服务器通过安全隧道暴露至公网,使得公网用户可以正常访问内网服务。
创新互联公司长期为千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为诸城企业提供专业的网站建设、成都做网站,诸城网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。
在您的机器上下载并运行cpolar客户端,并为其提供一个本地的网络服务的端口号,通常是您本地的Web 服务器端口号,例如 8080端口。
终端输入:
2. 连接您的服务
3. 从任何地方访问
标签(空格分隔): 开发工具 前端
[toc]
前端开发,有时候需要给外网的测试人员浏览,此时若没有专门的测试服务器,那么使用内网穿透就是最简便通用的方式了。一个常见的选择就是 ngrok 。 也有 frp
ngrok官网
本地客户端跑起,搭建内网端口隧道给外网服务器,用户访问外网服务器对应地址,自动映射到本地对应地址。
这个方案很简单,也很慢,超慢,无法忍受的慢。
官网教程参看
从零搭建参看,
已经写好的搭建脚本,参看
如果脚本安装失败,可能是有些依赖没有,例如 apt-get
如果脚本失败,可能是依赖没装好,一般就是 go 没装,试下下面
安装 go
如果没有 apt-get yum,使用下面
按教程的做法是这样的
开启服务后,服务端报错 Failed to read message: remote error: bad certificate , 客户端端报错 x509: cannot validate certificate for xx.xx.xx.xx because it doesn't contain any IP SANs
搜索客户端报错,按 此文解决 ,在最后一句生成证书的命令前加上以下命令,就解决了
ngrok 客户端会自动生成一个随机子域名或者用户自定义一个,总之无论如何都会有一个域名,这就会导致 ip 域名无效, 例如 - localhost:80 , 解决办法就是改源码,去掉随机生成的 subdomain
删掉 %x. rand.Int31() , 以及该文件第一行引入的 math/rand ,重新编译出服务端与客户端即可。这样不加 -subdomain 选项就不会有子域名
为了玩树莓派用尽了脑子...
n2n是用来实现p2p的程序.
p2p不用占用服务器资源, 网速取决于各个客户端的速度, 是内网穿透的"最佳方案"(如果稳定的话).
但是p2p并不能穿透所有的NAT, 比如NAT4目前还没有好用的穿透软件.
如果你对你所在的网络自信的话建议使用一下这个软件, 运行超级简单, 几分钟就可以搞定内网穿透问题. 而且不用再配置端口, 直接使用虚拟网卡ip就能访问节点.
但笔者在实验之后发现n2n并不稳定, 所以就不再大篇写它了. 这是相关资料:
项目地址:
frp也实验性的加入了p2p支持, 名为xtcp, 但穿透效果也不够稳定, 不建议使用.
frp需要一个公网服务器作为中转器, 这个服务的叫 frps , 启动frps也非常简单: 使用docker
对了 还有config文件
其中端口的配置看官方文档即可, 不难.
现在就需要为内网机器启动客户端了, 这个程序叫 frpc , 可以直接在项目的 releases 页面找到你系统对应的版本. 由于frpc经常需要访问到宿主机的网络, 用docker不好折腾, 所以就直接运行之:
frpc.init的配置稍微有一点复杂, 这里举例说明一个: 访问内网机器的Admin UI.
frpc支持远程管理配置文件, 也就是 Admin UI
现在在客户端访问localhost:8080就能看到
现在开始编辑你的配置文件吧,
既然是内网机(现在我们称它为A), 所以不能随时都能连接上, 那么需要将admin暴露出去以便随时修改配置(当然也可以暴露ssh端口).
好了, 现在访问远程服务器xxxx:10010就能看到admin页面了.
不过这是不安全的(就算添加了basic auth也一样), 任何人都能访问到这个页面乱改一通. 并且admin并不需要随时修改, 为了安全放弃点便利是有必要的.
这就需要使用到稍微麻烦一点的stcp协议:
可以看到没有了remote_port配置项, 那么如何访问他呢? 这时就需要在访问端(另一个机器, 我们称它为B)运行另一个frpc并配置如下
这个配置说明要访问admin服务, 并且映射到本机的127.0.0.1:8080端口. 现在在B机器上访问127.0.0.1:8080也能看到同样的界面了.
推荐使用Termux, 无需root就能直接运行frpc程序(arm64版本), 运行方式和在linux上一样.
frp并没有n2n在易用, 但也够用了, 测试也很稳定, 在没找到更好的替代方案之前就用他了吧.
其实frp也可以像n2n一样包一个类似VPN的壳, 易用性就能提升很多啦. 有兴趣的朋友可以再研究,
购买一个极路由,极路由可以安装应用,而且有提供域名解析,可以被用来作为本次内网穿透的实验。
随后给路由器安装frp的应用,在有广域网IP的自己家的路由器上安装frps,在内网安装frpc。
frp的源码可以在 github 上获取,页面上有关于frp的介绍:
在服务器端设置,选择版本,服务器地址保持默认的 0.0.0.0 ,设置特权密码,用于客户端的连接,设置查询用户名和密码。
在客户端进行设置,选择与服务器对应的版本,填入服务器的域名或者IP,因为极路由自己有域名解析非常方便。添加自己设定的密码:
再加入配置文件,比如下面的内容将148和5两台主机的22端口做了分配:
运行客户端,查看运行状态:
以下通过ssh登陆到内网的树莓派上,这个板用安装了moodeaudio系统,可以看到相关的信息:
打开状态网页 ,也可以看到连接信息:
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流