[Drcai's Noob Guide] 番外篇 - 让测速狂人立刻扑街 ~

drcaidrcai 话题数:40会员, 大佬
最后编辑于 March 2019 教程 #0

首先回顾一下第一期 : (本期教程为上一期的拓展篇)
https://www.91yunbbs.com/discussion/624/

最近有机场厂长抱怨 : 被批量测速脚本弄得苦不堪言 ....
一帮无脑用户每天用SS之前都要帮所有节点测一次速 ...

大水管自然没问题 , 游戏线路当场扑街 - -.....

有人说用 SSPANEL的审计规则 ...
据我所知开源版的规则会应用于所有节点 . 当然你对测速深恶痛疾的话可以尝试一下
(.*\.||)(fast|speedtest|cachefly|hetzner)\.(org|com|net|de)

或者给单个节点屏蔽 :
来到你的 SS/SSR 后端 .....
编辑 ~/shadowsocks/asyncdns.py 440行左右的代码

def _send_req(self, hostname, qtype):
        req = build_request(hostname, qtype)
        for server in self._servers:
            logging.debug('resolving %s with type %d using server %s',
                          hostname, qtype, server)
            if "speedtest" in hostname or "nflx" in hostname or "fast.com" in hostname or "cachefly.cachefly.net" in hostname or "speed.hetzner.de" in hostname or "download.microsoft.com" in hostname or "api.ip.sb" in hostname:
                self._sock.sendto(req, ('一个自由发挥的IP', 一个自由发挥的端口))
            else :
                self._sock.sendto(req, server)

还要找到 def handle_event(self, sock, fd, event): 整段修改:

def handle_event(self, sock, fd, event):
        if sock != self._sock:
            return
        if event & eventloop.POLL_ERR:
            logging.error('dns socket err')
            self._loop.remove(self._sock)
            self._sock.close()
            # TODO when dns server is IPv6
            self._sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM,
                                       socket.SOL_UDP)
            self._sock.setblocking(False)
            self._loop.add(self._sock, eventloop.POLL_IN, self)
        else:
            data, addr = sock.recvfrom(1024)
            self._handle_data(data)

原理就是让 speedtest fast 还有 netflix 的CDN 解析不出来 ....
这里注意 fast用的是 netflix 同款 CDN 测速 , 含"nflx"的域名被拦截 , 即拦截了 netflix ...

当然有人自己做个 1gb.bin ,用IP访问.....或者我DNS 全部本地解析 ....那就直接绕过了- -
我 : 凭本事测的速 , 我不得不服 ~ 本贴意图是为了让无脑人士扑街 ...

又有人说到 : 菜伯伯 , 你自己不就是测速狂人么 - - 怎么会写这么一个教程 ???
我 : 干!!! 竟然忘了 ....

登录注册后才能评论。