up主的就业方向是开发网站前后端,有一台自己的实体服务器,没有公网IP,我希望:
能长久地提供任何人在任何地点都能用浏览器访问到的网站;
另外由于服务器存放在家里,我开学、旅游、出差是需要异地ssh登录服务器的(实体服务器变云服务器),
最好还能异地登录宝塔面板。
我用过的内网穿透目前只有natapp和花生壳两家,在消费过之后就有了使用经验,特此分享出来。
单个内网穿透只能绑定ip的一个端口且仅支持https、TCP、UDP、Socks5中的一种协议。比如你的内网穿透是TCP协议,绑定在了服务器的127.0.0.1:22上,那么你只能用该内网穿透做22端口上TCP能做的事,比如进行ssh登录linux服务器;再比如你的内网穿透是https协议,绑定在了127.0.0.1:80上,那么你只能用该内网穿透在浏览器上访问服务器80端口的网站。
https:用于创建可在浏览器访问的网站
TCP:用于准确性要求高的数据传输,如文件传输、远程桌面、ssh登录服务器等,不支持创建网站或在浏览器访问
Socks5:用于特殊环境下需要使用代理才能访问的应用。
UDP:用于无连接服务、进程到进程的通信。数据传输的准确性不高。
natapp免费送每个号两条隧道,隧道就是内网穿透,该隧道支持web(https)、TCP、UDP协议,natapp的免费隧道好像不限制流量,但是域名/端口随机,且不定时强制更换,适合想测试服务质量或者提供超短时间的网站访问服务之类的需求。
你也可以购买隧道,服务更好,适合需要长期且稳定的内网穿透的人,续费是每条隧道10到18块/月,每G流量价格从0.3到2元不等,购买后流量包没有失效期。
要有对比!花生壳也送每个号两条映射(映射就是隧道,就是内网穿透),支持TCP、HTTPS、Socks5协议,花生壳的免费映射不会不定时换域名改端口。花生壳充斥着金钱的味道,分体验版、青春版、专业版等等,刚注册都是体验版,每月送1G流量,若要购买流量,能划到每G要9块钱,流量还有过期时间。但是学生党有福利,可以认证青春版,每月送5G流量。另外https协议需要花6块解锁,几乎算永久解锁。其他版特贵,也就一年几千吧。学生党不用考虑买额外映射了,因为要花几百几千解锁其他版才能享受额外映射。
仅从性价比上考虑,
想简单的体验短时间内TCP协议的内网穿透,如ssh登录、远程桌面等,两家随便选;想在短时间内让他人访问自己的网站,选natapp,毕竟花生壳要6块解锁。
想长久的享受稳定的内网穿透,还是付费吧。比如搭个没人看的小博客网站,一个月可能都用不了几G流量的,学生党选用花生壳,非学生就尴尬了,选用natapp吧,每月10块续费,但是流量便宜,选用花生壳吧,6块包永久,但是流量贵;如果网站很耗流量,比如搭建云盘,natapp每G一两块,花生壳每G八九块,自己选吧。
以上内容都不是正文,简单吹个水罢了,以下是关于我如何解决开头提到的需求。
up主用的是natapp的付费隧道,一次性续费了一年,原价120打折后102,流量另算,不过因为网站没人看所以流量花不了多少钱。但是现在看来我有点亏,因为我当时还不知道花生壳,更不知道花生壳6块续费100年,学生每月送5G流量。
考虑到ssh登录linux不怎么花流量,而且natapp的免费隧道时不时换域名和端口,所以up主用的花生壳的免费映射。教程如下:我实体服务器的内网ip是192.168.0.102,ssh端口是22,无公网ip,将TCP协议的免费映射绑定到192.168.0.102:22,在花生壳.exe(花生壳客户端)查看,得到下图的公网域名xxx.fun和马赛克处的公网IP x.x.128.21和公网端口12017。在xshell或者windows的cmd里输入公网ip和端口即可登录。
宝塔面板有多方便我就不多说了。经过测试,不知道什么原因,反正我是需要在宝塔面板 - 面板设置 - 面板ssl 关掉。开了ssl,你登陆面板,数据会被加密,即https,关了面板,就没加密呗,即http。
我实体服务器的宝塔面板登录地址是https://192.168.0.102:28704/0a04d65b,这个地址只能在内网访问到。
如下图在花生壳绑定第二条免费映射,主机填我服务器内网ip,内网端口填宝塔面板的端口28704
然后重启下花生壳.exe,防止数据没更新。在花生壳.exe得到下图公网域名https://xxx.yicp.fun,
此时你直接在浏览器访问该域名,会显示”请使用正确的入口登录面板“,
你需要在该公网域名后加上”/0a04d65b“,”/0a04d65b“取自我实体服务器的宝塔面板内网登录地址https://192.168.0.102:28704/0a04d65b的后半段。这个字符串因人而异。此时再去访问就能成功了
总结下,上述内网穿透方案为我解决了:让任何人访问无公网ip的服务器的80端口上的网站;让我不论在哪,异地也能ssh登录服务器,从而下发指令(就像一台云服务器);让我在异地依旧能享受宝塔面板的便捷。
不足:开头有提到,单个内网穿透只能绑定服务器的某一个端口,且仅支持https、TCP、UDP、Socks5中的一种协议,也就是说我想在90端口开个分网站,那我需要买新的隧道或者映射,那我要是用10来个端口岂不是买十来个隧道么。所以还是有公网IP香。
可能的解决办法:(这是我的一个猜想,还没去探索过。不对请轻喷)。在一次次的探索中,我了解到除了内网穿透,至少还可以用远程桌面或者zerotier解决我异地登录的需求。
我尝试过用远程桌面软件todesk从笔记本连接到服务器(todesk有linux和windows端),粗略地体验了下,发现todesk是将linux的图形化桌面展现给你,但是一,我的服务器没图形化桌面,所以显示黑屏,二,我只是想简单的ssh连接,无需图形化桌面,就放弃了。如果你恰好好这口,CentOS 7 配置 VNC 远程桌面连接,这篇文章你可能用得着。
zerotier是一个搭建异地虚拟局域网的软件,我准备明天再试,要是能成,我就可以将天津学校的宿舍和江苏的家配置在同一个”局域网“下,这样不仅省隧道,还不限端口数量、协议。这只是我的猜想,我还没实验,不对轻点喷~