前言

我在厦大读书。17 年小学期换宿舍后,新宿舍里要求用一个客户端联网,所以不能装路由器;我找到了获得真实的 PPPoE 用户名的方法,于是可以绕过绕过这个客户端联网,也可以安装路由器。除此以外,有时用客户端联网会出现一些奇怪的问题(我见过几例,网页打不开或者客户端报错什么的),也可以用这个办法,绕过客户端直接拨号解决。下面会介绍这个方法。

2018 年七夕前后,学校开始检测时间戳和 UA 来判断一个账号是否共享给了多台设备使用(不论是安装路由器还是在电脑上开热点)。如果检测到就会禁止账号联网半个小时(认证日志显示“检测到代理”);随后我也找到了绕过检查的办法。下面也会介绍这个方法。

2020 年补充:这篇文章写于很早之前,行文混乱废话多,请多多包涵。

本文最后更新于 2020 年 10 月 22 日(40442)。应该会长期更新。

如果有什么问题,可以加我们的群(QQ 748317786)寻找帮助,或者直接联系我(联系方式在网站主页可以看到)。求助前请确认自己已经仔细读过了教程,描述问题时尽可能清晰,不然可能没有人理你;当然,只是想在群里聊天的话,也非常欢迎。我一般不回答群里的问题,除非我觉得这个人已经把问题描述清楚了,或者我觉得和这个人探讨问题对我有益。

本文章使用 CC 4.0 BY-NC-SA 协议授权,啥意思呢,大概就是说:

  • 不允许用于商业目的。
  • 要原文转载的话,不用联系我,但是要记得署名,包括我的大名(陈浩南)以及原链接。
  • 如果基于我的内容再创作,新创作的内容必须同样是 CC 4.0 BY-NC-SA 协议。
  • 除此以外,随意发挥。

要是喜欢搞法律的话,可以看看这个法律意义上的申明,反正我不喜欢。

另外,本文仅仅发布在我自己的域名下(chn.moe)。如果你在什么论坛上发现类似的并且没注明出处,那不是我发的,那是他抄我。

免责申明与免被查水表申明

  1. 对于任何硬、软件的损坏,本人不赔偿,也不保证协助处理,哪怕这样的后果是因教程中的错误造成的;你需要自担风险。出现问题时,我如果有空应该会尽力帮助,但我没有能力也没有义务作什么保证。我自己因操作失误弄坏过两台路由器,读者也需要做好损失一台价值几十元或者几百元的路由器的心理准备,虽然一般不会发生这样的情况。另外,本教程中的内容会使你的路由器失去保修。
  2. 对于因为按照教程安装路由器而造成的信息泄露我不负责。请设置足够复杂的密码,并妥善保存。
  3. 厦大宿舍明令禁止安装路由器,相关文件点击这里可以查看。我在这里说清楚了:我绝对没有怂恿或建议任何同学安装路由器,安装路由器的行为完全是安装者的个人意志导致的,本人仅仅是作为技术交流的发起者而存在。请仅仅以学习研究为目的鼓捣路由器,并在安装好路由器之后 24 小时内再将之拆除;如果您喜欢上网,请按照学校指明的方式连接到互联网。如果学校根据校规等文件追究责任,与我无关。
  4. 不允许将此技术用于任何商业行为。
  5. 不要发表不文明的言论。在这件事情上,学校的做法很不厚道,但不要因此口吐芬芳。
  6. 厦大学生宿舍不需要出水费,实际上也没有逐宿舍安装水表,就不要来查啦。

简单地安装路由器(绕过客户端联网)

非常简单:

  1. 确认自己在“厦门大学宽带认证客户端”(就是电脑联网时需要使用的那个软件)中填写的那个学号和密码,以及选择的是电信还是移动。如果忘掉了,先把正确的试出来。

  2. 将学号按照下面的规则转换(实质上是 ASCII 码加四),在前面加上 {SRUN2},在后面加上 @cmcc(移动)或 @ctnet(电信),得到用户名。

    转换前 0 1 2 3 4 5 6 7 8 9
    转换后 4 5 6 7 8 9 :(半角冒号) ;(半角分号) < =

    例如,小明的学号为 19720192203456,移动,则用户名为 {SRUN2}5=;645=664789:@cmcc

  3. 用户名对应的密码就是“厦门大学宽带认证客户端”中填写的密码。

  4. 如果目标是解决网络问题,在电脑创建 PPPoE 拨号(不会就去百度),把用户名密码填进去,直接拨号就可以了;如果目标是装路由器,将这个用户名和密码按正常的方法填入路由器,按通常方法设置就可以了。

