Zxilly
Try to be 1%
Zxilly's Blog

校园网路由器多设备伪装指北

请不要给 admin@learningman.top 发邮件,那个邮箱我一年检查一次的

起因

感谢工信部对大学生们的监督,国内的校园网有了一人一号的限制。在某些企业的变本加厉之下,甚至已经演变为了一设备一号。

但是我有一堆智能设备,没有一个网络环境无法使用。

调察

查了一些资料,加上自己的测试。基本可以确定我校所用的Dr.Com检测多设备的方式基本上就是检测HTTP报文里的User-Agent字段 。目前来说,现成的解决方案有Privoxy或者由CHN-beta 开发的

但是以上都有一个缺点:他们只能处理从80端口发送的HTTP请求。无论是Privoxyiptables转发,还是xmurp-ua的挂载netfilter链,他们都没有考虑过对于HTTP的识别,而是处理所有通过80端口的流量。

但是事实上,并不是所有的HTTP流量都是通过80端口发送的。比如手机QQ的图片传送,使用的是HTTP协议的同时,走的是8080端口。你可能会想,那我把那些端口也处理了不就好了吗?但是在非标端口上的行为并没有规定,这些端口上并不是只有HTTP流量。如果你把非HTTP的TCP流量转发到了代理服务器,结果就是这些连接都被阻断了(比如小爱同学)。

我曾经想过用一个叫做sslh的程序完成流量识别,作为代理服务器的前置代理,将识别出的HTTP流量转发到代理服务器。但是事实上这样效率很低,而且手动抓包,然后在防火墙里写上几十个端口,看起来也很蠢。

这样看来只有一个办法了——作为一个软件工程专业的学生,就应该自己写一个应用来处理这件事。

于是,就有了 UA2F

实验性项目
UA2F仍然是一个实验性项目,我不对此程序带来的可能的硬件损坏和人身伤害负责。

开源

技术细节

根据我日常生活的经验,学校使用的检测设备并不真正的去识别一个ua字符串,而是仅仅检测其中是否含有某个特定的子串。比如Android或者iPhone之类。所以我们只需要把所有的UA脱敏。在这里我选择将整个字符串全部替换成F,以表达我内心的感情。

框架

我之所以没有使用xmurp-ua还有一个原因,这个程序在我的路由器上会随机引起内核挂起,只有强行重启路由器才能解决。这是因为这个程序是一个内核模块,他的任何错误都会连累到整个内核。

UA2F解决了这个问题,因为它并不是一个内核模块。作为一个普普通通的用户程序,系统并不关心他的死活。

在防火墙中有一个target被称作NFQUEUE,可以将防火墙接收到的包交由用户态程序进行处理。而它的参数--queue-bypass,允许在用户态程序无响应时,直接放行所有的包。UA2F使用这个来获取相应的包并进行处理。这大大提升了整个系统的鲁棒性。

当然这也是有代价的,在内核与用户态程序之间的通讯是需要时间和计算力的。我原本以为这会是一笔很大的开销,但是在实际的运行中看起来并没有那么糟糕。而且我相信,使用这种技术限制学生的上网行为的学校,大概也不会给校园网太高的带宽(逃)。

处理方式

在TCP连接建立起来以后,期望应该是第1个TCP报文中包含HTTP报文的首部。也就是说,我们只需要判断一个TCP包是否以HTTP method开头(如GETPOST),就可以得知这是不是一个HTTP报文。

事实上,这是一个极度简化的模型,有非常多的意外情况没有考虑到。但是他现在看起来工作良好。而且因为我们替换的是同等长度的字符串,所以服务端返回的ACK是可以接受的。这也就让我们可以不需要追踪整个连接来修改所有返回的ACK。

当判断一个TCP包是一个HTTP报文以后,程序将会向下解析所有的头部字段,直到找到UA并替换为止。

修改后的包将会被放回防火墙队列中,继续进行原本应该进行的处理。

使用

写了一大堆东西,终于要讲到这个程序应该怎么用了。

首先,你要拥有一个你自己的路由器的编译环境。理论上SDK也是可以的。但是我推荐使用源码编译,这样可以免去很多无谓的小问题。

这个程序依赖libmnllibnetfilter-queue,你在openwrt的make menuconfig菜单中选上同时会帮你配置好的,但是请注意,还有一个你需要手动选择的选项,iptables-mod-nfqueue。使用这个包以后,防火墙才会拥有这个程序所需要的NFQUEUEtarget。

