虽然买了一个腾讯云的学生机搭建一些环境,比如博客,jupyter,宝塔等。但毕竟是廉价的学生机,配置还不如几十块的N1(4核2G)。服务器的负载可想而知,截了张图感受一下:
cpu的消耗都是来自宝塔的程序,我也不清楚宝塔在运行着什么。所以就想着在我本地的机器搭建这些服务,但奈何家里没有外网IP,因为是租房带的宽带,总不能打电话要一个吧,如果是自己办的宽带完全可以打运营商的电话要一个公网IP,万一有了呢。
这里我遇到了一个很奇怪的问题,我在路由器上看到的IP和百度出来的IP是一样的,开始我还以为有公网IP,但做了一下端口映射发现,外网并不能直接访问,也不是说不能吧,因为如果访问的机器自己拥有公网IP是可以远程到我的台式机。
很难理解是吧,详细点说就是:我在Windows用xshell使用路由器的IP连接内网的虚拟机是无法连接的,但是在腾讯云的服务器上使用ssh命令是可以连接到我内网的虚拟机的,换了连接软件也不行,但换一台有公网的服务器又是能连接的。这个问题纠结了我很久,到底是有公网IP,还是没有呢?如果有,那么外网的机器应该都能访问,如果没有,服务器为什么能访问到。
使用步骤:像这种半付费的产品一般都是很人性化的,使用起来非常简单。先下载官网给的应用程序,然后直接解压,在程序路径下运行cmd或者Linux终端,先执行./cpolar authtoken
(这个token官网手机注册一下就有),然后执行./cpolar http 80
,会在终端显示被映射到了哪个地址,你访问一下就行了。如果不是http协议的,比如ssh,3389等可以运行./cpolar tcp 22
,因为这些协议都是基于tcp的。
使用感受:映射3389端口,虽然能连接,但是卡的无法操作,毕竟显示界面需要传输的数据比较大,免费的带宽肯定支持不了;映射22端口,勉强能用,但使用一点都不流畅,体验很差;映射http协议(宝塔的8888端口):加载速度也很慢,但相对于ssh来说好一点,因为只需要加载一次,后面有缓存操作起来也还行。
总结: 无法满足我的要求,http一个人访问就这么慢,是无法搭建博客的,ssh也很慢。但是可以考虑映射jupyter供我自己使用。
使用步骤:和cpolar差不多,不过映射端口需要在官网操作,免费的只能有两个。而且不仅仅需要手机注册,还需要实名认证(感觉并没有验证接口,随便填不知道能不能通过)。
使用感受:3389,感觉还行,虽然比不上本地的机器,但还挺流畅。我觉得免费有这种程度很不错了;22,很流畅;http:也挺快的
总结:如果先用了cpolar再来使用这个工具,那这工具真不错。不过限制很多,比如只能映射两个,而且地址会一直变(最难受的),流量虽然没有说有限制,但付费的都有限制,免费的怎么可能没有,估计只有不到1个G。无法满足我的要求,但虽然搭建不了博客,也可以作为3389的备选工具使用。
使用步骤:ssh -R mybt:80:localhost:8888 serveo.net
,在内网机器输入这个。然后看输出信息,如果没有报错,则你内网的8888端口就被映射到了mybt.serveo.net这个域名上了,直接浏览器输入即可访问内网8888端口的服务。
使用感受:一个字,卡。
使用步骤:官网注册一个账号,下载客户端。打开客户端看提示操作
使用感受:我只试了3389,发现还行,挺流畅。其他的应该也不会卡,待选
使用教程可以参照官网,写的很详细。
使用感受:3389,总是断线,无法正常使用;22:很流畅;http:速度还可以,一个人使用的话和我搭建在服务器感觉没什么区别
总结:工具还行,作为http和tcp代理都还不错,待选
使用感受:使用上和nps没什么区别,但是配置较为繁琐。我使用的是自己搭建服务的方式,需要在服务端安装java、mysql、nginx,没有nps人性化。速度上和nps一样,3389一直断线(不过这里使用的是虚拟机,上面测试的是公司的电脑,网络环境变了,可能不太准确),ssh没什么问题。最致命的缺点是,只能做一次映射,所以我选择nps。
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基本限定了只能使用远程桌面了。
配置和nps一样简单,无需使用源码,使用发布包运行一下即可。
使用感受:3389:,速度还行,能使用但不算太流畅;ssh,很流畅;http,网页有一小段大概5-10秒的加载时间,然后就很流畅了,不知道这个加载时间是我的网络问题还是工具的原因
总结:可以和nps媲美,待选
以上就是我测试的一些自建服务器穿透工具,至于其他就不一一去尝试了,如果有更好的请推荐给我。下面我们看另一个工具-zerotier,和上面不同的是,这个工具并不算真正意义上的内网穿透,仅仅是在几个客户端之间建立局域网。也就是只有加入局域网的机器才能互相访问,当然它也需要中继的服务器,由zerotier官方提供(官网说的带宽是10M, 实际使用上也挺快的),也可以自建。
官方登录的话好像是要才能访问,不的话加载很慢(不知道是不是我网的问题)。而且安卓客户端还只提供Google Play的下载地址,真不想安装谷歌三件套,什么时候有闲心装在模拟机上再下一个吧。
使用上来说其实和nps这些工具差不多,至于速度的话,测试了一下ssh和http速度很快,而且这个工具一般用来做NAS(可以理解为私有网盘)的穿透,所以速度应该慢不了,下次测一下远程桌面,虚拟机开Windows10是真卡。
如果你没有服务器的话,想用别人使用的服务,首推Sakura frp,其次是natapp。如果你有自己的外网服务器(或者有外网IP),推荐nps和lanproxy,lanproxy功能简单,nps功能多一点,但不是专业人其他功能基本用不到。如果你只是想远程自己的Windows或者Linux电脑的话,推荐zerotier。使用的话直接搜GitHub或者官网都有很详细的教程。
另外,如果有更好的内网穿透工具请推荐给我。