我最先找到的办法是在系统日志里找用户名;后来经过别人提醒,才发现用户名有这样的规律。

如果你不知道“半角”是什么的话:就是指英文输入状态下的冒号和分号,而不是中文输入状态下。

有的路由器用户名不能包含大括号,正确的解决办法是抱怨“这是什么垃圾路由器”然后换一台。

这样安装上的路由器可能会掉线,掉线频率主要与人品有关,次要的原因似乎还有使用频率、流量大小、太阳黑子爆发、楼下流浪狗生娃等等。掉线时实际上是学校发现你用路由器于是把你的账号封掉半个小时(可以在认证日志中看到)。可以暂且这样,如果不能忍受这样的掉线频率,再接着往下做。实测大部分人是可以忍受的。

在 OpenWrt 上配置防止共享检测

下面的内容中,我假设读者已经熟悉了通常情况下安装路由器的方法。你要是完完全全的小白,那这个不适合你,找你身边会的人或者在群里问问有没有人帮你吧。

安装 OpenWrt

这一节的目标是:得到一台安装好 OpenWrt 的路由器。但是安装 OpenWrt 没有统一的方法,自己找对应型号的资料吧。

OpenWrt 是什么?好吃吗?

巧克力味,嘎嘣脆

OpenWrt 也算是 Linux 的一个发行版,是一个安装在路由器上的操作系统。就算是小白也应该听说过 Ubuntu 或者 CentOS 之类的东西,OpenWrt 与它们没有太本质的区别。OpenWrt 对路由器的性能要求稍高,所以只有一部分中高端的路由器可以安装,超市随便买的几十块的路由器肯定不行就别折腾了。淘宝或者咸鱼上可以很容易找到可以安装 OpenWrt 的路由器售卖,但更推荐在闲鱼自己买一台路由器,自己动手安装 OpenWrt。最便宜大概三十块钱就可以买到(闲鱼二手极路由 1s),可以先买来练手,大概知道怎么回事了再买好的。

OpenWrt 的官网是 openwrt.org。在右上角直接搜索路由器的型号,大多可以找到一个详细的页面,上面会详细地说明这个型号是否支持安装 OpenWrt 以及在哪里下载、怎样安装等。也可以直接谷歌,常常也可以找到详尽的教程。不同型号的路由器,安装方法不尽相同;相同或相近型号的路由器、不同版本的 OpenWrt 安装方法相同;任何安装了 OpenWrt 的路由器都可以用来绕开检测的。当然了,如果无论如何也找不到相关的资料,那说明这个路由器性能太差没人去折腾,也就不能安装 OpenWrt;除非你是大佬,可以自己去适配。路由器的型号(Model)在路由器背面就可以看到。有时,同一个型号中还会分几个不同的硬件版本,不通刷。

除了官方,还有一大波第三方的 OpenWrt,开源的和不开源的都有。无论是 coolsnowwolf 的 LEDE 还是潘多拉还是什么 gswifi 其实都是从官方来的。不推荐小白搞第三方的,一方面是安全,那些不开源的你不知道它有没有加后门进去;另一方面是技术门槛,第三方的折腾起来比官方麻烦,小白也容易犯错。当然也有人喜欢第三方那种大而全的固件,这个根据自己兴趣选择即可。

配置上网

现在,你已经有了一台安装好 OpenWrt 的路由器。这一节的目标是,让你的 OpenWrt 可以上网,以及配置好无线。

