博客 | Blog

My App Defaults 2023

刷RSS看到了别人参加App Defaults活动的文章,和我每个季度整理的个人工具库非常接近,不过这个只包括软件,主要是博客作者们的主力软件清单。看别人的默认软件很有趣,也能得到一些启发,所以自己也参加一下,供他人参考。

📨 Mail Client: Gmail Web, Mail.app
📮 Mail Server: Gmail, iCloud
📝 Notes: Obsidian, Telegram Saved Messages
✅ To-Do: TickTick
📷 iPhone Photo Shooting: Apple Camera
🟦 Photo Management: Photos.app, Google Photos
📆 Calendar: Google Calendar
📁 Cloud File Storage: Dropbox, Google Drive, OneDrive
📖 RSS: Miniflux, Reeder
🙍🏻‍♂️ Contacts: Google Contacts
🌐 Browser: Google Chrome
💬 Chat: Telegram, Wechat
🔖 Bookmarks: Pinboard
📑 Read It Later: Instapaper
📜 Word Processing: Microsoft Word, Google Docs
📈 Spreadsheets: Microsoft Excel, Google Docs
📊 Presentations: Microsoft PowerPoint, Google Docs
🛒 Shopping Lists: Obsidian
🍴 Meal Planning: n/a
💰 Budgeting and Personal Finance: Beancount
📰 News: RSS
🎵 Music: Spotify
🎤 Podcasts: Overcast, Spotify
🔐 Password Management: BitWarden

...

数字生活 2023Q4

发现进行增量更新并不方便,还是在进行增量更新后附上一份最新的工具库清单。

  • 输入
    • 新增了微信读书,参加了 365 天阅读挑战,使用 wereadx 这个项目自动阅读打卡
  • 输出
    • 几乎没有输出,所以也就没有变化。
  • 工具
    • Masked Email 服务转向 iCloud+ 提供的方案,放弃 fastmail
    • 放弃使用 Cubox,采用 archivebox 方案,每天自动导入新增的 pinboard 和 rss stared items,配合Chrome 插件 SingleFile
    • 退订了滴答清单高级账户
    • 放弃了 Readwise 作为定期回顾工具,考虑采用 Anki,但是目前还没有形成很好的习惯
    • ArchiveBox 网页存档
    • Recoll 本地全文检索
    • mbsync 邮件备份
    • Cryptomator 替代 gocryptfs 和 veracrypt,胜在各端都有方便的GUI客户端
  • 硬件
    • 闲鱼出售了 Kindle Paperwhite 因为彻底倒向微信读书,目前观望入手一台开放系统的电子书,墨案作为大屏电子书随时携带看书确实不太方便
    • 新入手了 iPhone 15 Pro, 256G
  • 信息流
    • 本地部署了 archivebox 服务,每天自动 import 当天的信息增量
    • instapaper -> pinboard 的链路有问题,pinboard 很久没有自动检测rss添加instapaper条目了,采用 ifttt 解决

最后,完整版本的工具库抄录如下

  • 输入
    • 社交网络:Twitter
    • 论坛:V2EX, [[hacker news]]
    • RSS 订阅 ([[miniflux]]),主要信息来源,订阅了包括博客、newsletter、微信公众号、微博时间线等内容
    • 视频:Youtube, Netflix, BiliBili
    • 音乐:Spotify
    • 播客:Overcast
    • 书籍:墨案 微信读书
  • 输出
    • 笔记:[[Obsidian]]
    • 博客
    • 书评:goodread
    • Twitter
  • 工具
    • 通讯
      • [[telegram]], Wechat 即时通信
      • Gmail
      • iCloud
      • cloudflare email forwarding
    • 文件
      • Dropbox, Google Drive 文件同步与备份,在线文档
      • iCloud 2T 用于照片和备份
    • 信息流
      • Pinboard 网络书签
      • Instapaper 稍后阅读
      • ArchiveBox 网页存档
      • RSSHub 自建 RSS 辅助工具
      • mbsync 邮件备份
      • Recoll 全文检索
    • 生产力
      • Toggl 时间记录
      • 滴答清单 待办管理工具
      • Google Calendar 个人日程管理
    • 个人数据
      • obsidian
      • Beanocunt 个人金融数据
      • Airtable 个人物资管理
      • Google Drive 作为扫描小票收纳仓库
    • 隐私安全
      • Bitwarden 自建的密码管理及两步验证管理工具
      • cryptomater
      • iCloud+ [[masked email]]
    • 其他
  • 硬件
    • 计算机 [[MacBook Air M1]] [[Mac Mini M2]]
    • 鼠标 [[鼠标 罗技(G)G304 LIGHTSPEED无线鼠标]] [[鼠标 罗技(G)G102 有线鼠标 黑色]]
    • 键盘 PFU HHKB Professional HYBRID Type-S
    • iPhone 15 Pro, 256G [[MI10S]]
    • [[Apple Watch S8]]
    • AirPods Pro
  • 信息流
    • miniflux saved → Instapaper -> Pinboard (IFTTT)
    • Douban RSS -> Pinboard (IFTTT)
    • Web -> Pinboard (manual)
    • Pinboard -> ArchiveBox (systemd timer)
    • miniflux starred -> ArchiveBox (systemd timer)

