日版Switch连不上校园网的解决方案 您所在的位置:网站首页 日版switch联机要钱吗 日版Switch连不上校园网的解决方案

日版Switch连不上校园网的解决方案

2024-07-07 09:33| 来源: 网络整理| 查看: 265

修改:switch可以直接连加速器,比如电脑安装一个uu加速器,在电脑开启主机游戏加速,点击加速器的设置网络查看设置信息,然后在switch上点击对应WiFi,设置加速器提供的网关ip、子网掩码、ip地址、dns地址,最后连接WiFi网络即可。记住是电脑开启加速器,switch和电脑连接同一个路由器(有线或WiFi),switch手动设置网关信息。这样设置后,就不用设置路由器了,也不要求必须是openwrt路由器,同时可以解锁一些国外游戏。缺点是加速器要钱!或者也可以尝试在openwrt路由器上开启加速器。

前排提醒:此方案需要使用运行openwrt或者其它linux系统的路由器

舍友买了一个日版Switch主机,发现连不上宿舍WiFi。

连接宿舍WIFI

上图是实测结果,严格来说,可以连上宿舍WiFi,不过第二步联网测试挂了,然后Switch主动关闭了WiFi连接。

后面测试手机热点是可以连接的,这说明不经过代理连接是有可能的。

进一步排查问题,我通过PC分享热点,然后用Wireshark抓包后得到这样的结果:

Wireshark过滤DNS

联网测试过程一般必须经过DNS查询的,这样我们可以根据查询结果看看具体用到哪些域名,通过上面的结果,我发现相关域名是 ctest.cdn.nintendo.net,ip是23.220.73.166

过滤这个ip得到:

过滤23.220.73.166结果

通过上面的结果,可以得出以下结论:

DNS解析是正常的

目标ip的TCP(http)连接是正常的

http返回403错误

结论3可能是联网测试出错的原因。

上述结果的连接模式是:Switch PC(抓包)  路由器WiFi(校园网)

进一步确认问题,我在可以正常访问的网络上进行了抓包,连接模式是:

Switch PC(抓包) 手机USB热点(电信网络)

PC移动热点流量转发到USB热点正常的响应

可以看到,正常响应是200 ok

另外,虽然这个域名的dns解析变了,但是即便通过旧的ip地址23.220.73.166访问依然是返回ok

现在,可以得出结论: ctest.cdn.nintendo.net响应403是Switch认定不能联网的原因,我们也可以认为,服务器返回403的依据是请求ip,也就是这个服务器封禁了校园网ip。

既然如此,我们可以尝试一种简单的办法:

我们在Switch请求http://ctest.cdn.nintendo.net/的时候直接给它返回 200 ok。

这个方案其实并不难实现,因为这是http请求,我们可以直接进行MITM(中间人攻击)。

原本的请求:

Switch 路由器 校园网网关 测试服务器

要实现的请求:

Switch 路由器 劫持服务器(Nginx反向代理)

要求:

路由器是openwrt系统(或者其它linux系统)

操作步骤:

1. 登录路由器网关,选择 网络 > 主机名, 固定ctest.cdn.nintendo.net域名的ip解析为23.220.73.166(或者其它值),固定的目的是为了更方便劫持,因为这个域名可能有多个ip记录。

固定dns记录

2. 选择 系统 > 管理权 打开ssh权限

打开ssh权限

3. 登录ssh,通过powershell输入 ssh -l root 192.168.1.1 (这是网关ip,和上面的浏览器输入的ip地址一致,密码也和浏览器输入的一样)。

4. 安装nginx,输入命令 opkg update && opkg install nginx

5. 检验nginx安装成功,输入 nginx -v

6. 配置反向代理

vim nginx.conf执行后,按 i 键进入编辑模式,粘贴下面的内容

粘贴好后,按ESC退出编辑模式,输入 :wq 然后按回车,保存并退出。

7. 运行nginx并测试http请求正常

输入 /etc/init.d/nginx enable 回车,设置nginx开机启动

输入 /etc/init.d/nginx start 回车,本次手动启动

浏览器访问 http://192.168.1.1:8080/

看到ok表示正常。

8. 设置iptables流量转发

cat /proc/sys/net/ipv4/ip_forward 看看结果是否为1,不为1的话可以输入

echo 1 > /proc/sys/net/ipv4/ip_forward 

输入 iptables -A PREROUTING -t nat -p tcp -d 23.220.73.166 --dport 80 -j DNAT --to 192.168.1.1:8080 回车

注意 192.168.1.1 是路由器网关地址,如果不一致应替换。

添加完转发规则后,用浏览器访问http://ctest.cdn.nintendo.net/ (注意不要开代理,有时候因为浏览器dns缓存,可能也不一定能够立即看到这个结果,多刷新几次、换浏览器测试,还不行的话检查 dns固定解析 和 iptables设置是否正确)

如果浏览器看不到结果,可以使用curl访问看看

现在,可以用Switch连接WiFi测试了!

连接成功

持久化iptables规则:

编辑 /etc/rc.local,添加iptables命令

注意 chmod +x rc.local 添加执行权限才能被系统运行

总结:

http://ctest.cdn.nintendo.net/对校园网ip进行了封禁,可以通过http中间人攻击替换403响应为200正常响应。

另外,有openwrt交叉编译基础的同学,可以直接clone一下openwrt代码,设置好目标硬件信息,编译工具链,然后让chatgpt写个监听8080端口的简单http程序,每个http请求返回固定的200 OK,接着用工具链编译,用scp复制到路由器上运行,这样就不用安装和配置NGINX了,同时占用非常少的内存。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有