引言 虽然买了一个腾讯云的学生机搭建一些环境,比如博客,jupyter,宝塔等。但毕竟是廉价的学生机,配置还不如几十块的 N1(4 核 2G)。服务器的负载可想而知,截了张图感受一下: [图片] CPU 的消耗都是来自宝塔的程序,我也不清楚宝塔在运行着什么。所以就想着在我本地的机器搭建这些服务,但奈何家里没有外网 IP ..

内网穿透多款工具测试

引言

虽然买了一个腾讯云的学生机搭建一些环境,比如博客,jupyter,宝塔等。但毕竟是廉价的学生机,配置还不如几十块的 N1(4 核 2G)。服务器的负载可想而知,截了张图感受一下:
20190913132200.png

CPU 的消耗都是来自宝塔的程序,我也不清楚宝塔在运行着什么。所以就想着在我本地的机器搭建这些服务,但奈何家里没有外网 IP,因为是租房带的宽带,总不能打电话要一个吧,如果是自己办的宽带完全可以打运营商的电话要一个公网 IP,万一有了呢。

这里我遇到了一个很奇怪的问题,我在路由器上看到的 IP 和百度出来的 IP 是一样的,开始我还以为有公网 IP,但做了一下端口映射发现,外网并不能直接访问,也不是说不能吧,因为如果访问的机器自己拥有公网 IP 是可以访问到我内网的服务器的。

很难理解是吧,详细点说就是:我在 Windows 用 xshell 使用路由器的 IP 连接内网的虚拟机是无法连接的,但是在腾讯云的服务器上使用 SSH 命令是可以连接到我内网的虚拟机的,换了连接软件也不行,但换一台有公网的服务器又是能连接的。这个问题纠结了我很久,到底是有公网 IP,还是没有呢?如果有,那么外网的机器应该都能访问,如果没有,服务器为什么能访问到。

开始正题(这里只测试支持免费的,付费的不考虑)

cpolar

使用步骤:像这种半付费的产品一般都是很人性化的,使用起来非常简单。先下载官网给的应用程序,然后直接解压,在程序路径下运行 cmd 或者 Linux 终端,先执行 ./cpolar authtoken <YOUR_AUTH_TOKEN>(这个 token 官网手机注册一下就有),然后执行./cpolar http 80,会在终端显示被映射到了哪个地址,你访问一下就行了。如果不是 http 协议的,比如 SSH,3389 等可以运行./cpolar tcp 22,因为这些协议都是基于 tcp 的。

使用感受:映射 3389 端口,虽然能连接,但是卡的无法操作,毕竟显示界面需要传输的数据比较大,免费的带宽肯定支持不了;映射 22 端口,勉强能用,但使用一点都不流畅,体验很差;映射 http 协议(宝塔的 8888 端口):加载速度也很慢,但相对于 SSH 来说好一点,因为只需要加载一次,后面有缓存操作起来也还行。

总结: 无法满足我的要求,http 一个人访问就这么慢,是无法搭建博客的,SSH 也很慢。但是可以考虑映射 jupyter 供我自己使用。

NATAPP

使用步骤:和 cpolar 差不多,不过映射端口需要在官网操作,免费的只能有两个。而且不仅仅需要手机注册,还需要实名认证(感觉并没有验证接口,随便填不知道能不能通过)。

使用感受:3389,感觉还行,虽然比不上本地的机器,但还挺流畅。我觉得免费有这种程度很不错了;22,很流畅;http:也挺快的

总结:如果先用了 cpolar 再来使用这个工具,那这工具真不错。不过限制很多,比如只能映射两个,而且地址会一直变(最难受的),流量虽然没有说有限制,但付费的都有限制,免费的怎么可能没有,估计只有不到 1 个 G。无法满足我的要求,但虽然搭建不了博客,也可以作为 3389 的备选工具使用。

Serveo

使用步骤ssh -R mybt:80:localhost:8888 serveo.net,在内网机器输入这个。然后看输出信息,如果没有报错,则你内网的 8888 端口就被映射到了 mybt.serveo.net 这个域名上了,直接浏览器输入即可访问内网 8888 端口的服务。

使用感受:一个字,卡。

Sakura Frp

使用步骤:官网注册一个账号,下载客户端。打开客户端看提示操作

使用感受:我只试了 3389,发现还行,挺流畅。其他的应该也不会卡,待选