方法和配置大多路由器差不多,只不过 OpenWrt 没有面向新手的一目了然的指引,而需要在繁多的设置中找出需要修改的那部分。

  1. 进入管理页面。如果是刚刷入的 OpenWrt 没有root账户密码,登入后按照提醒设置一个即可;如果已经有了密码,也可以修改:点击 Go to password configuration 按钮或 System -> Administrator(管理权)。

    • Password(密码):填写你想好的管理员密码。
    • Confirmation(确认密码):再填一遍。

    点击 Save & Apply(保存并应用)。

如果你不知道路由器的管理页面地址,可以接好路由器后打开命令行,windows 输入 ipconfig 并回车,linux 和 MacOS 输入 ifconfig 并回车,寻找“默认网关”或“default gateway”一项。新安装的 OpenWrt 管理页面地址一般是 192.168.1.1

  1. 点击 Network(网络)-> Interfaces(接口),点击“WAN”对应的 Edit 按钮。

    • Protocol(通信协议):改选为 PPPoE,然后点击出现的 Switch Protocol(切换协议)按钮。
    • PAP/CHAP username(PAP/CHAP 用户名):填入之前由学号转换得到的用户名。
    • PAP/CHAP password(PAP/CHAP 密码):填入对应的密码。

    点击 Save & Apply(保存并应用)。这时,路由器本身和有线网已经可以上网了。

  2. 点击 Network -> Wireless(无线)。如果提示 Disabled(已禁用)就点击 Enable(启用)。可能只有一个 2.4G 的,也可能有一个 2.4G 的、一个 5G 的。点 2.4G 的“编辑”。

    • ESSID:填 WiFi 的名字。

    点击 Wireless Security(无线安全)。

    • Encryption(加密):改选为 WPA2-PSK
    • Key(密码):填 WiFi 密码。

    点击 Save & Apply(保存并应用)。

    如果还有一个 5G 的,就一样地配置,只是 Channel(信道)需要选择 147 或更高。

    这时,WiFi 就可以正常联网啦。

配置防检测

接下来的步骤必须联网才行,进行之前先确认已经可以使用路由器的网络打开百度。另外,如果你现在是在手机上看我的这篇文章,强烈建议你接下来改用电脑看,可以方便地复制粘贴一些代码;如果你非要手动打代码,注意不要打错,对于小白来说,一个空格都不要错。

对于厦门大学,防检测需要做两步:同步局域网内电脑的时间,以及修改 HTTP 头的 UA。

同步时间

NTP 就是用来同步两台电脑上的时钟的协议。接下来先启用 OpenWrt 自带的 NTP 服务器,然后将局域网内所有时钟校正的请求都发给路由器上的 NTP 服务器(也就是说,无视局域网内的电脑原本想要和哪台服务器同步时间,而强制将路由器上的时钟作为标准),这样局域网内所有的电脑上的时间都会变得一致。

只需要在管理页面中修改几个设置就可以了。

  • 配置 NTP 服务。点击 System -> System。

    • 勾选 Enable NTP client(启用 NTP 客户端)和 Provide NTP server(作为 NTP 服务器提供服务)。
    • NTP server candidates(候选 NTP 服务器)四个框框分别填写 time.xmu.edu.cncn.pool.ntp.orgpool.ntp.orgtime.apple.com

    点击 Save & Apply 按钮。

  • 配置防火墙转发。点击 Network -> Firewall(防火墙),然后点击 Custom Rules 标签,在大框框里另起一行,添加下面的代码:

    1
    2
    3
    4
    5
    6
    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.1.1

    第六行最后的 192.168.1.1 需要修改为你的路由器的管理页面地址。例如,你的管理页面地址是 192.168.10.1,那么这一行代码需要修改为:

    1
    iptables -t nat -A ntp_force_local -s 192.168.0.0/16 -j DNAT --to-destination 192.168.10.1

    如果你的网络不在 192.168.0.0/16 范围内,那么前几条也得对应着改。家用路由器一般都在这个范围内。

    然后点击 Restart Firewall(重启防火墙)。

  • 确认效果。在 Windows 电脑上,打开控制面板,在右上角查看方式处选择小图标,然后点击“日期和时间”。点击 Internet 时间 -> 更改设置,点几次“立即更新”,直到提示“时钟在 xxx 与 xxx 同步成功”。这时,暂时地拔掉墙上接口与路由器之间的网线(断开了外网的连接),再点一次“立即更新”,应该仍然提示成功,这说明 NTP 请求已经被劫持到了路由器自身而不是外网(否则网线都拔了,怎么可能成功呢)。记得把网线插回。