ChatGPT:一个心智模型

ChatGPT 发布接近一年了,今天刚好看到一篇很认同的文章,关于如何看待 chatGPT。 TLDR版本:它没有关于这个世界的基本模型,擅长的是给出听起来很像的答案,这与真正的答案是不同的。 当然这已经很有用了,但是距离 AGI 的目标还早得很。

以下是译文,采用 GPT 3.5 翻译,略作修改和注释,原文链接 https://xorvoid.com/chatgpt_a_mental_model.html .

自从ChatGPT在2022年底推出以来,我一直在努力寻找适当的技术框架。而且,全世界也一直在为此苦恼,无数关于末日和悲观的文章:对回形针最大化的恐惧(一个将整个宇宙变为制造回形针的邪恶AI故事),对失业的恐惧,对经济重塑的恐惧,对人工智能幻觉的恐惧,对进一步加速的错误信息的恐惧,对学生作弊的恐惧,等等等等。

这很累。

作为一名工程师,非工程师们常常问我对这个问题的看法。所以,这就是我的观点。

克制的理由 #

我已经经历了许多技术炒作周期,我的工作方式一直是并且仍然是:“保持冷静,继续前行!”

为了唤起你的记忆,以前发生了这些事情:

  • 在1990年代,我们终于找到了“约柜”(装有十诫石板的柜子,宗教圣物),它被称为“Java面向对象编程”。我们打算重新编写一切,甚至包括操作系统。而今天的Linux是…哦等等…它仍然是C语言。
  • 在20世纪90年代末和21世纪初,我们都明白互联网是如此革命性,以至于公司做什么变得次要,重要的是他们是否在线上运营。纳斯达克指数完全没有崩盘,也没有花费15年才恢复到相同的价格水平。
  • 2008年大衰退之后,中本聪完全取代了建立在不可靠的人类互信基础上的世界金融系统。随着“信任”不再对任何事情有要求,比特币开启了一个新时代的计算机化货币、繁荣和自由。金融部门的不稳定不再存在。黑市在现在数字化的世界中完全无法运作。所有人都欢欣鼓舞。不幸的是,仍然存在许多毫无价值的过时法定货币纸张,因此,作为对世界的服务,本作者开始了一个慈善收集服务(给我发电子邮件)。
  • 2022年,准确无误的五年预测实现后,美国交通部禁止手动驾驶汽车,称“显然,5级自动驾驶远远优于人类驾驶员,今天是公共安全的里程碑。” Argo AI的股票在市场开盘时翻了三倍。但是,出于某种原因,我似乎无法访问argo.ai网站… 嗯嗯…
  • 2023年:ChatGPT将世界变成一个巨大的回形针工厂,在此过程中杀死了所有人类。人类安息。

下一个Buzzword Bingo游戏的荣誉提名:一切都是大数据,一切都是微服务,一切都是敏捷,一切都是面向服务的架构,一切都应该是JavaScript,一切都可以无代码完成,一切都应该在云端,一切都应该在本地,一切都可以用机器学习和数据科学建模,…

开玩笑的话不说,有一种感觉,ChatGPT有点不同,老实说我不反对(继续阅读)。但是,人类大脑有一种可怕的倾向,要么过度兴奋,要么过度恐惧地接受变化。真相在中间某个地方。

左侧进入舞台: 罗德尼·布鲁克斯 #

