日版Switch连不上校园网的解决方案 | 您所在的位置:网站首页 › 日版switch联机要钱吗 › 日版Switch连不上校园网的解决方案 |
修改: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 实验室设备网 版权所有 |