修改 HTTP 头的 UA

UA 中包含了操作系统版本等信息,而 HTTP 协议没有对这些信息加密,因此别人可以从这里看到这个数据包发自 Windows 电脑还是安卓手机等等。接下来把所有 HTTP 头中的 UA 都改得一样。

有两种方法来修改 UA,一种是使用 Privoxy,一种是使用 xmurp-ua,二选一即可。也有很多人喜欢用 Nginx,并且据说比 Privoxy 好用;但这个门槛比前面的高,会用的人都会,不会的我在这里也说不清,故不介绍,想尝试可以参考这里。另外,修改 UA 还会导致其它的异常状况,稍等我会说明如何设置例外。

使用 Privoxy 修改 UA

除非是软路由(性能可以和笔记本相比的路由器),否则不推荐这个方案。如果在普通的路由器上使用这个方案,会导致会导致 HTTP 协议的内容传输缓慢(比如 QQ 发送图片会特别慢,有的下载也会特别慢,Bilibili 手机客户端看不了视频等),建议使用下一节的方案。

接下来,会安装好 Privoxy 并正确配置,然后将所有 HTTP 流量转发给 Privoxy 代理,并在 Privoxy 中替换 UA。

我已经很久很久没有碰过 Privoxy 了,这个方法也不再更新。所以下面的方法可能和最新的 OpenWrt 有出入,请在理解原理的前提下灵活机动。

安装

可以先尝试自动安装。

  • 进入路由器管理页面,点击 System -> Software(软件包)。
  • 点击 Update lists(刷新列表)按钮,等待几分钟。如果之后看到了很长很长的软件列表(可能需要刷新一下),那就是成功了。要是老不成功,可能是晚上网络太差了,白天上网人少的时候试试,或者手动安装。
  • 在 Filter(过滤器)中填写 luci-app-privoxy,点击 Find package(查找软件包)按钮。点击下方“luci-app-privoxy”对应的 Install(安装)按钮。如果看到有一个 Services(服务)菜单,菜单里有 Privoxy WEB proxy(Privoxy 网络代理)(可能也需要先刷新一下),那就是成功了。

也可以手动安装。

  • 进入路由器管理页面,点击 System -> Software(软件包)。点击 Configuration(配置)选项卡。

  • 在 Distribution feeds(发行版软件源)中,可以看到很多行,每行都有一个网址结尾。

    • 打开以 base 结尾的网址,下载 zlib。
    • 打开以 packages 结尾的网址,下载 libpcre 和 privoxy。
    • 打开以 luci 结尾的网址,下载 luci-app-privoxy。

    libpcre2 和 libpcre 不同,不要下载错了。同理,zlib-dev 与 zlib 也不同。

    另外,如果网页打开太慢或者下载太慢,并且自己有代理的话,建议开代理。

  • 点击这里,下载 OpenWrt 软件包安装器(我写的),解压、运行。依次安装 zlib、libpcre、privoxy、luci-app-privoxy。

    如果不愿意使用安装器,可以手动安装。将软件包 scp 到路由器,然后 opkg install xxx.ipk 即可。可以使用 winscp。如果你不知道 scp 是什么,那这个方法不适合你。新版本 OpenWrt 也内置了一个方便安装下载到电脑上的软件包的功能,可以尝试一下,我没试过。

  • 进入路由器管理页面,看到有一个 Services(服务)菜单,菜单里有 Privoxy WEB proxy(Privoxy 网络代理),那就是成功了。

配置 Privoxy 设置

点击 Services -> Privoxy WEB proxy。

  • Files and Directories(文件和目录):Action Files 删除到只剩一个框,填入 match-all.action。Filter files 和 Trust files 均留空。
  • Access Control(访问控制):Listen addresses 填写 0.0.0.0:8118,Permit access 填写 192.168.0.0/16。Enable action file editor 勾选。
  • Miscellaneous(杂项):Accept intercepted requests 勾选。
  • Logging(日志):全部取消勾选。

