博文

排错和解决 Clash 上网需要等待 5 秒的问题: DNS

之前 猫猫 找我说用我的代理很卡,体验贼糟糕,每个请求都得五秒钟才能得到相应,并且在不同的网络环境和设备上都出现过这种问题,但我这里从来没出现,而且节点延迟测试很正常。百思不得其解。 后来跑他家试了一下,诶,还真是这样,而且也并不是 Tun 的问题。这体验差到我都受不了。  于是老样子,本地编辑配置文件 log-level: debug + 手动运行内核看日志。 看了半天有眉目了,是在 DNS 请求的时候发生的问题。我配置的 fallback 内的 DNS 服务器总是返回了结果,然后超时时间大概就是五秒钟。  那是怎么解决的呢,让我慢慢说:  Clash 是怎么处理 DNS 的呢?也挺简单的。  就是向着配置文件里配置的 nameserver 和 fallback 条目中的 DNS 服务器进行并发查询,然后再判断返回的 IP。如果返回的 IP 是国外的话,就使用 failback 条目中的解析地址。 也可以简单的理解为 nameserver 配置国内 DNS 或是国内网站使用的 DNS, fallback 来配置国外网站的 DNS。  但这时候就有一个问题了,你说 fallback 得配置国外的 DNS,但如各位所知,向国外的 DNS 服务器查询 53 或者 TCP 53 都早已经被污染或是干扰了,那么怎么办呢?我之前是配置了使用 DoT(853) 或者 DoH(443) 来解决这个问题。  那为什么问题又出现了呢? 原因是前一阵墙对 Google 和 CF 的 DoH/DoT 查询进行了 干扰 ,而 Clash 是 一直 都没有办法经过代理查询 DNS 的,这个时候就出现了一个问题。会导致访问网站的时候 Clash 一直挂起你的连接,来等待 fallback 部分配置的 DNS 服务器超时(应该是 5s 左右)。  总而言之就是 Clash DNS 配置没法走代理,但现在直连又被干了。 那么,是怎么解决的呢?  Clash-Meta 这个内核我也在用了,他们的思路很好,直接支持了 DNS 经过代理查询,只需要 稍微修改 配置文件就可以了。 但是,官方内核呢?嗯....得用 有点 Hack 的做法 。 先用 Clash 内核的 Tunnel 功能,将国外 DNS 的 443/853 端口在本地(127.0.0.1)开一个端口转发,然后在 Clash

文章 "I don't like computers" 的评论

文章地址: I don't like computers - Adam Williamson HackerNews 评论:  2022   2016 我摘抄了下面的评论: "I think it's worth pointing out the the saying "If you can turn your hobby into your job, you'll never work a day in your life" is absolutely wrong, and is terrible advice. A hobby is something that you do for fun, and that you derive enjoyment from. That means that, if anything begins to taint that activity (like project management, endless meetings and incompetent coworkers/customers), you can lose not only your drive at work, but also the enjoyment outside of it, which hits twice as hard. " 下面是我的想法: 好吧,我的看法可能和文章/评论的相似,先不谈这些科技带来的好处吧。 技术在进步和发展,但这种发展是朝着不可控的方向进行的。普通人会越来越难抵抗计算机/在线服务对生活的入侵,问题是...边界在哪里? 作为一般情况下比身边人更熟悉电脑的人,我有广告拦截器让我不至于看到主题无关的内容,我可能能掌控什么资料给什么公司/服务,我也知道如何筛选过滤这些推送/主动获取的信息,等等。这些例子可能是关于隐私的,也可能是关于精神/注意力的。同时我也知道什么时候应该离线(指断开互联网),但普通人没有这个能力。 —— 他们会陷进科技产品和服务带来的美好幻象里,越陷越深,并失去对这些服务/自己的注意力的控制能力。 随着我们对这些事情的依赖逐渐加深,不可避免的会遇到这样的事情: 你工作、生活所依赖的东西出问题了怎么办?你的社交/工作/生活都依赖互联网,如果有一天

为 SmokePing Web 添加过滤器和刷新控制

图片
添加功能: 可关闭的 JavaScript 重载计时器 详情内容的过滤(按监测点/关键词) 安装: 推荐 SmokePing 2.8.2,代码是在这个版本编写的,我不知道旧版本能否适用。  但是我尝试了 2.7.x 也是可以用的,所以大概无所谓...? 下载 smokeping_add.js ,移动到 SmokePing 的网页目录中的 js 文件夹内。 编辑 SmokePing 的配置文件 /etc/smokeping/config ,在 Presentation 的设置下面将 htmltitle 打开。 *** Presentation *** template = /etc/smokeping/basepage.html htmltitle = yes graphborders = no charset = utf-8 然后编辑 /etc/smokeping/basepage.html ,在页面尾部 <script> 区域添加: < script > let refresh_timeout = < ## step ## > </ script > < script async src =" js/smokeping_add.js " type =" text/javascript " > </ script > 哦,别忘了我们还有 SmokePing 原本的自动刷新。 这个时候需要在文件顶端找到 <head> 的区域,将 <META http-equiv="Refresh" content="<##step##>"> 这句话删除或是使用 <noscript> 包裹起来,类似这样: < noscript > < META http-equiv =" Refresh " content =" <##step##> " > </ noscript > 就完成了。 也许你想做更多: 为你的 Smokeping 添加媒