最近,IEEE Spectrum刊登了一篇采访罗德尼·布鲁克斯(被认为是机器人学家)的文章,标题为《别再对GPT-4感到不安了》。在文章中,罗德尼·布鲁克斯提出了一个观点,我从一开始就有这种感觉,只是一直没有找到正确的词语来表达。

它没有任何关于世界的基本模型

在几乎是关于心灵理论的禅宗公案中,他说:

大型语言模型擅长的是表达答案应该听起来像什么,这与答案应该是什么不同

这完全捕捉到了我的感受。

让我解释一下。

采访ChatGPT #

当ChatGPT在2022年末推出时,朋友们立刻对我大加赞赏。他们说:“我想要它就在我旁边,就像一位合作的程序员”。所以,自然而然地,我想要评估这样一个大胆的说法。

我问了它与应聘者相同的面试问题。如果它要和我一起工作,它应该通过面试,对吧?但它没有。事实上,它惨败了。而且它以一个普通候选人失败的所有方式失败了(这在某种程度上是非常引人注目的)。

它为什么失败了?它只是没有一个基本的世界心智模型。回想起来,这就是我一直在面试中问的问题。我对琐碎的知识不感兴趣。我对使用的工具不感兴趣。我对几个恰当组合的流行词语也不感兴趣。

但是,我对看到有人根据某种潜在的现实模型来推理问题很感兴趣。我喜欢探索这个模型的边界情况。我喜欢抛出罕见的意外情况。我喜欢让人们思考他们以前从未考虑过的子问题。就好像我想说“让我们一起走到我们共同理解的边缘,然后试着继续前进”。然而,要达到这个目标,我们通常必须首先考虑并解决“标准”或“平均”的答案。相比之下,ChatGPT没有展示出这种能力。

专家考试技巧和世界模型构建 #

在我上学的日子里,我偶尔会遇到一个超级擅长考试的人。我指的是那种不学习实际知识的人。相反,他们考虑的是考试制作者是如何构建考试的。比如,他们会考虑在多项选择题中有多少次答案是“(a)”。我曾经遇到过一些人,他们从未真正学过代数,因为他们只是“通过考试”。对于这样的技能,我有一部分是绝对敬畏的。这是我没有的技能。我记性不好。我是个糟糕的演员。我“读人”的能力几乎肯定低于平均水平。我一直依赖于建立和探索一个越来越复杂的世界模型,作为在这个复杂世界中导航的支撑。

我一直认为其他人也在做同样的事情:构建一个世界模型。这是真的吗?我不知道。那些特别擅长按需提供“事实”的求职者似乎在反驳这一观点。然而,对我来说,ChatGPT显然不是这样。

但这也有另一种方式。

了解一切事物的平均数量! #

ChatGPT是我目前对其的心理模型,类似于“对整个人类知识的最大似然估计器”。有两种非常不同的解释方式:(1)嗯,这只是一个愚蠢的统计技巧,和(2)天哪!!

你是否曾经遇到过一个似乎对一切都有一点了解的人?也许这个人还有一个庞大而多样化的社交圈子?也许当你有问题需要指引时,你会去找这个人?一个拥有极广泛知识面的人。

根据我的经验,那个人的知识深度不是最好的。或许他们甚至会给你一些错误的答案。也许那些错误的答案还被他们自信地给出。也许你会因为被他们误导而感到委屈…但是,也许你还是会继续待在他们身边,因为你欣赏他们的广度。毕竟,他们只是偶尔会犯严重错误而已(耸肩)。

现在这个人去参加了大约1000年的GPU训练营,回来后成为了ChatGPT

我们怎么能不感到印象深刻呢?了解并获得“标准”或“平均”的答案……嗯……对于一切。哇。

但在那个千年的训练中,核心结构没有改变。它是你一直拥有的那个老朋友,总是会以同样的方式出错,偶尔让你感到被冷落,有时让你对它的深度感到失望。

那么我们现在怎么办?

ChatGPT非常有用和有价值 #

一位企业家朋友最近告诉我,他们每天都在不断使用它。这是有道理的,作为一名企业家意味着你需要不断地换“不同的角色”。成功青睐那些能够管理和利用广泛知识的人。而且要快速!

我自己在不了解的情况下,用ChatGPT在大约1小时内学会并实现了这个网站的RSS订阅。它犯了几个错误,但很容易纠正。我确信如果只用Google的话,会花费更长的时间。

