自由地与外网交互
太长不看版:
使用frp、ngrok等软件可以利用一个由你控制的服务器完成内网穿透,借助服务器C使B用户可以访问到处于封闭局域网的A用户的计算机。
路由器、wifi等设备广泛普及,给我们的生活带来了极大的便利,但是同时也无形中在我们与外网的交互中增加了一些阻碍。一般的用户对于“让其他用户能够访问到自己的计算机以提供服务”的需求并不大,因此平时可能没什么感受,但是一旦出现例如某些单机游戏联机时发现由于双方身处局域网无法连接,或者想要开一个服务器的时候发现外网无法连进局域网内设备时,就会带来很大的困扰。
一般来说,解决此问题的方案较多,例如若距离外网的路由数较少,且拥有一些列路由的管理权,可以设置端口转发来达成暴露于外网的目的,但如果路由数较多,甚至缺少其中某个路由的管理权,都不能成功地配置端口转发,这时候我们就可以换个思路去解决这个问题了。
如果把上述配置比喻一下,那么就像是在一片茫茫无际的大草原,你的好基友被你告知去A城池的x城门,你的好基友来到这里,懵逼的发现这座城外面环绕着n层城墙,他来到x城门,这里的守卫毫不犹豫的告诉他去n-1层的xn-1城门,如此循环,一旦有个门卫不是你的熟人,或者不记得他要对下一层哪个城门开后门,他就会毫不犹豫地把你的好基友踢出A城。经历了层层磨难你的好基友终于到了最后一层的x1城门,见到了在那里等候多时的你,两眼泪汪汪地抱住你哭诉这一路风风尘尘饱受磨难,为了让好基友不那么痛苦,你想了个好办法。
你在自家偷偷挖了条密道,直通B城的y城门,B城只有一层城墙,这可就方便多了,你的好基友到了B城的y门,就一个门卫好打点多了,门卫告诉你的好基友让他钻进哪个密道,密道一路畅通无阻,根本不需要被盘问,很快就到你家了,这次他就可高兴了,抱着你狠狠的啃了几口。
这种比喻方法是不是很形象呢?简要的说就是化被动为主动,主动与B服务器建立长链接,这样的话对方需要经过的路由数就大大减少,这项技术就是NAT穿透的一种,可以称作反向代理、内网穿透。目前普遍比较流行的有frp与ngrok。前者是国人产品,主要是鉴于ngrok的配置比较麻烦,于是干脆自己build了一个,ngrok是前辈,歪果仁产品,配置项较多功能丰富,但是由于2.x系列不再开源,所以我个人更加倾向于使用前者。
最后安利一个有毒的小游戏MikuTap。 https://static.hfi.me/site/mikutap
有更多兴趣的可以复制以下链接至浏览器查看:
http://0x0.f3322.net:8080/hope/html/Programing/187195.html
领取专属 10元无门槛券
私享最新 技术干货