搭建 Pi-Hole 为网上冲浪保驾护航

曾经我觉得有 uBlock Origin 之类的浏览器插件,不需要在网关上做广告和追踪器的过滤。但随着手机使用量的增加,我逐渐意识到在网关上做集中化管理还是有好处的。正好 Raspberry Pi 4 已经闲置了两个月,那就来试试 Pi-Hole 吧。 本文介绍如何使用 Pi-Hole 过滤广告、追踪器和恶意软件的域名,并使用 DoH / DoT 对 DNS 请求加密。最后,Android 设备可以通过 Private DNS 功能,即使不在家,也可以享受 Pi-Hole 的好处。 一、Pi-Hole 简介 在使用浏览器网上冲浪的过程中,DNS 的作用是把域名翻译成 IP 地址,以供浏览器连接。网页上有各种广告和追踪器,这些东西往往是专营此业的第三方服务提供的(如 Google AdSense 和 Google Analytics),与用户浏览的网站并不属于同一域名。那么,将这些域名在 DNS 层面上屏蔽掉,就达到了过滤广告和追踪器的效果。上了年纪的中国网民一定很熟悉十几年前流行的使用 hosts 文件屏蔽广告域名,或是绕过 GFW 的 DNS 污染的套路,其原理是类似的。只是随着个人电脑和手机等移动设备的增 ……

Ubiquiti EdgeRouter X 上手玩

前段时间搬了一次家,之前用作路由器的 Microserver Gen8 服务器暂时没有带入新居。取而代之的是 Linksys 出品的所谓 Velop Mesh WiFi。用了一段时间,觉得 Velop 的硬件性能的确不错,但作为一个带路由功能的一体机,它的路由功能实在是太弱了。于是我买一台 Ubiquiti EdgeRouter X 作为专门的路由器使用。 一、配置 作为一台 1 Gbps 转发能力的专业路由器,EdgeRouter X 并不像一般的家用路由器一样即插即用,而是需要手动进行初始化配置。参考官方手册:出厂配置下,eth0 拥有一个静态地址 192.168.1.1/24,用户的计算机连接此口之后可以静态配置一个同网段地址访问;用户也可以将 eth1 连入一个已有的网络,让 EdgeRouter X 通过 DHCP 获取一个地址。 初次访问 EdgeRouter 的网页管理页面可以看到一个初始化向导,引导用户配置五个网口各自的作用: 我将 eth0 + eth1 配置成 WAN 口(我的 ISP 提供了两个 IP 地址),然后将 eth2 + eth3 + eth4 组成了 switch0,作为 ……

2019 年我读过的书

2019 年我一共读了 15 本书。 往年链接: 2018 年我读过的书 Lonely Planet Bangkok; Lonely Planet Thailand 年初来了场说走就走的旅行,去曼谷和芭堤雅玩了一圈。这是旅途中做功课所阅读的旅行指南。 Lonely Planet Bangkok @ Goodreads Lonely Planet Bangkok @ Amazon Lonely Planet Thailand @ Goodreads Lonely Planet Thailand @ Amazon The Man in the High Castle Amazon 把这本书改成了电视剧,我想原作应该是很有趣的吧。实际读了下,发现远没有 Do Androids Dream of Electric Sheep? 有趣。此书的卖点无非在于 If 世界线。电视剧估计也只是借用了这个脑洞吧,情节应该是原创的。 The Man in the High Castle @ Goodreads The Man in the High Castle @ Amazon Lone Survivor 这本书 ……

迁移至 1Password 密码管理器

在 2012 年初,我曾写过一篇《我的密码管理方法》,介绍了 KeePass 这一密码管理器。在 2019 年,我从 KeePass 生态迁移到了 1Password 生态。 一、再谈密码管理器的重要性 拖库/撞库的危害,以及每个服务使用独立密码的重要性这里就不再赘述了。要想达成每个「每个服务使用独立的密码」这一目标,常见的做法有: 「词根法」,即构建一个复杂的密码,再加上各网站的域名。比如 Google 的密码是 hunter2$google.com、Yahoo! 的密码是 hunter2$yahoo.com 这样; 「哈希法」,即用固定字符串(盐)和网站域名通过某些哈希函数(比如 HMAC)派生出密码。比如 Google 的密码由 hash('hunter2', 'google.com') 派生出 585ff1caa5、Yahoo 的密码由 hash('hunter2', 'yahoo.com') 派生出 d749f97459 这样; 使用密码管理器,为每个网站生成一个与网站无关、完全随机的字符串作为密码。 在过去的这些年里,我在不同的场合向未使用密码管理器的人推荐密码管理器时,多次遇到过「词根法」和 ……

使用 Beancount 记录证券投资

本文以美股为例,介绍使用复式簿记软件 Beancount 记录证券投资交易(俗称「炒股」),并计算盈亏的方法。 一、复式簿记与 Beancount 简介 大部分普通人所说的「记账」,是指单式簿记(也称「流水账」),每笔交易只涉及一个账户。单式簿记简单易上手,但出错后不易排查,且在面对复杂交易(如一对多、多对多)时力不从心甚至无能为力。证券投资作为一种复杂交易,必须要用复式簿记才能精确、清晰地计算其盈亏。 三年前,我写过一篇介绍复式簿记和复式簿记软件 Beancount 的博客文章《Beancount —— 命令行复式簿记》(以下简称「安利文」),这篇文章成为了不少中文 Beancount 用户的入坑指引。本文假设你已经阅读过安利文,并对 Beancount 的使用有基本的了解。 二、概念 除了安利文中已经涉及的概念之外,用 Beancount 记录证券投资交易还需要理解一些额外的概念。 成本与价格 在 Beancount 里,证券与一般货币都是通货(commodity)。它们的不同之处在于,我们关心并记录证券的持有成本(held at cost),只有这样,在卖出证券的时候,我们才能正确地计算出这笔交易的盈亏 ……