如果你已经把编译好的系统刷到你的路由器里了。你执行ua2f的时候,终端应该挂起输出一条警告,同时,你应该会在系统日志里看到一条启动消息。

一般来说,你需要配置下列规则。

请确保添加此语句至开机自启

ipset create nohttp hash:ip,port hashsize 16384 timeout 300

UA2F 运行时依赖名称为 nohttp,类型为 hash:ip,port 的 ipset

UA2F的2.0-13加入了实验性的CONNMARK支持。期望可以降低接近一半的负载。但是我并不确定这一定工作正常,有可能导致伪装效果下降。
无法正常工作,已被移除,但是会是一个可行的优化方向。
已经加入 ipset 和 CONNMARK 支持,现在看来工作正常

iptables -t mangle -N ua2f
iptables -t mangle -A ua2f -d 10.0.0.0/8 -j RETURN
iptables -t mangle -A ua2f -d 127.0.0.0/8 -j RETURN
iptables -t mangle -A ua2f -d 192.168.0.0/16 -j RETURN # 不处理流向保留地址的包
iptables -t mangle -A ua2f -p tcp --dport 443 -j RETURN
iptables -t mangle -A ua2f -p tcp --dport 22 -j RETURN # 不处理 SSH 和 https
iptables -t mangle -A ua2f -p tcp --dport 80 -j CONNMARK --set-mark 44
iptables -t mangle -A ua2f -m connmark --mark 43 -j RETURN # 不处理标记为非 http 的流 (实验性)
iptables -t mangle -A ua2f -m set --set nohttp dst,dst -j RETURN
iptables -t mangle -A ua2f -j NFQUEUE --queue-num 10010

iptables -t mangle -A FORWARD -p tcp -m conntrack --ctdir ORIGINAL -j ua2f
iptables -t mangle -A FORWARD -p tcp -m conntrack --ctdir REPLY

随后执行service ua2f start来将程序在后台启动。这个时候你应该可以通过路由器访问HTTP的网页,并且注意到自己的ua已经被修改了。

推荐执行service ua2f enable来将ua2f设为开机启动。

这里提供一个查看自己UA的HTTP网址:http://ua.233996.xyz/

不是我搭的,不保证服务质量。但是就算想自己搭一个也非常简单。

如果你碰巧与我一个学校,你还可以通过下面这个脚本来维持自己的登录状态

脚本的地址是https://gist.github.com/Zxilly/03300ea52e644188c019d47bf0879f1d,但是已经因为性能原因被弃用。
其实并没有什么性能原因,只是我看着pid飙到10000+不爽
这个脚本寄了,直接用 JGSWeb 吧

现在来说,推荐使用另外一个程序。

虽然有潜在的内存非法访问,但是不会建一堆进程

大部分使用流量识别的校园网系统应该都是网页登录的(不排除特别惨的)。抓包写一个脚本,应该不会太难。

目前就我自己的使用体验来说,应该还算是比较稳定。之前只拦截80端口的时候,大概是半个小时登录一次。但是现在已经三个小时都没有再次登录过了。

额外规则

根据一些相关的论文,可以发现能够被检测到的流量特征并不只有UA这一项。事实上有很多流量特征,甚至是统计学上的方法,都可以发现路由器后的多设备。

下面这几条规则解决了NTP,DNS和TTL的问题,据说还能解决深信服的劫持问题。我向我们学校的网络中心咨询过,我们学校应该也是部署了深信服的设备的。但是我在实际中并没有见到被劫持的现象。
在实际使用中,我发现深信服防劫持依赖的字符串解析对性能的影响还是比较大的,是否使用自行斟酌。

其余规则期望的性能开销并不大,不会影响流量的转发。注意,其中的ntp规则,需要你在服务器本地有一个ntp服务器。而DNS规则也需要本地的Dnsmasq的相应配置。

不要照抄,至少先把路由器IP换成你自己的。。。

iptables -t nat -N ntp_force_local
iptables -t nat -I PREROUTING -p udp --dport 123 -j ntp_force_local
iptables -t nat -A ntp_force_local -d 0.0.0.0/8 -j RETURN
iptables -t nat -A ntp_force_local -d 127.0.0.0/8 -j RETURN
iptables -t nat -A ntp_force_local -d 192.168.0.0/16 -j RETURN
iptables -t nat -A ntp_force_local -s 192.168.0.0/16 -j DNAT --to-destination 192.168.3.1

iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53

iptables -t mangle -A PREROUTING -j TTL --ttl-set 64
# iptables -I FORWARD -p tcp --sport 80 --tcp-flags ACK ACK -m string --algo bm --string " src=\"http://1.1.1." -j DROP

你可以在上文提到过的CHN-Beta的Github中找到一个修改IPID的软件包,但是我实际上并没有部署,因为感知不强,徒增功耗,方向错了

缺点

这个程序有很多缺点。

之于xmurp-uaUA2F最大的改进就是它是一个用户态程序,可以方便的完成灾难恢复。

但是具体的灾难恢复机制呢?没写。

已经有一个初始版本的灾难恢复机制,但是会造成网络闪断。

这个程序是一个单进程,单线程程序,所以期望性能非常非常低,路由器的羸弱性能更是雪上加霜。

非常理想化的HTTP检测机制。对于某些上了HTTP/2还死活不用https的网站毫无办法。

这个程序是照着样例代码写的,我甚至没有完整地理解整个处理流程,应该有一些处理是不必要的。比如说取出IP头再解析TCP头,应该可以直接用一个offset完成这件事。

代码的具体实现也有很多暴力的地方,理论上期望性能明显可以更高。比如使用memcpy代替某几个暴力循环。

如果有路过的大佬正好也有这个需求,希望能够改进一下我的代码。

结尾

在这里我想再一次感谢校园网,如果不是校园网,我可能不会有机会如此抓狂的去读一些底层的代码(你可以从commit message看出我的心情)。

感谢libmnllibnetfilter-quene的开发者们,感谢openwrt社区,顺便 %Linus 。是他们慷慨地开放出这些源码,才让我们这些普通人有了能够进行这些操作的能力。

最后的最后,希望有一天我们不再需要进行这些复杂的操作,也不需要再进行另外一些复杂的操作,能够真正地自由地使用整个互联网。

希望有一天,阳光会照在大地上。

learningman

文章作者

MoorLinmo进行回复 取消回复