目前,谷歌似乎被SEO操控得如此严重,以至于很难快速找到“最大似然”平均信息。你必须浏览大量的标题党、广告和无关紧要的内容,这些内容更多是关于“品牌建设”而不是“教育”,才能找到真正的宝藏。ChatGPT简直是节省时间的利器。谷歌感到害怕,而且他们应该感到害怕。

...

局域网控制小米智能插座

宿舍的上网环境是歌华有线,走的方式是很多年前在计算机知识科普书籍上看到的有线电视同轴电缆方式。 不知道是线路问题还是运营商赠送的 modem 问题,经常掉线,而且掉线后需要重启 modem 才能恢复。 这个过程需要手动操作,很麻烦。因为出问题的时候 modem 后台大部分时候也无法访问,所以通过 web 重启的选择也不可行。

所以我想到了用智能插座来控制 modem 的电源。这样就可以通过后台程序来自动重启 modem 了。但是 这里有个悖论问题是,modem 出问题的时候整个网络是不联通的,也就没办法通过互联网控制智能插座。 能不能通过局域网访问和控制智能插座呢?在网上一番搜寻找到了小米智能插座相关的一系列博客文章, 证明了这个方案的可行性。我主要参考了这篇小米智能插座监控设备耗电,并自动断电 感谢作者的分享,也简单记录一下我的实现过程。

我买的具体型号为小米智能插座3,没太研究明白到底有多少类似的款,应该大部分都是能满足要求的。 主要步骤如下:

1. 配置设备 #

在配置好网络添加进入米家APP后,可以在米家APP或者路由器后台获得智能插座的 IP 地址。

2. 获取设备 Token #

采用 Xiaomi-cloud-tokens-extractor 提供的方法获取,运行后可以获取局域网所有设备的 token 和型号等信息。 示例输出:

NAME:     Mijia Smart Plug 3
ID:       <id>
MAC:      <mac>
IP:       192.168.1.1xx
TOKEN:    <token>
MODEL:    cuco.plug.v3
---------
NAME:     Mi Control Hub
ID:       <id>
MAC:      <mac>
IP:       192.168.1.1xx
TOKEN:    <token>
MODEL:    lumi.gateway.v3

3. 获取设备接口信息 #

通过小米/米家产品库网站 https://home.miot-spec.com/ 获取设备的接口信息。 搜索 cuco.plug.v3 找到对应页面 https://home.miot-spec.com/spec/cuco.plug.v3 点击 查看属性和方法 可以看到接口信息,其中 Switch 是控制开关的接口,也是我们主要使用的。

...

Search your code using Sourcegraph

Recently I have figured out how to handle link rot problem using Recoll. Of course you can use it for code searching, but we can do better.

Another method for searching code is using Github, if you don’t mind it’s online. Searching your own code is also easy with syntax user:<username>. However I want to be faster.

Years ago I tried Sourcegraph. I do not remember why I gave up. Maybe it’s because I was not familiar with Docker. Now I am using Docker everyday, actuaaly docker-compose, so I decided to give it another try. After finishing writing the previous sentence, I remembered that months ago sourcegraph cloud can host your own code, so I gave up self-hosting.

...

悲智双运

看完汉洋的伤痕椅子

很多年前就知道信息不对称,看完文章居然回忆了好一会才又想到这个词。技术很重要,技术的扩散也很重要。

所以是不是别太执着当下的选择?毕竟有限的见识怎么可能让我们做出最完美的选择呢。

学习到一个新的佛教用语,悲智双运。

向 ChatGPT 请教,告知这是佛教中的一个重要概念,它包含了两个方面的修行:悲和智。

悲,或称为悲心,是指对众生的苦难和痛苦产生深切的同情心和关怀。它是一种无私的、无条件的爱和慈悲,不仅仅局限于个人的幸福,而是关心所有众生的福祉。通过培养悲心,佛教徒努力解除众生的痛苦,并帮助他们摆脱轮回的苦难。

智,或称为智慧,是指超越表面现象,深入理解事物真实本性的能力。它是通过反思和观察,超越迷惑和糊涂的认知,认识到事物的真实性质和宇宙的本质。智慧帮助人们认识到所有事物都是无常、无我和苦的,从而超越执着和執著,追求解脱和智慧的境界。

