起因
学校禁止了外网访问校内电脑和大部分网站,具体表现为 ping 不通, trace 到学校外网出口(之一)就终止。为了解决个人在校外的内网访问需求(其实就是瞎折腾),我自行搭建了中转机。
做法
概括:
细节(可忽略):
- 不考虑路由器的情况下,寝室内布置了一台树莓派( rpi );
- 树莓派通过 SSH -R 连接到阿里云中转机(ecs),将中转机的 A 端口映射到树莓派的 B 端口,并转发到树莓派的 C 端口;
- 使用$$接收 C 端口的数据。
- 使用手机或电脑连接中转机 A 端口
数据流向:
- 外网手机或电脑 -> $$全局模式 {-> ecs:A [-> rpi:B] -> rpi:C -> $$server } -> 内网网站
- 其中,{}表示$$包装的数据,[]表示 ssh 包装的数据。
- $$+ssh 可以在外网登陆内网树莓派,所以我认为$$server 和隧道都没有问题。
现在的问题
- 手机无法通过域名访问内网网站,但通过 ip 可以访问。
备注:电脑可以域名访问,校内网址能在公网解析,解析结果为上文可以访问的 ip
我怀疑仍是 dns/udp 转发的问题,无论手机开不开 udp 转发,都无法用域名访问。
有没有大神知道这背后的原因。