绕过校园网WEB认证_dns2tcp实现

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介:

转自:https://www.cnblogs.com/nkqlhqc/p/7805837.html

 

PS:接下来可能要提到一些有关域名解析原理和网络隧道方面的知识,限于篇幅,我就简单说两句,想要深入了解的朋友可以参考以下内容:

DNS原理及其解析过程【精彩剖析】: http://369369.blog.51cto.com/319630/812889/

隧道技术:https://baike.baidu.com/item/%E9%9A%A7%E9%81%93%E6%8A%80%E6%9C%AF/10774268

  既然UDP53端口的数据包可以通过网关,那么我们可以在本地运行一个程序将其它端口的数据包伪装组成UDP53端口的数据包,然后发送到本地域名服务器,那么网关就不会进行拦截了,数据包就顺利的通过了网关,可是发送出去的数据报如何返回呢?这就需要我们做进一步的设置。

  NO.1:

  在本地计算机上安装dns2tcp这个软件,<它的作用是对数据包进行伪装与还原> 
附Windows版下载地址:https://pan.baidu.com/s/1nvDWk9j    提取码:pgxk

NO.2:

  申请一个VPS,国内VPS服务商众多,什么阿里云啦,腾讯云啦,百度云啦。在这里我给大家推荐由世纪互联运营的微软Azure云服务器,1元体验一个月,申请与部署方式很简单,而且服务器配置与带宽很高,可惜的是就能使用一个月,其实学服务器开发的大学朋友们也可以申请一个练练手,毕竟这是一次难得的实践机会嘛!

附微软Azure云服务器申请地址:https://www.azure.cn/pricing/1rmb-trial-full/

  有关申请与部署服务器的细节,我就不再赘述了,按照流程走就行。有不懂的地方可以参看微软给的文档和视频教程。

  下面这个操作尤为重要,部署成功服务器后,务必参照微软的文档为服务器添加入站与出站规则,也就是哪些类型的数据包可以进出你的服务器,那些类型的数据包会被防火墙拦截,这个步骤决定着伪装的数据包是否能够进入到我们的VBS

将TCP80,TCP443,UDP53端口的数据设置为允许入站与出站,如下图所示:

申请成功后,微软会给你一个公网IP,这个公网IP一定要牢记,接下来需要用到,现在假定你得到的公网IP为140.205.32.13

NO.3:

  申请一个域名,推荐到阿里云申请,因为便宜,我申请的.top国际顶级域名第一年才1块钱。
附申请地址:https://wanwang.aliyun.com/domain/yumingheji

  申请过程请严格按照人家的流程,不过要提醒一点的是务必要用真实信息,否则人家会封掉你的域名。

  现在假定你申请到了一个域名,假如你申请到的域名为aliyun.top,你需要进入阿里云的域名控制台,为其添加两条记录。
第一条为NS记录,记录名称随便,记录值也随便,但是记录值要牢记,以后用的到。
假设你添加的NS记录名称为dnsalibaba.top,记录值为dnsaliyun.top。
再为申请到的域名添加一个A记录,A记录的记录名称是NS记录的记录值,A记录的记录值是你所申请到的VPS的公网IP,如下图:

 

  当本地域名服务器无法解析我们伪装的数据包后,便将数据包发送给NS记录指定的服务器dnsaliyun.top,而dnsaliyun.top的IP地址已经在A记录中给出了,所以刚才原理没看懂的朋友朋友们现在应该知道为什么本地域名服务器会将数据包发送到我们的VPS中了吧

 

  等一会弹出一个输入用户名的窗口,输入你部署服务器时设置的用户名,输入完成后点击记住用户名,点击确定。在弹出的新窗口中输入你部署服务器时设置的密码,输入完成后点击确定,不出意外,你将会连接到你的VBS,如下图:

 

接下来在Xshell中输入sudo apt-get install dns2tcp,敲回车,这条命令用来安装dns2tcp这个软件,很快就会安装完毕

 


PS:没用过Linux的用户可能看不懂这些Linux命令,但是不懂没关系,跟着我做就行了。

接下来配置dns2tcp

再次敲入命令:sudo vim /etc/dns2tcpd.conf ,用vim编辑器将其中的内容替换为一下内容(vim编辑器的使用教程网上有):
#这里写你的云服务器的内网IP,一般为10.0.0.4
#这里写你设置的NS记录值
dns2tcpd -f /etc/dns2tcpd.conf -F -d 2      #启动dns2tcp

当出现上图显示的内容时,说明dns2tcp启动成功了,此时按下Ctrl + a+d键,让dns2tcp进程后台执行,再关闭与服务器的连接就行了

windows客户端配置:
打开CMD,键入并执行如下命令 : dns2tcpc -r ssh -z dnsaliyun.top 140.205.32.13  -l 8888 -d 2

当出现上图显示的内容时,代表会话已经建立了,此时最小化这个窗口【记住千万不要关闭它!!!】
***注:
-r 后接服务名称<ssh/socks/http中的任意一个>
-z 后接你设置的NS记录,和你的VPS公网ip
-l 后接本地端口,随便一个常用端口就行
-d 开启 Debug

现在假设你完全按照我给出的流程走的