以上两个是我发现的可以免费使用内网穿透工具,如果还有其他还不错的可以告诉我,我测试一下。接下来就是使用自己的服务器搭建穿透了。

nps(https://github.com/cnlh/nps/)

使用教程可以参照官网,写的很详细。

使用感受:3389,总是断线,无法正常使用;22:很流畅;http:速度还可以,一个人使用的话和我搭建在服务器感觉没什么区别

总结:工具还行,作为 http 和 tcp 代理都还不错,待选

holer(https://github.com/wisdom-projects/holer)

使用感受:使用上和 nps 没什么区别,但是配置较为繁琐。我使用的是自己搭建服务的方式,需要在服务端安装 Java、MySQL、nginx,没有 nps 人性化。速度上和 nps 一样,3389 一直断线(不过这里使用的是虚拟机,上面测试的是公司的电脑,网络环境变了,可能不太准确),SSH 没什么问题。最致命的缺点是,只能做一次映射,所以我选择 nps。

Frps 一键安装脚本(https://github.com/dylanbai8/frpspro)

frp 的配置也有点繁琐,我们先试试这个一键安装脚本,不过只支持服务端是 Linux,客户端是 Windows

使用步骤wget -N --no-check-certificate git.io/f.sh && chmod +x f.sh && bash f.sh install,直接服务端运行这个命令会下载并安装服务。然后安装完之后会显示 Web 地址和客户端程序的下载地址。在客户端配置一下 INI 文件,运行 bat 文件就行了(出现了一个小错误,把 INI 文件的编码从 utf-8 改成 ANSI 就成功了)。

使用感受:3389 速度还行,没有 natapp 流畅,但属于能使用的范围,可以考虑使用。只支持 Windows 基本限定了只能使用远程桌面了。

LanProxy(https://github.com/ffay/lanproxy)

配置和 nps 一样简单,无需使用源码,使用发布包运行一下即可。

使用感受:3389:,速度还行,能使用但不算太流畅;SSH,很流畅;http,网页有一小段大概 5-10 秒的加载时间,然后就很流畅了,不知道这个加载时间是我的网络问题还是工具的原因

总结:可以和 nps 媲美,待选

以上就是我测试的一些自建服务器穿透工具,至于其他就不一一去尝试了,如果有更好的请推荐给我。下面我们看另一个工具-zerotier,和上面不同的是,这个工具并不算真正意义上的内网穿透,仅仅是在几个客户端之间建立局域网。也就是只有加入局域网的机器才能互相访问,当然它也需要中继的服务器,由 zerotier 官方提供,也可以自建。

官方登录的话好像是要翻墙才能访问,不翻墙的话加载很慢(不知道是不是我网的问题)。而且安卓客户端还只提供 Google Play 的下载地址,真不想安装谷歌三件套,什么时候有闲心装在模拟机上再下一个吧。

使用上来说其实和 nps 这些工具差不多,至于速度的话,测试了一下 SSH 和 http 速度很快,而且这个工具一般用来做 NAS(可以理解为私有网盘)的穿透,所以速度应该慢不了,下次测一下远程桌面,虚拟机开 Windows10 是真卡。

如果上面的工具在使用的有什么不懂的话可以问我,如果有好的内网穿透工具请推荐给我。

6 回帖
请输入回帖内容...
  • LYHFUU

    之前用过 ngrok 现在一直用花生壳

  • kanadeblisst

    ngrok 自己搭建操作很繁琐,不如使用 ngrok 二次开发的工具 nps 等,ngrok.cc 提供的免费的限速 16k/s,这谁受得了。花生壳最近几年名声不怎么样就没去试

  • alanfans

    为什么你的 CPU 占用那么高

  • alanfans

    frp 首选,ngrok 备选,其他没用过

  • washmore

    frp 首选,比 ngrok 简单到不知道哪里去了...ngrok 的各个平台客户端还得自己编译...

  • lizhongyue248

    腾讯云的应该没有老火才对啊,才那么几个东西。 我的挂了三个应用,一个 jupyter,一个博客,几个 vertx 接口,还有一些静态展示页面,还安装了 Java、go、maven、gradle、jenkins 这些一堆的环境,1h2g 都没那么恐怖。。。

    以前也用面板工具,后来觉得宝塔面板觉得有点流氓,个人不喜欢用 =-= 你看看他的安装脚本,强制安装了好多东西。现在是自己手动维护,也锻炼一下自己。

请输入回帖内容 ...