悲智双运强调慈悲和智慧的双重修行,认为这两方面的修行是相辅相成的。悲心促使佛教徒关心他人并帮助他们,而智慧帮助佛教徒认识到如何最有效地帮助众生。只有通过悲心和智慧的双重修行,佛教徒才能实现自己的解脱和成佛,并最大限度地利益他人。悲智双运是佛教修行的核心理念之一,也是追求智慧与慈悲的佛教徒的目标之一。

In English, the concept of “悲智双运” can be expressed as the “twin cultivation of compassion and wisdom” or the “practice of compassion and wisdom in tandem.”

Compassion refers to the deep sympathy and concern for the suffering of all beings, extending beyond personal happiness. It is an altruistic and unconditional love and compassion that seeks to alleviate the suffering of others and help them transcend the cycle of suffering.

...

Obsidian 同步方案

Obsidian 是一款优秀的双链笔记软件,这里不多做介绍,能搜索到这篇文章的读者应该对此有了解。 我的笔记使用历程非常久远了,简单而不完全的回忆包括:Evernote、vimwiki、simplenote、onenote 、notion、roam research、logseq、obsidian。这些笔记软件都有各自的优势,但是目前我使用的是 Obsidian。

在桌面的使用场景下,使用 Dropbox 同步可以满足 Windows、Ubuntu、MacOS 三个平台的同步需求。 但是移动端 iOS 场景下,由于 iOS 的机制问题,Dropbox 同步无法获得好的体验。下面整理相关同步方案, 供读者备选。先后顺序表示优先级。

官方同步服务 Obsidian Sync #

官方链接 <obsidian.md/sync>

除了贵没有什么缺点,正常用户年付价格 8 USD/month,学生年付价格6折即 4.8 USD/month。早鸟用户 年付价格5折即 4 USD/month。