textsms
account_circle
email

  • Elijah

    在学校上个网太难了…折腾的心累,还好家里有公网ip,多出来的设备直接全局代理到家里宽带去了

    10月前 回复
  • 星念

    编译一直出错啥情况…大佬你用的哪个源?

    10月前 回复
  • Michael

    问过工信部,校园网他们鞭长莫及,他们暂时还管不到…

    10月前 回复
    • learningman博主

      @Michael: 据说是教育部的规定,要管控大学生上网行为

      10月前 回复
  • MoorLinmo

    Collected errors:
    * pkg_hash_fetch_best_installation_candidate: Packages for kmod-nfnetlink-queue found, but incompatible with the architectures configured
    * pkg_hash_fetch_best_installation_candidate: Packages for kmod-ipt-nfqueue found, but incompatible with the architectures configured
    * satisfy_dependencies_for: Cannot satisfy the following dependencies for iptables-mod-nfqueue:
    * kernel (= 5.4.83-1-bcec63334e7e0cf5b00898b585067140)
    * opkg_install_cmd: Cannot install package iptables-mod-nfqueue.

    这个安装不上去怎么办,我是k2p,openwrt的

    10月前 回复
    • learningman博主

      @MoorLinmo: 你内核的这两个模块编译出来相互不兼容,具体的原因我不知道为什么,这不是这个程序的问题。
      建议用官方的OpenWRT仓库,第三方的库版本没更新

      10月前 回复
      • MoorLinmo

        @learningman: 实际上我从官方openwrt仓库下载下来也是一样的问题

        10月前 回复
        • learningman博主

          @MoorLinmo: 那试试make clean?
          这个是iptables-mod-nfqueue炸了啊,我也不知道啥原因

          10月前 回复
          • MoorLinmo

            @learningman: 然后我用–force-depends安装后,还是报错,但是他显示已安装,不知道这样ok吗?

            10月前
          • learningman博主

            @MoorLinmo: 试试吧,我觉得不太行。。。
            iptables-mod-nfqueue是内核模块,需要和内核版本严格对应到commit的
            我才看懂你在干啥,不要试着用opkg去装,从头编译吧
            装了这个你还差三个内核库呢

            10月前
      • MoorLinmo

        @learningman: 对了想问一下无线未关联有什么解决办法吗,网上试了好几个都不行,openwrt19.07

        10月前 回复
        • learningman博主

          @MoorLinmo: 这原因可太多了。。。驱动炸了,uci炸了,都有可能
          logread看日志找原因吧,找异常退出的玩意儿

          10月前 回复
  • xoxo

    你好,大佬。修改什么地方,可以让这个程序开机自动启动,而不需要而外输指令。就是直接编译进固件,开机就默认运行,请指导下,谢谢。

    10月前 回复
    • learningman博主

      @xoxo: 认真看,文中说了`service ua2f enable`就行

      10月前 回复
      • xoxo

        @learningman: 不好意思,大佬,这个指令不知道在什么地方输入,因为要是直接安装ua2f.ipk文件到固件话 就是直接开始运行了,要是把他直接编译集成进固件,就没有运行,那个指令不知道要怎么用,不好意思,我不太懂这个。

        10月前 回复
        • learningman博主

          @xoxo: 你安装了不会自动运行啊,要`service ua2f start`才会开始运行
          就ssh输入执行呗,还能怎么搞

          10月前 回复
  • Leaf

    安装后执行ua2f出现mnl_cb_run:Not supported,不知道问题在哪

    9月前 回复
    • learningman博主

      @Leaf: 再看一遍readme。。。我记得我专门警告了的

      9月前 回复
      • Leaf

        @learningman: 啊这,请问下编译内核时怎么样添加flag(

        9月前 回复
        • learningman博主

          @Leaf: 你先 make kernel_menuconfig
          然后 Networking support -> Networking options -> Network packet filtering framework (Netfilter) -> Core Netfilter Configuration -> NFQUEUE and NFLOG integration with Connection Tracking 打开
          或者你直接改 KCONFIG 文件也行
          这个是编译内核的选项,这个提示是说你内核不支持,ua2f本身不会有变化的

          9月前 回复
          • Leaf

            @learningman: 好的非常感谢(顺便说下这评论系统半天发不出去.jpg)

            9月前
          • learningman博主

            @Leaf: emmm 因为这个评论会发邮件通知我,是实时的,然后就阻塞了
            我不知道怎么在php上搞异步,就先这样吧(

            9月前
  • coruarua

    三周前开始天天被触发sangfor的封禁((

    9月前 回复
  • SunBK201

    mnl_cb_run 调用返回错误

    8月前 回复
  • corpa

    root@K2P:~# iptables -t mangle -A ua2f -m set –set nohttp dst,dst -j RETURN
    –set option deprecated, please use –match-set
    iptables v1.8.4 (legacy): Set nohttp doesn’t exist.

    root@K2P:~# iptables -t mangle -A ua2f -j NFQUEUE –queue-num 10010
    iptables v1.8.4 (legacy): unknown option “–queue-num”

    就这两个错误,不知道怎么整

    8月前 回复
    • learningman博主

      @corpa: 第一个是我的问题,启动的时候要手动创建一下ipset的set,我回头补上文档
      第二个是因为你没有NFQUEUE这个target,编译系统的时候记得加上

      8月前 回复
      • corpa

        @learningman: 我是跟着你的教程做的,iptables-mod-nfqueue那也是M,可是编译出来,就还是有第二个问题

        8月前 回复
        • learningman博主

          @corpa: 那我不知道了。。。我这帮不了你
          你最好找个你边上的会的人一步步看你操作

          8月前 回复
          • corpa

            @learningman: 那谢谢了,希望能早点完善第一个问题: )

            8月前
          • corpa

            @learningman: 绝了,找到问题了,iptables版本是1.8.4,iptables-mod-nfqueue是1.8.7的,更新一下就好了xd

            8月前
  • corpa

    root@ImmortalWrt:~# iptables -t mangle -A ua2f -p tcp –dport 80 -j CONNMARK –set-mark 24iptables v1.8.7 (legacy): unknown option “–set-mark”Try `iptables -h’ or ‘iptables –help’ for more information.
    root@ImmortalWrt:~# iptables -t mangle -A ua2f -m connmark –mark 23 -j RETURNiptables v1.8.7 (legacy): Couldn’t load match `connmark’:No such file or directoryTry `iptables -h’ or ‘iptables –help’ for more information.root@ImmortalWrt:~#

    我重新编译了一个固件,顺便把ua2f也写进去了,然后会有这些报错

    7月前 回复
    • learningman博主

      @corpa: Couldn’t load match `connmark’啊。。。
      你这没有iptables connmark模块

      7月前 回复
      • corpa

        @learningman: 大佬,我整好了,成功运行,顺便写了个教程,网址在这:https://blog.doreoom.com/736.html
        不能转载的话我就删了

        7月前 回复
        • learningman博主

          @corpa: 可以,顺便建议你重新编译一下,我刚刚做了一些性能上的优化

          7月前 回复
      • corpa

        @learningman: ua2f是不是有bug,我装了mwan3后它就不会正常工作

        7月前 回复
        • learningman博主

          @corpa: 设计原因,UA2f会在数据包上打一个标记,用来确定这个包的类型。mwan3也会做同样的事,而且用的标记点冲突了。

          7月前 回复
      • corpa

        @learningman: 现在还是经常会有 :Exit at breakpoint 10,

        7月前 回复
        • learningman博主

          @corpa: 到GitHub提个issue,把完整日志发一下

          7月前 回复
  • Coco

    大佬,这个不能单独编译么?(新人报道)我单独编译了下,还有内核,把刷好的OpenWrt更新了内核,也装好ua2f,但就是运行报了一页的mnl_cb_run:Invalid argument,是不可以这样么?

    7月前 回复
    • learningman博主

      @Coco: 没见过这个错误,我猜是libmnl版本低了,我是1.0.5

      7月前 回复
      • Coco

        @learningman: 好滴,谢谢大佬,我试着更新下

        7月前 回复
      • coco

        @learningman: 现在又成Operation not permitted了,试了好多遍,呜呜呜~~~~~

        7月前 回复
        • learningman博主

          @coco: 所以还是和系统一起编译吧。。。
          依赖libnetfilter-queue 1.0.5, libmnl 1.0.4

          7月前 回复
          • Coco

            @learningman: 敢问大佬用的是官方源码么?还是L大?尽量跟你的保持一致(手动滑稽)

            7月前
          • learningman博主

            @Coco: 我用的是openwrt的最新,coolsnowwolf的lede好像libnetfilter-queue版本低了

            7月前
          • coco

            @learningman: 昨天用他的源码编译过一次固件,出错,也不知道是哪的问题,这么一说的话,我再去整整编译下固件,再次感谢

            7月前
  • coco

    真的是要枯了,完整的编译了固件,内核也设置了,正常刷固件,系统日志里边都是类似UA2F[7734]: UA2F has inited successful,但就是终端运行ua2f就显示mnl_cb_run: Operation not permitted

    7月前 回复
    • coco

      @coco: 也确定是libnetfilter-queue 1.0.5, libmnl 1.0.4

      7月前 回复
      • learningman博主

        @coco: 我觉得好像是你开了两个UA2F。。。
        如果已经有一个UA2F在运行了,第二个启动的确实是会报这个错误

        7月前 回复
        • corpa

          @learningman: 我看系统进程的时候就是显示有两个UA2F的进程…不知道正不正常。反正ua2f有时候会不正常运行

          7月前 回复
          • learningman博主

            @corpa: 正常的,一个是工作进程,一个是监控进程

            7月前
        • coco

          @learningman: 虽然是报这个错误,我试了试但可以正常运行hiahiahiahia,校园网也没在掉了,大佬威武

          7月前 回复
  • AL

    感谢校园网让我学会了这么多 。。。。。。一种植物

    6月前 回复
  • corpa

    额外规则那里,那些需要怎么配置呢,最近校园网好像更新了,前段时间都用的好好的,现在又检测出来了

    6月前 回复
    • corpa

      @corpa: ttl那个规则应该是这个吧:iptables -t mangle -A OUTPUT -j TTL –ttl-set 64
      PREROUTING我试了没效果啊

      6月前 回复
      • learningman博主

        @corpa: 这个按每个人自己的网络环境配置的,不建议直接抄

        不过我觉得你配错了。。。

        6月前 回复
  • 清梦

    ua还是没变,而且手机有网电脑没网
    日志显示
    Mon Apr 19 18:38:09 2021 user.notice : Try to start UA2F processor at [7701].
    Mon Apr 19 18:38:09 2021 user.notice : UA2F processor start at [7701].
    Mon Apr 19 18:38:09 2021 syslog.notice UA2F[7701]: Pipset inited.
    Mon Apr 19 18:38:09 2021 syslog.notice UA2F[7701]: UA2F has inited successful.
    Mon Apr 19 18:38:09 2021 syslog.err UA2F[7701]: Exit at breakpoint 10.
    Mon Apr 19 18:38:09 2021 user.err : Child sucide.

    6月前 回复
  • 锦七

    作者你好,我这里的网络用了你的那个ua2f确实能用了,但是只能维持一段时间,维持时间是随机的,还是会有无缘无故断网的事情发生

    5月前 回复
    • learningman博主

      @锦七: 你这段话没有给我提供任何信息。。。我不知道你是什么情况

      5月前 回复
  • 2732205112

    UA2F[3773]: Exit at breakpoint 10

    5月前 回复
  • 星念

    https://github.com/XingNian-www/UA2F_Build
    尝试用在云编译编译了下,感觉还行,有需要的可以一用

    5月前 回复
    • learningman博主

      @星念: mips的ipk release里就有,不用手动编译的

      5月前 回复
      • 星念

        @learningman: 我这个主要是用来直接编译固件,软件包不是还要依赖吗,而且还需要内核支持

        5月前 回复
  • danno

    打不开学校的认证页面有什么头绪吗,172开头的ip地址,“–dport 80 -j CONNMARK –set-mark 24”这个规则屏蔽就能打开了

    5月前 回复
  • Cool_Loong

    这是我之前用的固件,我把它克隆到了我的仓库https://github.com/CoolLoong/AutoBuild-Actions,编译完成后运行ua2f提示mnl_cb_run: Not supported,可是我明明已经修改内核添加NETFILTER_NETLINK_GLUE_CT了,在Scripts/x64.sh中完成,请大佬你帮我看看到底是哪出问题了

    5月前 回复
  • Zepto

    草,我在被 itsc 封锁之后竟然搜到了您的文章

    5月前 回复
  • 星念

    ua.zhezhiyu.xyz域名要过期了,我换成了ua.233996.xyz,十年域名+甲骨文白嫖,应该可以一直用下去了

    3月前 回复
    • learningman博主

      @星念: xmsl,我甲骨文死活不给过,两张卡都不行

      3月前 回复
      • 星念

        @learningman: 老玄学了哈哈哈,我可以给你一个arm的服务器当玩具,韩国首尔的服务器,只要不把我上面的V2ray关掉就行(

        3月前 回复
  • 凡凡爱吃毛豆

    请问有直接刷入即食的K2P的固件吗 不是计科专业 确实有点难以下手呀 感谢作者大大的付出~~

    4周前 回复
  • Y_R

    我开启ua2f后会出现断流现象,是ua2f的bug还是我配置问题,还是说学校有什么新的检测方式?

    1周前 回复
    • learningman博主

      @Y_R: 我们需要先来定义一下什么叫做断流。。。

      1周前 回复
      • Y_R

        @learningman: 我个人理解是短时间断网,一般突然断网几十秒到几分钟会自动连回去。

        1周前 回复
        • learningman博主

          @Y_R: 先syslog看日志,如果是UA2F挂了抓包给我我看下怎么修,如果不是那就说明你们学校还部署了别的检测方式,UA2F只负责处理UA

          1周前 回复
  • PianCat

    Q:为什么默认UA要使用IE8兼容的Mozilla/4.0?
    是为了与某些上古的,没有HTTPS的网站保证兼容性的同时不影响访问吗?

    2天前 回复
  • Cool_Loong

    最近更新了一下固件,然后使用同样的防火墙规则,出现了腾讯系软件的图片加载不了的情况,例如QQ里面的图片,把防火墙规则删除之后又正常访问,这是什么情况

    1天前 回复
    • learningman博主

      @Cool_Loong: QQ的问题,没有计划解决

      1天前 回复
      • Cool_Loong

        @learningman: QQ图片显示慢,是否是因为我使用了UCI命令,然后又在防火墙里面添加了规则,重复导致的原因。我刚刚把防火墙规则删除了之后,图片加载速度正常了,在ua检测网站上,标准80端口的UA并没有被修改,非标准1234端口上的UA显示正常被修改了,我查看日志显示mnl_cb_run: Operation not permitted,这样是正常运行的情况吗。

        15小时前 回复
        • learningman博主

          @Cool_Loong: Operation not permitted是重复运行了,不正常
          最新版uci那些规则不是我写的,我也不太明白

          13小时前 回复

Zxilly's Blog

校园网路由器多设备伪装指北
如何在一个部署了流量识别设备的校园网中使用路由器?
扫描二维码继续阅读
2020-11-29