diff --git a/Makefile b/Makefile index 59e1ab6..27e1c6f 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=xmurp-ua -PKG_RELEASE:=14 +PKG_RELEASE:=15 include $(INCLUDE_DIR)/package.mk diff --git a/README.md b/README.md index e29edba..1a3da09 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ -  喵喵喵,这里是一个修改 UA 的小模块。细致地讲,就是用在 OpenWrt 上修改发给外网 80 端口 GET 和 POST 请求的 UA 字段 为`XMURP/1.0`再加很多个空格的内核模块,用来防止学校检测到使用代理(接路由器)。具体情况,百度“厦大路由”然后看我的简书文章就好了。在 WNDR4300 OpenWrt 18.06.1(内核 4.9.120)测试似乎没问题。 +  喵喵喵,这里是一个修改 UA 的小模块。细致地讲,就是用在 OpenWrt 上修改发给外网 80 端口 GET 和 POST 请求的 UA 字段 为`XMURP/1.0`再加很多个空格的内核模块,用来防止学校检测到使用代理(接路由器)。具体情况,百度“厦大路由”然后看我的简书文章就好了。在 WNDR4300 OpenWrt 18.06.1(内核 4.9.120)测试似乎没问题。前两天还适配了一下 4.14的内核。 + + 如果有一些包不希望被改 UA,只要在防火墙规则里将 MARK 的最低位设置为 1 就可以了。例如: + +``` +iptables -t mangle -A PREROUTING -i br-lan_raw -j MARK --set-mark 1 +```   这是我第一次在 GitHub 上搞自己的仓库,可能会有些小问题哈。要是有的话,请各路大佬指正。 \ No newline at end of file diff --git a/src/xmurp-ua.c b/src/xmurp-ua.c index 5946e6b..0751f47 100644 --- a/src/xmurp-ua.c +++ b/src/xmurp-ua.c @@ -166,6 +166,8 @@ unsigned int hook_funcion(void *priv, struct sk_buff *skb, const struct nf_hook_ data_end = (char *)tcph + ntohs(iph->tot_len) - iph->ihl * 4; if(data_end - data_start < 4) return NF_ACCEPT; + if(skb->mark & 0x00000001) + return NF_ACCEPT; // 决定是否发送到下一层 if(catch_next_frag && iph->saddr == saddr && iph->daddr == daddr &&