i007.cc

i007.cc

优先队列-降维打击

[教程] 内网穿透教程:让你的内网机器实现远程访问(完工)

此教程最后一步,在路由器配置脚本那一段,已经集成于路由器.亲们直接使用路由器的界面配置就好了!  by小宝.


为什么我们要用内网穿透:

1、大前提,你有需要远程访问的机器,对于大部分的人群来说,需要会远程访问的服务可能会是NAS、路由器管理

(什么,你想远程控制电脑?远程开机?很遗憾,这个教程让你穿透了你也得配合其他东西,比较复杂,不在讨论范畴)

什么是NAS?群晖为代表的家庭云,可能是在线电影,建立自己的私人Cloud文件保存服务器,也有可能是远程记事本(黑群晖教程:http://koolshare.cn/thread-6258-1-1.html

 ↑白群晖(正版,这款台湾1900,国行2300-2900),同样性能的盗版大概是600-700元

2、你身处大中华局域网无法直接做花生壳解析(如果外网IP,其实不用看这个教程了,直接在群晖外部访问做个花生壳就好了)——如果有需求再额外做教程

因为现在的IPV4 IP段越来越稀少,所以不单单是普通小运营商,连电信联通都逐步的加入到将用户丢到私有IP里(当然你可以电话投诉将你丢出去外网IP,但是相对麻烦,也不是每个地区的投诉有用)————注:很多地方是直接外网IP无法双拨叠加带宽,可申请进入内网IP后获得双拨带宽,例如我(遭遇连接点击查看),这时候也有需要用到内网的解析。

OK,符合以上的,你远程访问的需求了(第一点),又因为被锁在内网里(第二点)。那么看下去吧

—————————————-华丽的分割线———————————————-

我们怎么做内网穿透?

现在内网穿透比较出名的是花生棒内网版,NAT123穿透,但是他们的缺点也很明显,贵(特别贵在你需要穿透N个端口的时候,价格是成倍的叠加)

OK,还有一个高端人士使用的穿透工具,也就是我们今天要探讨的主角“ngrok”

比较麻烦的是这玩意网上教程相对都是很简单(摔桌子,都是大神写的,都是默认的认为,我擦,这么简单的道理肯定都会,我就不说这个流程了)

经过这2天小宝大神的教导,终于给我这个小白学会了怎么使用,故来和大家说一说
—————————————-华丽的分割线———————————————-

准备的东西:

1、域名

怎么获得?直接去阿里云购买,选择最便宜的,买一年只要5元。(http://wanwang.aliyun.com/domain … 38.1907008.1.zxKSPX)(有钱任性随便),域名买好了放在那,怎么设置从操作步骤中说吧,不在这里说了。

2、VPS

虚拟服务器,不要买国内的,国内的需要备案80端口,个人很麻烦,咱们也不对外做网站,所以直接选择香港的或者美国的。

https://www.cloudsvm.com/billing/cart.php)——香港

https://portal.hosthatch.com/cart.php?gid=28 ——香港,性价比挺高的(3个月8美刀)(可以架SS+内网穿透一起,值这票价)

https://bandwagonhost.com/cart.php)——美国搬瓦工,便宜但是的确慢。。。

需要欧美的(例如有些服务,游戏只接受欧美),看这里推荐:http://www.laozuo.org/myvps

香港的速度好点,但是贵点,美国的便宜,速度慢点。还有狠多其他的选择。

以搬瓦工(美国)的为例-其他的vps管理大同小异,注册,选择你需要的然后购买,可以直接支付宝支付,购买完登陆帐号如下图操作,点services

进入下图后(左边涂掉的是我的IP,每个vps一个固定IP),选择右边的KiwiVM Control Panel按钮进入服务器管理

进入你的操作管理窗口后点左侧的导航栏,install new os,选择右边框好的系统(这个系统回头也可以装SS)——如有需要另外一个文章再说

OK,安装好系统他会蹦出来一个IP,一个端口,一个密码给到你,这个就是以后你用来ssh连接服务器(winscp也是)的信息了,绝对不要遗忘,遗忘就要重装系统了。

3、一台路由器,不一定非得是能刷小宝系统的,但是得是可以ssh进去路由,路由有可以执行穿透程序的ROM。(So,你是R6200之类的也是可以的,TP什么的应该也没问题,)

—————————————-华丽的分割线———————————————-

服务器正式步骤:

1、登陆阿里云后台,选择你的域名进行解析

2、(以阿里云DNS为例)进入解析后台,点击添加新解析,在主机记录那填*(作用就是等会的设置你写什么域名他就生效什么),然后记录值写你的服务器IP,保存OK,域名设置完成(泛解析)

3、下载Putty用来连接服务器,获得方法,百度搜索,即可(记得取消掉安装百度杀毒软件)



4、执行(绿色文件),在服务器里输入你的vps ip,port输入端口号,点下面Open



5、打开Putty的终端。输入帐号root,然后复制你的密码,在窗口里右键一次即可(由于linux的机制,此处不显示*),回车即可连接到你的VPS

6、复制下面的代码丢到窗口里

  1. wget -q –no-check-certificate  https://koolshare.github.io/ngrokd/install.sh -O install.sh

复制代码

,回车,会自动下载小宝出品一键安装包,下载完毕输入sh install.sh,然后输入下你购买的域名(不需要www,只要abc.com)

(本来有很多步骤的,但是给小宝直接浓缩了一个一键安装,鼓掌)

如果出现错误提示(一般是端口被占用导致),使用winscp(百度输入,安装),进入服务器根目录执行下config.sh修改下端口(为什么这里没教,因为一般服务器都是不会有占用端口,既然会端口的说明已经架设过服务,会架设服务的人不需要看WINSCP软件使用介绍了)
端口被占用是因为自动脚本里有这么一个代码

  1. ./bin/ngrokd -domain=”exp.com” -httpAddr=”:80″ -httpsAddr=”:443″ -tlsCrt=device.crt -tlsKey=device.key -tunnelAddr=”:4443″ <font color=”#ff0000″>-pass=”xxxx”</font>

复制代码

而这个代码会用到http 80 443 htts tunnel(接路由器) 4443 的几个接口,So,一般可能都是80端口被占用,如果不行的同学就修改config里的80为其他的就好了(例如,8080)——如果是国内VPS那就要设置http 80为其他,然后对应的所有访问都要跟个:8080,例如abc.xxx.com:8080,标红的地方为新版的程序额外的加密方法,如果你想给你的服务器加密请在这里输入你需要的密码

—————————————-华丽的分割线———————————————-

路由器设置环节:

0、确定以上环节没有问题,如果成功了如下图展示,没成功的话一般是端口问题,防火墙问题之类,到时候往下贴问题再解答

可以直接看这里http://koolshare.cn/thread-6312-1-1.html

1、进入路由开启JJFS,重启路由(第一次将上面的格式化也勾上)

2、打开Winscp,连接路由器,如下图,选择文件协议为SCP,然后输入路由地址,登陆帐号密码

3、下载文件(链接:http://pan.baidu.com/s/1c0bMKne 密码:a4j5),解压,会出来2个文件,json和tunnel,上传至路由根目录的JFFS目录里(可以改名,默认是default.json,注意文件权限,全部可读可写。

 

4、双击json文件,会弹出编辑框来让你修改(下面的图里的auth是密码,如果你设置了服务器上有密码,那么这里你要在auth的引号区间里面填进去密码)

详细介绍下这里,这里的作用其实很简单,就是配置端口映射了,上面一段仅需要修改server为VPS的域名,除非你冲突了。

各项参数解释:

proto: 端口协议解释:目前这个支持比较良好的协议有http和tcp,群晖和路由远程管理用的都是http,subdomain为二级域名,随便你起名,反正你前面已经用了*做泛域名解析了。

*注意:proto可选的协议仅有http https tcp

localhost:本地设备IP地址

localport:本地设备端口

*remoteport:远端端口
注意:在使用tcp协议的时候可以指定远程服务器开放的端口,映射关系为ip:remoteport < — > localhost:localport

说明,比如说我这里的2个http协议一个是a域名一个是b域名,访问a.xxx.com的时候他将会直接到我197这个机器(nas)上的5000端口,访问b.xxx.com他会访问另外个局域网(路由器)的80端口

而每个端口都有对应的作用,例如下图是群晖的端口介绍(其实群晖的https都是http端口),没有特别标注的http端口都是tcp的

继续举栗:我想在我的手机端里群晖PHOTO APP能用,那么我就是这么操作

{
“proto”: “tcp”,
“subdomain”: “”,
“localhost”: “10.0.0.197”,
“localport”: 80,
remoteport”: 12345
},

然后在手机app里输入a.xxx.com:12345为访问地址了(主要是手机端APP用),(注:切记,tcp的格式是有区别的,而且不能直接映射,需要做个假跳)而且localport后面要跟个英文”,”

以此类推,可以建立多个tcp映射,最后一个的}后不用跟“,”了,应为tcp是不用域名来区分的,所以直接以你http最开始设置的域名为访问二级域名就可以了。

OK,配置好以上的文件后保存,然后进入下一步骤了

5、打开路由的SSH功能,如下图,如果你是ddwrt、opnewrt也无所谓,只要有就可以了

6、使用putty连接路由器,和上面连接vps一样,只不过的差别在连接的IP是你路由访问IP,输入的帐号是admin,密码是你登陆路由管理的密码,端口是你路由设置SSH的时候下面那个数字。

7、输入

  1. cd /jffs

复制代码

8、输入以下代码即可运行了,一切无错的话,你的端口映射成功了,可以尝试下按照你的json来定义的端口访问了

  1. ./tunnel -c <span style=”color: rgb(102, 102, 102); line-height: 22.4px; background-color: rgb(249, 249, 249);”>default</span>.json -p /tmp/tunnel.pid

复制代码

9、我是来介绍下重启后怎么办的

如VPS重启了,那么请用putty进入到vps根目录后,运行“sh install.sh”。

如果路由重启了,那么请如上所说运行一次./tunnel -c defaut.json -p /tmp/tunnel.pid

如果嫌麻烦,那么写到你的vps和路由的开机执行命令里也是可以的

—————————————-销魂的分割线———————————————-

实际运用环节:

我只拿我自己来做举例吧,我为什么会使用这个玩意,上面说的,首先我在网内,但是我有着控制路由的需求,家妻经常在我出差后看小说电影之类不睡觉,我会远程关掉路由

然后我有需求会手机访问我的NAS来获得一些文件,或者WEB端 访问群晖管理或者pc端访问群辉的cloud文件,SO,又有需求了

ds video app用的是http 端口5000,直接设置好访问即可(和群晖web管理页面同一个,访问上后手机可以直接看了),当然在家里的话还是直接局域网访问,外网的话你的vps给力的话,你也可以当成在线影院了。

而下面的photo,他用的就是tcp端口了,需要用到和我上面说的端口对端口跳转

其实每个人的需求都不一样,这只是我的一些玩法,也是我认为最重要的作用。文章就写到这里了,不定期会对文章的回复提出的疑问进行解答更新。

zl3301兄弟这么问道:

问题是白裙有 quickconnet,黑裙3322,花生壳,甚至于梅林都可以用 asuscomm,端口转发下就好。**么 ss,好像没有 LZ 介绍的那么复杂吧?甚至于用 Teamviewer 都可以操控。

回答:

白群直接quickconnet就好了。

但是黑裙的话,你没有外网iP(这个是趋势,越来越多人没外网IP),根本花生壳公网版用不了。

花生棒内网贵,映射多几个端口的钱你可以买一个很好的vps了。

open v pn之类的也是一个前提,有外网IP。然后SS和内网映射不是一个回事。

xiaoshe:

这样做的内网穿透,数据经由vps做第三方转发吗,如果是使用video station会怎么样?

流量跑VPS的,速度快慢取决VPS带宽,p2p直连的小宝在研究,但是可能会非常的麻烦

发表回复