为你的 Smokeping 添加媒体链接预览。

图片
 媒体链接预览其实也是个公开的协议了,协议内容请见  Open Graph protocol 。 那只需要这样: 在 head 内添加: <meta property="og:title" content="SmokePing for <##title##>" /> <meta property="og:type" content="website" /> <meta property="og:image" content="https://i.loli.net/2021/09/20/CXqbigWNxZFuwJn.png" /> <meta property="og:url" content="你的网页 url" /> <meta property="og:description" content="<##remark##>" /> 就好了。

修复 MacBookPro 15 2015 的扬声器破音问题

图片
 在使用了多年之后,我的 MBP 15 的扬声器逐渐出现了破音的问题。 想着干脆换了得了,在淘宝上购买了副厂的兼容扬声器。 一番拆解更换之后发现效果没有更好,反而更差了,于是做了个对比,将拆下来的原装扬声器直接插在了主板上播放音乐。 发现效果恢复了,也没有出现破音问题。于是猜测是别的地方问题。 进行了一些清理之后的扬声器孔。 通过灯的照射发现是传出扬声器的外壳开孔阻塞了。于是使用电动牙刷和废旧的刷头进行清洁(并不容易) 进行了一番清洁之后,扬声器出声音的区域基本上都疏通了。 这个时候再播放音乐,破音的问题消失了,并且音量也回到了之新机的水平。 以及完全不推荐购买淘宝上的副厂扬声器,宁愿贵也要购买拆机的版本。

获取 ASN 下的所有 IP 段

图片
其实很简单,就一句话。  whois -h whois.radb.net AS137256 -i origin | egrep -e "route: " -e "route6: " | awk '{print $NF}' 出来是 CIDR 的格式。 能拿来做什么呢? 自己看呗。 也许是不那么精致的 "按照 AS 号进行分流" Update on: 2023-06-27: 实际上 radb 自己有查询语法: https://www.radb.net/support/informational/query.html  所以你也可以这样去查询: whois -h whois.radb.net '!6AS137256'

如何在 Firefox 中免费的使用 Google 翻译 API 进行页面翻译

图片
事情是这样的: 我前一阵切换到了 FireFox,但我暂时还不能离开网页翻译。 于是自己搜了下没办法就拜托小猫(@GroverChou)看了看,就有了这个 启用 Firefox 内置全页面翻译功能 然后我在 Google Cloud 配置启用了翻译 API,觉得最多一个月也就 3-10 USD(几百万字符,这样看好像还挺多),就没有设置想对应的预算和限制。 中间的时间,我就还是按照往常的习惯继续使用,直到...半个月之后。 招行提示: "您的一笔来自 Google*Cloud *** 的交易已成功。金额: 91.97 USD"。 我瞬间就慌张了起来,赶紧去控制台查询详细结算信息。 去翻了结算部分的页面,提示 " Translate Neural Translation Model Predictions" 这个服务使用了 109 USD,然后折扣掉了 10 USD。 因为这个命名的原因(或是翻译/我理解的不同)我当时认为,Google 搞错了或者 FireFox 使用了更高层级也更贵的 AutoML 来进行翻译。 在这时,我看到配额页面里有写着我只使用了 "google.cloud.translate.v2.TranslateService.TranslateText"(也就是基本 API),于是去问客服,为啥配额上写着我只用了基本 API 却收取了更高级别的费用。 客服给我好好算了一笔账(?),我使用了 500多万字符,按照费率(100w/20 USD) 的话就差不多是上面哪个价格。 这时候我看着价格表才反应过来,原来这就是基本 API 的费率。 去问去找客服确认,然后得到了确定的答案。于是只好老实停掉 API 付账单了。 页面翻译的事情另找出路。 那为啥个人用会有 500w 字符那么多呢( 配额页面说 API 调用次数是 1500 次,差不多一次 3000 字符。 按照网页去算的话,就挺合理的,而且我其实忽视了一点,那就是中文的一个词和英文的词,这字符量是不一样的。 那,怎么解决的呢? 总不能不用是不是(我也不想去白嫖别人泄漏出来的 api key。 在进行了一番搜寻之后,我找到了  google-translate-api  这样独立开启 API 并提供服务的库。 然后找了找,发现 firefox 的