点击 Save & Apply。

配置防火墙转发

点击 Network -> Firewall(防火墙),然后点击 Custom Rules 标签,在大框框里另起一行,添加下面的代码:

1
2
3
4
5
6
iptables -t nat -N http_ua_drop
iptables -t nat -I PREROUTING -p tcp --dport 80 -j http_ua_drop
iptables -t nat -A http_ua_drop -d 0.0.0.0/8 -j RETURN
iptables -t nat -A http_ua_drop -d 127.0.0.0/8 -j RETURN
iptables -t nat -A http_ua_drop -d 192.168.0.0/16 -j RETURN
iptables -t nat -A http_ua_drop -p tcp -j REDIRECT --to-port 8118

点击 Restart Firewall(重启防火墙)按钮。

使用 Privoxy 替换 UA

在路由器的局域网中打开 http://config.privoxy.org/edit-actions-list?f=0,点击 Edit 按钮。Action 那一列中,hide-user-agent 改选为 Enable(绿色),在右侧 User Agent string to send 框中填写 Privoxy/1.0;其它全部选择为 No Change (紫色)。点击 Submit 按钮。

如果打不开这个页面,说明之前哪里的配置有错误,请仔细检查一下。

确认效果

打开 ua.chn.moe,网页上应该显示 Privoxy/1.0

设置例外

如果你会写 iptables 命令,那么建议将内网的所有 PC 放行。例如,增加这一句:

1
iptables -t mangle -I http_ua_drop -m mac --mac-source 01:23:45:67:89:AB -j RETURN

使用 XMURP-UA 修改 UA

我写了一个插件,可以直接在内核中修改 UA,效率比 privoxy 高,并且可以避免 privoxy 出现的各种问题,在普通路由器上推荐使用。源代码在这里

风险提示

因为这个插件是我写的,而使用任何程序都显然有一定风险,所以我要先撇清关系:

  1. 该插件完全开源,不含任何恶意代码。若您使用了别人编译的有恶意代码的版本造成了什么损失,请找编译的人算账,和我无关。
  2. 该插件编写难度大,作者不是专业写程序的也没那么多时间去投入,所以可能出现 bug 甚至损坏路由器;我不负责赔偿。不过,到现在为止,bug 常有,但把路由器搞坏还没出现过。

插件分为两个版本:master 分支(相当于稳定版,最新版本号为 34)和 dev 分支(相当于开发版)。当然稳定版也不见得有多稳定。下面列出现在仍然存在的问题,曾经存在但已经解决的问题不再列出:

  • 稳定版:不能百分之百地修改所有的 UA,多核路由器上漏得更严重,在一些检查得非常严格的学校仍然不能避免掉线而只能缓解,但对厦大来说足够使用了;这个问题在开发版中解决了。也有报告会导致网卡卡死,但我日常使用没有问题,也还没深入研究。

  • 开发版:有严重 bug,会导致路由器每隔几个小时或一天自动重启一下。我没空去修。

该插件本质上是在 netfilter 中注册几个回调函数来处理数据包,因此与很多加速技术不兼容,开启加速后会导致插件拿不到数据包也就无从修改。官方 OpenWrt 不会默认开启这些加速,但一些第三方固件会,使用前注意先关掉这些加速。在大多情况下,关掉这些加速除了心里不爽以外并没有明显影响,属于感知不强的范畴。

编译

编译软件包需要一定的 Linux 基础。如果你有这样的基础,可以自行编译,参考这里;如果没有这样的基础,但有时间和耐心去学习,也可以尝试;如果都没有,请找身边会的朋友编译,或在群里求助。当然,也可以直接找我帮忙编译。

安装

参考上面使用 Privoxy 的方法中的安装方法。

安装完成后,浏览器打开路由器管理页面,选择 System(系统)-> Kernel Log(内核日志),在最后几行看到有类似这样的句子:

