路由折腾记 第三弹

Reading time ~1 minute

启用 PPTP

鉴于有些人 OpenVPN 还是用不太溜,然后想了想,复旦内网目测没封 PPTP,只是出外网会封,于是就决定顺手再开了个 PPTP 的 VPN。

不得不说,PPTP 这个 VPN 开起来还真是方便,按照这个教程感觉没多少配置就搞定了,路由表不用推,也没得推 -_-#

不过唯一遇到的问题就是,opkg install pptpd 会发现找不到 pptpd,原来是 OpenWrt Chaos Calmer 已经默认将 pptpd 移除了,于是找到这个地方下的,也不知道这网站靠谱不靠谱……

不过企图开起 v6 支持的时候却给跪了,按网上说的在 /etc/ppp/options.pptpd 中加入 ipv6 , 还是连不上,netstat -ltp 也发现仍旧只是监听 0.0.0.0 也是郁闷。然后 OpenWrt 上面也没带 socat,于是想了想,反正也可以认为用不到,就懒得搞了。

优化路由表

强迫症又发作了,于是决定把路由表优化下,毕竟亚洲 IP 判断还是太宽了。

然后本来是打算用 Best Route Table 来做的,然后这玩意还支持自定义输出格式,简直 perfect,于是生成命令如下

1
bestroutetb -p custom --gateway.net=1 --gateway.vpn=0 --rule-format='iptables -t nat -A SHADOWSOCKS_WHITELIST -d %prefix/%length -j MARK --set-mark %gw'$'\n' -o mark-best-route

一帆风顺的装上后,看的是时候想起来个问题,iptables 和路由表不一样,不是智能匹配最范围最精确的规则,而是从上往下一个个的匹配,虽然基于 bestroutetb 生成的表的包含顺序,从上到下匹配下来,我们得到的 mark 的值确实是对的,但是这意味着每个请求都要把着一千多个规则全部跑一遍啊,并且由于相互包含,导致不能像 chnroutes 那样一旦匹配到一个就可以返回,作为个强迫症患者这样简直不能忍啊!

于是突然想起来似乎有个叫 ipset 的东西,看了一下,发现很适合搭配 chnroutes 的那个白名单表,这样匹配效率超高不解释。

chnroutes 实际上也就是从 APNIC 的 IP 地址分配表 中提取中国的 IPv4 部分来生成的,我们这里鉴于格式需要自己处理,于是就自己写了,不过借用下 chnroutes 的提取部分代码了。

生成代码在此,鉴于比较懒,直接输出到 stdout,运行时做个重定向就好,生成好后,记得还要修改下之前的 ss-fireware,将白名单部分改成:

1
2
3
ipset destroy china_list
ipset -N china_list nethash
iptables -t nat -A SHADOWSOCKS -m set --match-set china_list dst -j RETURN

弄好后重启,也不知道是不是心理作用,就是感觉跑的飞快~~~

最后附上我下的 ipk

挂载网络文件夹后网络故障时文件操作命令卡死

挂载 NFS 或者 Samba 的时候,经常会由于网络故障导致挂载好的链接断掉。此时如果尝试进行 ls、cd、df 等各种命令,只要与此目录沾上边,就会卡住。如果使用了类似 oh-my-zsh 这种配置的,只要在网络目录中,弹出命令提示符前就会直接卡住。这个时候第一反应就是...… Continue reading

路由折腾记 第四弹

Published on September 02, 2017