今天在网络上所获得了历史性的突破!!!
我终于可以同时上内网和外网啦!!!!(火星
起因:
阿什十经常把本陆的网络当作rbq,虽然频率不高但是偶然来一个偶捏该还是很烦的。这意味着我需要:
- 先把偶捏该的文件给下好
- 断开外网,连接学校的内网
- 把偶捏该的内容通过ftp传上去
- 重新接回内网
但是在3这个过程,可谓是非常的痛苦。
如果在这时我正在进行着看视频、下东西这种耗流量大的活动的话,就会产生很多不必要的流量消耗。(不知道为啥会消耗流量的请去看上一篇《失去网络的第三天》)
所以我就想着能不能有一种办法让我同时上内网和外网,这样我就不用切来切去了。
过程:
经过百度之后,我发现其实这并不是什么特别难的事情(大概)
首先,我需要同时连上内网和外网。这个很简单,我用网线连内网,用无线连外网就行了。
百度给出的方案是修改系统内的路由表。
打开cmd(记得要管理员权限),输入route print之后,就能看到路由表的内容。
由于我这里已经修改完了,所以没有修改之前的图。不过在我的路由表里面,是差不多这个样子的:
(横杠是我自己加的打码效果,横杠占的地方都应该是数字(ip地址))
IPv4 路由表
===========================================================================
活动路由:
网络目标 网络掩码 网关 接口 跃点数
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.106 36
0.0.0.0 0.0.0.0 10.2-.2-.2– 10.25.–.- 36
10.2-.–.- 255.255.255.0 在链路上 10.25.–.- 291
10.2-.25.- 255.255.255.255 在链路上 10.25.–.- 291
10.2-.2-.2– 255.255.255.255 在链路上 10.25.–.- 291
网络目标:你要访问的地址的目标。如果这个地址是0,就说明0~255这个范围的地址都会被分配到这个路由项上。
网络掩码:子网掩码,转换为二进制之后,和1重合的为公网段,和0重合的为内网段(这个百度一下就知道了)。
网关:负责转发的路由的ip地址。“在链路上”表示主机直接访问目标网络,没有转发。
接口:自己的IP地址,这个ip地址对应着对应网卡的ip。
例如说,在这里我的ip有两个,192.168.1.106 和 10.25.–.- ,
其中192.168.1.106是我在连接外网的路由器得到的内网ip地址,10.25.–.- 是我连接内网得到的ip地址。
网络目标为0.0.0.0,意味着所有的ip地址都会被放进这个目标项内。
但是在这个路由表内也存在着其他的项,所以符合其他项要求的地址就会按照其他项设置的那样被转发。
而所有其他项都不符合的地址就会被放入0.0.0.0中。
我这里存在两个0.0.0.0,所以会产生冲突。
在我这里的情况是,操作系统采用第一个路由表的规则:
网络目标 网络掩码 网关 接口 跃点数
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.106 36
操作系统会选择用192.168.1.1这个网关来传输,也就是用外网访问。
所以第一个要做的就是删掉冲突的路由项。
route delete 0.0.0.0
输入之后,所有0.0.0.0的项都会被删除,如果没其他例外的话,这时候绝大多数应用都应该已经断网了【
所以为了重新上网,需要把路由项给加回去,在这里我要加上使用外网传输的路由项:
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1
命令解释:route add [网络目标] (mask [网络掩码]) [网关]
如果没出问题的话,这时候应用应该已经恢复网络了。
到了这个阶段,使用外网作为默认转发已经设置好了。接下来要配置内网。
在我校的内网中,主要用到的ip段为 10.*.*.* 和 192.168.*.*
所以需要加上这两个段
route add 10.0.0.0 mask 255.0.0.0 10.2-.2-.2–
route add 192.168.0.0 mask 255.255.0.0 10.2-.2-.2–
(这里10.2-.2-.2–是刚才查询路由表得到的内网的网关地址)
如果没出问题的话,这时候就已经可以直接访问内网了。
但是到这里还没结束,目前为止我们加的都是活动路由,如果重新连接,路由表的信息就会重置。
所以可以加一个持久化的参数,也就是-p,例如:
route add -p 10.0.0.0 mask 255.0.0.0 10.2-.2-.2–
这样路由项就被持久化了,在”永久路由”这一项里能看到刚加入的持久路由项。
如果以后想删除的话,执行一下delete就行:
route delete 10.0.0.0
就可以全部删掉。
一般来说,到这里就没问题了。(如果还有问题的话,可能是对DNS服务器的访问出了问题,直接看下面的DNS部分就好)
接下来是一些配置过程中的小插曲:
在配完 10.0.0.0 的路由表之后,我访问了阿什十的树莓派作为测试。
结果成功。
接下来我很开心地打开了学校的公告页,结果:
诶诶诶诶——???
卧槽这是怎么回事?!
照理说我已经成功配好路由表了,应该成功才对的啊??
断开外网内网ping了一下地址,得到公告页的ip地址,然后我再次配好路由表直接访问ip地址……
成功了!
域名不能访问但是ip可以直接访问——应该是dns的问题!
于是我就想,只要改一下dns映射就好了。
(现在回头看觉得自己很蠢的一点是,其实浏览器都已经给出DNS_PROBE_FINISHED_NO_INTERNET这个提示了……)
然后我就去傻傻地百度了自定义dns映射的方法,结果找不到【。
然后傻傻的我突然想起来,改HOST本身不就是自定义dns映射吗【。
于是我打开了host,加上了域名对ip的映射,结果成功访问。
到这里,我觉得所有问题应该都解决了。于是我又开心地打开某个内网种子分享平台的链接——
啊,进不去。
对了,我只在host添加了一个地址项目,需要把这个也加入才行。
于是切了内网,通过ping命令得到了ip,不过奇怪的是全部都是响应超时。
我没有管这些,继续访问ip——
卧槽?
啊?
这这这这是怎么回事??
这会不会是因为ping到的这个ip不是最终的地址,只是个转接的路由地址?(没有理论的胡乱分析
接下来采用tracert命令尝试跟踪这个地址,结果跟踪到到一半就无响应了。
哇,这就很蛋疼了。
我尝试断开外网切成纯外网,可还是无法直接访问这个ip。
不死心的我打开了wireshark准备抓包,看看到底是怎么一回事。
成功地通过域名打开了这个站点,然后我开始搜索wireshark的结果……
嗯???
什么???就是这个地址返回的响应???
也就是说,这个地址确确实实响应了HTTP请求,这个地址就是最终的地址,不会是用于转发的地址。
这也……太……
实在想不出来要怎么解决这个问题,所以决定死马当活马医,直接在host表加上这个域名对这个ip的映射。
结果——
卧槽?成功了?
最后,我得出来的结论是:
ping和tracert命令都返回超时 -> 这个站点屏蔽了ping和tracert命令采用的 请求,只允许了一些协议(例如http)的请求。
直接访问ip得到404 -> 这个站点禁止通过ip直接访问,可能是因为有多个服务在这同一个主机上运行,所以需要通过域名指定访问的是哪个服务。
到了这里,问题应该就已经完美解决了吧。
然后我看到了密密麻麻的内网站点…………
等等,如果我要通过修改host来增加域名匹配的话,那我 每一个站点都需要加一项??
……
这绝对不是一个好办法。
接刚才的上面,遇到DNS问题的可以直接看这里:
增加DNS服务器路由项:
思考一下问题本质。
为什么无法获得域名对应的ip地址?
在路由表修改好之后,我用ping工具ping了一下内网的域名。
这很明显是一个外网地址……
也就是说,这个域名并没有通过内网dns服务器解析,而是通过外网dns服务器解析,所以无法解析到正确的ip地址。
那么,只要让网络正常访问内网的dns服务器就好了吧?
那么,把内网dns的地址添加到路由表用内网网关行不行呢?
试一下。
首先,用ipconfig /all看一下内网的dns服务器地址:
然后,把这个服务器地址添加到路由表里面。
添加成功。
现在打开一个没有添加到host的内网站点试一下。
成——功——了——
到这里,就是真正的成功了……吗?
bonus:让指定的网卡访问指定的ip地址:
其实大体上的确已经没什么问题了,做完dns服务器的路由项的确可以完成日常的大部分的任务,可是在我这里有一个特殊的情况。
本校屏蔽了本校学生自己弄的树洞地址,也就是说,只要走内网去访问树洞地址的话,会被墙。
那是不是再加一个路由表项就行了呢?
试试。
route add —.—.—.— mask 255.255.255.255 192.168.1.1
看来是添加成功了,我们访问一下试试。
啊,不行呢。
嗯……这到底是为什么呢。
再看一下路由表:
可以看到,虽然配置了网关地址,但是本地发出请求时用的还是内网的地址。
所以按照路由表,它会寻找内网的192.168.1.1作为网关。
……这明显就是错的。
我需要在本地请求的时候使用外网的本地ip发出请求,这该怎么做才行呢?
路由表能不能做到这一点?
好像还真行。
输入:
route –help
可以看到里面有一个参数 IF 可以指定是哪个接口的路由项,或许可以借用这个命令指定无线网卡访问这个地址。
先查一下路由表:
route print
可以看到,每个设备都有一个代号:
在这里,我的外网(无线)代号是19。
所以添加路由项的时候这么输入:
route add 218.247.–.– mask 255.255.255.255 192.168.1.1 IF 19 -p
命令解释:route add [目标地址] (mask 网络掩码) [目标路由] (IF 接口号) (-p 持久化)
修改成功,测试一下。
看来现在已经能成功访问了。
到这里,就是真的皆大欢喜,完全解决了。
带来的附带增益:
本来,我是为了给阿什使传文件才弄这个的。
但是这么做却有一个意想不到的副效果。
1. 远程连接也不会消耗流量
前一篇文章有提到,本校的无线网络几乎覆盖全校,所以我可以通过任何一台连接了校园网的网络远程到我的电脑上,前提是我的电脑连接上了校园网。
但是校园网访问外部网络是限流的,如果我要远程,意味着我要珍惜我的流量……不能任意下载东西,不能看网课。
这就很难受了,在外不看网课(可能)会死的。
但是在配置完这个之后,就没问题了。
校内的内网主机ip段基本都是10和172开头,所以远程连接会走内网连接到我的电脑上,然后我通过远程连接操控我的电脑访问外面的网站的时候,走的是无线的外网。
这样就完美解决了远程连接电脑消耗流量的问题!
2. 可以直接访问种子分享平台
本校的种子分享平台是内网,而且封杀了非内网的点,所以只有访问内网才能下平台上的资源。
_(:з」∠)_平台上的东西还是蛮多的,有时候我懒得在自己去百度找的时候就会直接上平台搜。因为是内网,所以速度也非常的快。
但是每次这么做我都要先切换到内网,然后下载,在下载期间如果干了其他访问外网的事,就会消耗流量,所以非常的麻烦。
但是在这么一配置之后,就不存在这些问题了。
本校学生的内网ip绝大多数都是10和172开头的,所以p2p也可以开心地走内网,我同时访问外网也不冲突。
这真的是意想不到的收获…………
好文!我顶
整篇文章我就看懂了 思修 马克思 近代史 毛概
😧😧😧😧😧
这几天大家都忙着配网啊(为互联网30岁祝寿了
这边刚刚配好了从我的 VPS 连接中学的路由器之间的 WireGuard 代理和 tinc 隧道
你们学校的人性化网络体验早有耳闻,Azure 免流都被限速也是太狠了(