离成功只有一步之遥了,下面用Xshell转换Socks4/5通用代理:
在xshell中仿照上面新建会话:IP地址为127.0.0.1,端口为8888 ;然后点击隧道,类型选择socks4/5,端口填1080,输入完成后点击确定,若不出意外,此时CMD中会出现大量信息,这些信息代表通过dns2tcp的数据包,这就表明你的电脑已经在和服务器传输数据了。而xshell中又会提示你登录到你的服务器,仿照上文输入用户名和密码(最好选择记住用户名和密码,这样下次就不用那么麻烦了),点击确定并成功登录到你的服务器后,最小化xshell【记住,此时千万不要关闭xshell!!!】

 

 打开Internet选项,依次选择"连接"->"局域网设置"->"为LAN使用代理服务器"->"高级"

 在socks/套接字输入框中,要使用的代理服务器地址填127.0.0.1,端口填1080,然后点击确定。

 

 

      到此,大功告成,打开你的浏览器试试吧!!!

 

附录:

screen命令的使用:

screen命令用来创建后台进程,进程运行时,便于我们能继续做其它工作

创建screen会话   screen -S dns2tcpd 
启动dns2tcp   sudo dns2tcpd -f /etc/dns2tcpd.conf -F -d 2 
暂时离开快捷键 Ctrl + a + d
恢复screen会话 screen -r dns2tcpd 
列出当前的会话列表  screen -ls 
强行终止dns2tcp进程  screen -S dns2tcpd -X quit

常见DNS记录的含义:

 A记录 : 用来指定主机名或域名对应的IP地址记录,通俗来说A记录就是服务器的IP,域名绑定A记录就是告诉DNS,当你输入域名的时候给你引导向设置在DNS的A记录所对应的服务器。

NS记录 : 域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析,简单的说,NS记录是指定由哪个DNS服务器解析你的域名。

MX记录 : 邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。

CNAME记录 : 别名记录,允许您将多个名字映射到同一台计算机。通常用于同时提供WWW和MAIL服务的计算机。 


















本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/7978282.html,如需转载请自行联系原作者



相关文章
|
2月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
169 3
|
2月前
|
运维 负载均衡 安全
深度解析:Python Web前后端分离架构中WebSocket的选型与实现策略
深度解析:Python Web前后端分离架构中WebSocket的选型与实现策略
124 0
|
1月前
|
JSON JavaScript 前端开发
蓝桥杯web组赛题解析和杯赛技巧
本文作者是一位自学前端两年半的大一学生,在第十五届蓝桥杯Web组比赛中获得省一和国三。文章详细解析了比赛题纲,涵盖HTML、CSS、JavaScript、Echarts和Vue等技术要点,并分享了备赛技巧和比赛经验。作者强调了多写代码和解题思路的重要性,同时提供了省赛和国赛的具体流程及注意事项。希望对参赛者有所帮助。
81 3
|
1月前
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
102 4
|
1月前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
85 2
|
2月前
|
前端开发 开发者 容器
构建响应式Web界面:Flexbox与Grid布局的深度解析
【10月更文挑战第11天】本文深入解析了CSS3中的Flexbox和Grid布局,探讨了它们的特点、应用场景及使用方法。Flexbox适用于一维布局,如导航栏;Grid布局则适用于二维布局,如复杂网格。通过示例代码和核心属性介绍,帮助开发者灵活构建响应式Web界面。
62 5
|
3月前
|
SQL 安全 数据库
Python Web开发者必看!SQL注入、XSS、CSRF全面解析,守护你的网站安全!
在Python Web开发中,构建安全应用至关重要。本文通过问答形式,详细解析了三种常见Web安全威胁——SQL注入、XSS和CSRF,并提供了实用的防御策略及示例代码。针对SQL注入,建议使用参数化查询;对于XSS,需对输出进行HTML编码;而防范CSRF,则应利用CSRF令牌。通过这些措施,帮助开发者有效提升应用安全性,确保网站稳定运行。
62 1
|
2月前
|
JSON API 开发者
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
深入解析Python网络编程与Web开发:urllib、requests和http模块的功能、用法及在构建现代网络应用中的关键作用
24 0
|
4月前
|
JavaScript 搜索推荐 前端开发
从零搭建到部署:Angular与Angular Universal手把手教你实现服务器端渲染(SSR),全面解析及实战指南助你提升Web应用性能与SEO优化效果
【8月更文挑战第31天】服务器端渲染(SSR)是现代Web开发的关键技术,能显著提升SEO效果及首屏加载速度,改善用户体验。Angular Universal作为官方SSR解决方案,允许在服务器端生成静态HTML文件。本文通过具体示例详细介绍如何使用Angular Universal实现SSR,并分享最佳实践。首先需安装Node.js和npm。
118 1
|
4月前
|
API C# 开发框架
WPF与Web服务集成大揭秘:手把手教你调用RESTful API,客户端与服务器端优劣对比全解析!
【8月更文挑战第31天】在现代软件开发中,WPF 和 Web 服务各具特色。WPF 以其出色的界面展示能力受到欢迎,而 Web 服务则凭借跨平台和易维护性在互联网应用中占有一席之地。本文探讨了 WPF 如何通过 HttpClient 类调用 RESTful API,并展示了基于 ASP.NET Core 的 Web 服务如何实现同样的功能。通过对比分析,揭示了两者各自的优缺点:WPF 客户端直接处理数据,减轻服务器负担,但需处理网络异常;Web 服务则能利用服务器端功能如缓存和权限验证,但可能增加服务器负载。希望本文能帮助开发者根据具体需求选择合适的技术方案。
216 0

相关产品

  • 云解析DNS
  • 推荐镜像

    更多