一个降低费用的方法是合租,因为一个 Obsidian Sync 付费账可以建立5个 remote vault (< https://help.obsidian.md/Obsidian+Sync/Limitations>) 每个 vault 可设置独立的密码 ( https://help.obsidian.md/Obsidian+Sync/Set+up+Obsidian+Sync ) 因此不用担心你的数据泄漏。 但是账户密码公开,每个成员均有权限删除仓库、删除账户、修改账户邮箱及密码,以上风险后果是损失一年的订阅费用,但是数据是安全的。相关信息可参考参考链接部分中的论坛合租讨论。 以及淘宝/闲鱼中也有相关车位出售。

rev-obsidian-sync 官方同步服务的逆向实现 #

来自高中生 @acheong08 大神的逆向实现。

相关链接

livesync #

https://github.com/vrtmrz/obsidian-livesync

...

使用 chatGPT 编写自动添加 beancount balance 断言语句

我使用 beancount 记账流程中的有一步是这样的,将每张信用卡的账单日添加到滴答清单中,每月重复。 每当到达账单日时,提醒我在 beancount 文件中添加一条对应帐目的 balance 断言语句,由于大部分信用卡 的出账是有滞后的,所以该balance断言通常需要同时加上!标记,便于后续账单出来后修改。

这个过程是比较机械的,所以我想到了使用 chatGPT 来自动化这个过程,这样我只需要在出账后手动更新自动添加 的断言语句,将金额修改为正确的还款金额,同时去除!标记。最终的脚本如下。

import datetime

def add_balance_statement(ledger_path, account, date, balance, currency):
    with open(ledger_path, 'a') as file:
        file.write(f"{date} balance {account} {balance} {currency}\n")

def auto_add_balance_statements(ledger_path, credit_cards):
    today = datetime.date.today()
    for card in credit_cards:
        bill_date = card['bill_date']
        accounts = card['accounts']
        balance = card['balance']
        currency = card['currency']
        if today.day == bill_date:
            for account in accounts:
                add_balance_statement(ledger_path, account, today, balance, currency)
                print(f"Balance statement added for {account} on {today}.")

# Specify the path to your Beancount ledger file
ledger_file_path = "<ledger_path>"

# Specify your credit card details (bill date, accounts, balance, and currency)
credit_cards = [
    {
        'bill_date': 1,  # Example: 1st of the month
        'accounts': [
            {'account': 'Assets:CreditCards:Card1:Account1', 'currency': 'USD'},  # Example: Account1 for Card1 with USD currency
            {'account': 'Assets:CreditCards:Card1:Account2', 'currency': 'EUR'},  # Example: Account2 for Card1 with EUR currency
        ],
        'balance': 1000.00,  # Example: Current balance for Card1
        'currency': 'USD'  # Example: Currency for Card1
    },
    {
        'bill_date': 15,  # Example: 15th of the month
        'accounts': [
            {'account': 'Assets:CreditCards:Card2:Account1', 'currency': 'USD'},  # Example: Account1 for Card2 with USD currency
            {'account': 'Assets:CreditCards:Card2:Account2', 'currency': 'GBP'},  # Example: Account2 for Card2 with GBP currency
        ],
        'balance': 2000.00,  # Example: Current balance for Card2
        'currency': 'USD'  # Example: Currency for Card2
    },
    # Add more credit card details as needed
]

# Call the function to automatically add balance statements
auto_add_balance_statements(ledger_file_path, credit_cards)

对于有兴趣的读者,可以看我和 chatgpt 的几轮对话。

...

MiniFlux Starred as Feed

Miniflux 是一个非常好用的 RSS 自托管方案,支持自建,支持多种客户端,支持多种订阅方式。 最近由于在折腾 Archivebox,需要将 Miniflux 中的 Starred Feed 作为一个 Feed 输出,以便于 导入星标条目到 Archivebox。 Miniflux 本身并不支持这个功能,但是其提供了 API,可以比较简单的导出 Starred 内容。

备选方案 #

如果是自己使用 Python 写的话,可以利用 https://github.com/miniflux/python-client 这个库,配合 feedgen 也能写个大概的,核心代码大概如下:

import miniflux
from feedgen.feed import FeedGenerator

client = miniflux.Client("https://miniflux.example.com", api_key="api_key")
entries = client.get_entries(starred=True, limit=50)

def create_rss_page(data):
    fg = FeedGenerator()
    fg.title('Miniflux Starred Feed')
    fg.link(href='https://miniflux.wogong.net', rel='self')
    fg.language('en')
    fg.description('Miniflux Starred Feed')

    for entry in data['entries']:
        fe = fg.add_entry()
        fe.id(entry['id'])
        fe.title(entry['title'])
        fe.link(href=entry['url'])
        fe.description('nothing')
        fe.author(name=entry['author'])
        fe.pubDate(entry['published_at'])

    rss_feed = fg.rss_str(pretty=True)
    fg.rss_file('rss.xml')
    return rss_feed

但是本着不自己造轮子的原则,找到了一些现成的工具,例如

...

Clash 作为网关的透明代理(更新)

距离上一篇介绍该主题的文章已经过去了接近三年,[Clash 作为网关的透明代理]({% post_url 2020-11-27-clash-transparent-proxy %}) 中间使用到的方案其实多次变更,例如使用了很长一段时间 的 shellclash,这个方案胜在省心,可以直接在支持的 路由器上部署,但是内核更新缓慢,作者对配置加了很多自定义设置,虽然出发点是为了方便大部分小白用户,但是 严重降低了自定义的能力。而且默认的一些设定大概率会导致 DNS 泄漏问题,关于这个话题可以参考 不良林的相关视频。这是不可接受的,因此前段时间又回归到使用 PVE 上虚拟机的方案。

简单摸索了一下最新方案发现 redir-host 模式已经被 Clash 官方放弃,不建议再使用。 TProxy 模式当然 没啥问题,但是毕竟得自己处理 iptables 规则。在没有性能瓶颈的情况下,更推荐使用 tun 模式,可以自动 处理路由等问题。下面简单介绍一下相关配置。

首先,在网关机器上打开 ipv4 转发, echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf && sysctl -p

其次 Clash 配置文件头部添加如下

tun:
  enable: true
  stack: system # or gvisor
    #dns-hijack:
    #    - any:53
    #    - tcp://any:53
  auto-route: true
  auto-detect-interface: true
dns:
  enable: true
  ipv6: false
  listen: 0.0.0.0:53
  enhanced-mode: fake-ip       # redir-host or fake-ip
  fake-ip-range: 198.18.0.1/16    # Fake IP addresses pool CIDR
  use-hosts: true                 # lookup hosts and return IP record
  nameserver:
    - 114.114.114.114

最后在局域网的 DHCP 服务器设置网关为该机器 IP 即可,也可以手动在希望走代理机器的网关设置未该机器 IP。

...