增加了通过 MARK 过滤的功能。

This commit is contained in:
CHN-beta 2019-01-29 22:02:51 +08:00
parent 1e506db7ab
commit 5f330d7656
3 changed files with 10 additions and 2 deletions

View File

@ -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

View File

@ -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 上搞自己的仓库,可能会有些小问题哈。要是有的话,请各路大佬指正。

View File

@ -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 &&