NJU 网线接入校园网无法访问校内 172.29 网段

问题

软院用网线的同学可能会遇到,在使用网线访问校园网时无法访问 172.29.xxx.xxx 的校内服务(这个网段似乎是蒙楼五楼机房的),此时的解决方法是拔掉网线,切换到 NJU-WLAN 无线网。

论原因,似乎是南大有线网和无线网的奇异拓扑,二者在 172.29 之下是隔离的。根本解决方法需要在服务提供方处配置好 Docker (听 lbd 说的)。不过这显然不是我们使用方该考虑的。

目前已知如下服务有问题:

  • 软院大三 cpp 课程 oj
  • seecoder
  • 软院云主机

解决

有一个简便易行的方案解决:在访问 172.29 时使用 NJU-WLAN,其他默认有线网。使用静态路由实现。下面给出 Windows 的方法,Linux 是类似的。

  • 首先确保电脑同时连接了有线网和无线网

需要注意 p.nju 认证的问题,可以开启无感知认证

  • cmd 管理员模式下使用 route print 查看连接状态,确认二者都获取到了网关。记下无线网卡的接口号和网关。具体哪个是无线网卡,建议把接口列表复制下来问大模型。而无线网的网关一般是 10 开头的网段。你也可以通过从无线网获取的 ip 来确定哪一个是无线网,或者使用 ipconfig 命令获取。

  • 添加静态路由。命令格式为:
    • ip to reach: 你要访问的 172.29.xxx.xxx 地址
    • mask: 如果你只要访问某一个地址,就直接设置为 255.255.255.255。否则我相信你应该知道怎么做
    • gateway: 前面记下的网关
    • interface id: 接口号
route add <ip to reach> mask <mask> <gateway> if <interface id>

Done,然后在访问 172.29.xxx.xxx 时,会自动路由到无线网。

补充

  • route add 可能重启失效

给 route add 命令加上 -p 选项即可重启后依然生效了。

  • 为什么电脑会默认用有线网访问,而无线网需要手动设置路由?

Windows 会根据“接口的优先级”(metric)来决定默认用哪个网卡,而不是你想象的“哪个先连上就用哪个”

具体细节读者可以问大模型。我贴进来会让文章变得冗长。