在路由器上使用内网穿透神器ngrok

传说中连每一粒沙子都能分配一个IP的IPv6要普及还是遥遥无期,在天朝如果要用一个公网IP,大多情况还是要申请一条光纤,真光纤,上下行速度对等那种,也就是什么专线宽带,贼贵,地方稍微偏一点还不一定给你拉。其它地方不知道,天朝不推广IPv6是不是也有公网IP宽带这种暴利因素在阻挠呢?

所以内网穿透就很有用途,家用的媒体服务器,私有云,建站等等。之前ngrok这个软件开源时照着教程编译过服务器端和OS X、win、Linu的客户端,那时候还在用校园网,上传速度杠杠的,因为服务器在国外,所以延迟还是比较大,但在没有公网IP的情况下,外网能访问内网资源还是很激动的。

前段时间折腾完路由器,就想着会不会有路由器版本了,上github一看有个c语言版本的ngrok,叫ngrokc,编译完后只有3、40k,比其它平台go语言版的10来M小多了。

使用

虽然自己搭着一个ngrok的服务器端,但用着延迟大,不方便,所以用https://www.ngrok.cc/提供的免费服务,搭服务器时看的教程也是这个站长写的,大牛。

  • 在上面网站注册,下个客户端,scp到路由的/usr/bin下运行
1
./ngrokc -SER[Shost:server.ngrok.cc,Sport:4443,Atoken:XXX] -AddTun[Type:tcp,Lhost:192.168.1.1,Lport:6800,Sdname:aria2]

像这样就能在外面往家里的路由添加aria2任务

参数说明来自 https://github.com/dosgo/ngrok-c

1
2
3
4
5
6
7
8
9
Shost -Server host. //服务器host  
Sport -server port. //服务器端口
Atoken -ngrok authtoken. //服务器认证串
type -tcp or http or https. //要映射的类型,tcp,http,https
Lhost -local address. //本地地址,如果是本机直接127.0.0.1
Lport -local port. //本地端口
sdname -Subdomain. //子域名
Hostname -hostname //自定义域名映射
Rport -remote port //远程端口,tcp映射的时候,制定端口使用。

其实这种内网穿透工具放在路由上面再好不过了,集中管理需要做穿透的IP和端口,而且其实这个路由版本原作者是有提供luci操作界面,非常方便。

感觉这个一百块钱的路由算是物超所值了,在跑着aria2和迅雷下载smb和ftp文件共享百度云同步翻墙,现在又跑一个ngrokc,最重要路由器可远比群辉这些NAS要节能,除了一些高端路由。这些高端路由双核CPU,跑得发烫,功耗二三十瓦,跑得是流畅,不像极路由这么容易崩,但极路由功耗只有几瓦,这才是一个家用路由该有的功耗。