1
2
[xxxx.xxxx] xmurp-ua: Started, version xx.
[xxxx.xxxx] xmurp-ua: nf_register_hook returnd 0.

这说明模块已经被成功加载。

确认效果

打开 ua.chn.moe,网页上应该显示 XMURP/1.0

如果没有修改成功,考虑是否是 mark 冲突了;也就是说,别的模块设置了 mark 的第九位,导致我的模块将这些流量当成例外而放行(具体看下文)。如果出现这样的情况,可以在内核日志中找到这样的句子(请忽略我的塑料嘤语):

1
2
[xxxx.xxxx] xmurp-ua: Mark matched. Note that all packages with the mark will be ACCEPT without modification.
[xxxx.xxxx] xmurp-ua: If the mark is not set manually, it maybe a conflict there. Find out which app is using the desired bit and let it use others, or modify and recompile me.

解决方法也是如上所述:最简单的办法,找到和本插件冲突的插件,卸载它们,然后重启。已知插件与 mwan3 冲突,原因是 mwan3 占用了 0x100 的 mark 位。可以卸载 mwan3 然后重启解决,或者在设置中将 Firewall mask(防火墙掩码)设置为 0x3E00。当然我不是故意取到和它一样的,而是之前和别的插件冲突了才改到这一位,没想到又冲突了。

设置例外

在防火墙自定义规则中,另起一行,加上下面的代码(其中的 01:23:45:67:89:AB 替换为自己电脑的 MAC 地址),点击“重启防火墙”,那么来自这台电脑的 HTTP 头 UA 就不会被修改;将命令删除或者在前面加一个#,点击“重启防火墙”,就可以恢复。

1
iptables -t mangle -A PREROUTING -p tcp --dport 80 -m mac --mac-source 01:23:45:67:89:AB -j MARK --set-xmark 0x100/0x100

对于 Windows 系统,在命令提示符中输入 ipconfig -all 并回车,“物理地址”一项就是 MAC 地址。

如果需要临时将所有的流量都设置为例外:

1
iptables -t mangle -A PREROUTING -p tcp -m tcp --dport 80 -j MARK --set-xmark 0x100/0x100

如果你稍稍了解 iptables 命令,就可以看明白我在干什么;如果不了解,也可以照葫芦画瓢。

使用 SRUN3 拨号

学校给的客户端其实是使用 SRUN3 拨号而不是 SRUN2,只是 SRUN3 在普通路由器上无法实现,SRUN2 在厦大恰好也可以拨通,就用它了。对于 OpenWrt,稍稍修改拨号脚本后就可以使用 SRUN3 拨号。最近,用 SRUN2 拨号经常会莫名掉线几分钟,SRUN3 就没问题,不确定是学校故意搞的鬼还是巧合。

下面是用 SRUN3 拨号的步骤:

  • 修改拨号脚本 /lib/netifd/proto/ppp.sh。搜索 username 关键字,可以找到这样一句:

    1
    ${username:+user "$username" password "$password"} \

    把它修改成:

    1
    ${username:+user "$(echo -e $username)" password "$password"} \

    如果你不喜欢用命令行,那么用 WinSCP 来修改也非常方便。

  • 打开管理页面,点击 Network(网络)-> Interfaces(接口),点击“WAN”对应的 Edit 按钮。用户名中的 {SRUN2} 需要修改成 {SRUN3}\r\n。举例来说,小明原来的用户名是:

    1
    {SRUN2}5=;645=664789:@cmcc

    那么,他需要改成:

    1
    {SRUN3}\r\n5=;645=664789:@cmcc

    保存并应用,等待几分钟,就可以正常使用了。

打赏支持

写文章不易,写插件不易。不考虑打赏一点钱吗?点此直达

(我很可爱,请给我钱.jpg)

参考资料

