cpolar实现免费的内网穿透

背景

虽然自己有一台阿里云的服务器,但是限于云服务器的配置不高,存储也不大,想着以后如若有扩展存储的需求与其购买加钱,不如自己在本地搭一个树莓派跑一些自己需要的服务。但是绝大多数家庭宽带用户是没有公网ip的,于是,就绕不过内网穿透。
对比了好多种内网穿透方案,发现成本比较低的,只有ngrok和cpolar了。如果只是用来测试,自己用的话,ngrok和cpolar的免费版都已经够用,这两个的免费版使用方法也是一模一样,只是ngrok的服务器在美国,我试过,转发过来的请求很慢,相比之下cpolar的服务器应该是在国内,速度就快很多,达到了正常可用的状态,但这两种方法都不是最想要的,最想要的是绑定自己的域名而不是每次启动随机生成的域名,开源的1.x的ngrok版本可以实现这个,但是是个半成品,功能虽然可用,但是据说内存泄露bug很严重,不适合生产长期使用,2.x的版本又不是开源的,想要自己绑定域名要收费,所以ngrok方案就基本被排除了,Frp应该可以实现同样的功能,这个后面再说。

cpolar相比ngrok的优势除了速度比较快之外,域名同样是跟随用户随机生成的,每次重新启动不会改变域名,ngrok也是跟随用户随机生成的,但是每次启动的域名都不一样,所以,即便是测试用,cpolar也是更好的选择。

原理

目前的内网穿透方案,多数是反向代理,通过在公共端点和本地运行的 Web 服务器之间建立一个安全的通道,实现内网主机的服务可以暴露给外网。所以都需要一台云服务器,在云服务器上有一个server端,本地内网应用再安装一个客户端,客户端和server端通过socket通讯实现请求在内网和服务器之间的转发和接收。cpolar服务商提供服务器,所以只要在本地安装cpolar客户端,就可以实现内网穿透了。

安装方法

1.cpolar注册并下载客户端
前往 www.cpolar.com注册账号,注册之后会跳到下图的页面

cpolar实现免费的内网穿透_第1张图片
深度截图_选择区域_20200405222357.png

点击下载,这里以linux为例,页面上有详细教程,下载后把zip解压,然后在安装目录运行命令

./cpolar authtoken 密匙token

这里的密匙token是用户注册时根据用户随机生成的,运行完这个命令会保存在~/.cpolar/cpolar.yml里,所以以后启动的时候也不用重复设置。
接着运行

./cpolar http 8081

这里设置需要转发的端口号,比如我想把8081端口映射到外网,这里的8081是可以根据需求自己改的。
运行完这个命令之后就会生成下图所示的http域名和http域名以及对应的本地端口


cpolar实现免费的内网穿透_第2张图片
深度截图_选择区域_20200405223134.png

在浏览器中直接访问这个域名就可以访问这个端口的本地应用了,内网穿透成功。

这个方法自己测试用还可以,如果想要搭建多人访问的网站,想要绑定自己的固定域名,是需要缴费的,所以有空再研究一下Frp的内网穿透方案,这个是开源免费的,而且可以用自己的阿里云服务器自己配的,后面有空再写一下。

你可能感兴趣的:(cpolar实现免费的内网穿透)