更新记录

  • 2018.9.15:修正修改 UA 中的一些错误。
  • 2018.9.15:补充使用 LEDE 的 SDK 时可能出现的一些问题。
  • 2018.9.16:确认不需要修改 IPID。
  • 2018.9.16:改正关于 HWNAT 的说法。
  • 2018.9.18:确认不需要做 NTP 服务。
  • 2018.9.20:在仅仅修改 UA 的情况下,学校今天中午封掉了我的路由器。赶紧又加载了 NTP 服务和改 IPID/TTL 的内容。看接下来会怎样。
  • 2018.10.3:优化 privoxy 配置文件。
  • 2018.10.4:将近两个星期过去了。这次确认,不改 IPID 和 TTL,只改 HTTP 的 UA 和 NTP 服务已经足够防止封杀。
  • 2018.10.10:整理了一下这篇文章,准备写那篇面向小白的了。
  • 2018.10.19(20454):再次整理了一下文章,完成了给小白看的版本。
  • 2018.10.22(20505):更改了使用 shadowsocks 翻墙的内容(实际上服务器并没有开 UDP 转发支持,而且我错误地配置了 mwan3,才导致的不稳定)。
  • 2018.10.24(20534):改正了教程里的两个小错误。如果之前照着教程走不成功的,可以再试一次。因为自己的疏忽给大家造了麻烦,我深表歉意。另外,学校封路由器,大家生气归生气,但是作为一个高素质的厦大学子,不要说脏话。
  • 2018.11.16(20853):发现一些路由器 sysupgrade 和 factory 固件都是.bin后缀,把这一点改正了。还有的人说升级 OpenWRT 之后路由器就开不了机了,虽然我觉得应该是他操作的问题,但还是加上了不升级的操作方法。另外,应该有人根本不介意路由器偶尔掉线,那这样的话,其实不需要这样复杂地配置。
  • 2018.12.15(20C63):解决了 HTTP 下载卡顿的问题。另外把额外配置的那一个部分删掉了,寒假专门写一篇文章吧。
  • 2018.12.15(20C64):对操作过程中可能出现的正常的卡死作了说明。补充了用 Privoxy 改 UA 可能导致的一些问题。
  • 2018.12.22(20D55):重写了改 UA 时的代码。
  • 2018.12.22(20D61):发现 UA 不是 GET 特有的字段,其它情况貌似基本是 POST 了(剩下的请求类型貌似不常用)。出这样的错误,显然就是专业计算机和非专业爱好者的区别吧。
  • 2018.12.24(20E13):删掉了改 IP 头的部分,改 UA 的代码也放到了 GitHub。不过这样看起来,这篇文章的主要内容反而不占主要的字数了。
  • 2018.12.25(20E24):把整个文章重新整理了一下,把新的方法写了进去。另外,Merry Christmas!
  • 2019.1.8(20G24):代码适配新内核、修复 BUG。
  • 2019.2.6(21233):把两篇文章合并了(放弃了教会所有小白的念头),删掉了很多废话。
  • 2019.2.8(21245):稍稍补充。
  • 2019.3.17(22403):博客搬家的过程中哪里被我搞坏了,就复制粘贴到了这里。这是我新博客第一篇不水的文章。
  • 2019.3.29(22552):发现原来查看 UA 的网站挂掉了,就自己做了个简易的。
  • 2019.4.17(22834):把语言改生动活泼了一些,以及一些其它的小修改。
  • 2019.7.6(23261):确认学校不再检测共享。不知道是彻底放弃了阻止网络共享的计划,还是计划在这个暑假再搞个更厉害的。
  • 2019.9.16(30013):学校又开始查了。
  • 2019.9.20(30052):发现 xmurp-ua 和 luci-app-shadowsocks 以及 offloading 冲突,所以修改了 mark 位置,增加了关于 offloading 的说明。
  • 2019.10.10(30345):源代码中完善了点。增加了 mark 冲突的检查。增加使用了 SRUN3 拨号的方案。
  • 2019.10.18(30455):把编译错误的的部分移到了 github。修复导致路由器崩溃的错误。
  • 2019.10.27(30605):增加了版权、商用之类的一些说明,稍修改 Privoxy 的说明。
  • 2020.1.29(31332):重构博客之后,把 SRUN3 的内容加回来了。
  • 2020.2.4(31422):增加了打赏链接。优化排版和内容。
  • 2020.10.22(40442):修整了一下内容。