分类: 随笔

  • 密码保护:西昌之旅

    此内容受密码保护。如需查阅,请在下列字段中输入您的密码。

  • 2024 家庭网络设备大升级 网络篇

    This entry is part 2 of 5 in the series homelab 历险记

    网络设备硬件到齐之后,就需要重新配置网络了,在我的使用场景中,家庭网络除了基本的上网之外需要承担两个额外的功能:

    • 全局透明代理
    • 允许电脑、手机远程访问本地网络服务

    我选择的方案是使用 N100 小主机运行一个 OpenWRT 虚拟机,并将两个物理网卡分配给它,以实现更加高级的网络配置。

    怎么连网线

    因为家宽的下行带宽只有 300M,所以就用开发商自带的超五类网线连接光猫跟 N100 小主机的千兆 WAN 口。

    N100 小主机的 2.5G LAN 口跟一台 TP-Link 路由器连接,路由器设置有线 AP 模式,这样全屋所有的流量都由虚拟机软路由处理,用 openwrt-passwall2 实现全局透明代理功能。

    QNAP NAS 通过网线连接到 TP-Link 路由器,不过由于路由器只有千兆网口,所以 QNAP 的2.5G 网口完全是性能过剩的。

    N100 上再用一个有线网卡连接到 TP-Link 路由器,给宿主机联网使用,这个有线网卡配置了一个静态 IP,方便在软路由挂掉的时候访问管理面板排查故障。

    其他的设备都用无线网络连接,因为户型小,所以单个 TP-Link 路由器的 5GHz WiFi 完全可以覆盖主要的视频消费设备。至于厨房、阳台等犄角旮旯的物联网设备,2.4GHz WiFi 也能提供足够的覆盖度。

    怎么从任意的外部网络访问家里的局域网

    很多 homelab 玩家会选择公网 IP 搭配 DDNS 的方案,但对我来说,这种方案会显著提高局域网的安全风险 —— 我并不是一个 OpenWRT 的运维高手,也完全不会使用 iptables/nft ,如果有人通过公网 IP 侵入了局域网,我大概率很难及时地发现问题。

    我的方案是 zerotier + 拥有公网 IP 的 VPS + singbox。外网设备通过 singbox 客户端连接 VPS 上的 singbox 服务端,然后通过路由规则将发往局域网的流量通过 zerotier 转发到家庭网络的 OpenWRT 上,以此实现远程访问。

    首先,将局域网中的 OpenWRT 跟 VPS 都加入同一个 zerotier 网络。OpenWRT 加入 zerotier 比较复杂,建议参考 openwrt 的文档配置。

    在 OpenWRT 上成功加入 zerotier 网络后,就可以看到下面的接口以及防火墙配置:

    然后在 VPS 上添加一条路由规则:

    ip route add 192.168.100.0/24 via 10.2.2.233
    # 10.2.2.233 就是 OpenWRT 在 zerotier 网段中的 IP

    接着其他设备在外部网络下通过 singbox 连接到 VPS,并且添加下面的 singbox 路由规则:

    "route": {
      "rules": [
        {
          // 家庭局域网网段
          "ip_cidr": [
            "192.168.100.0/24"
          ],
          "outbound": "vps"
        },
        {
          // 局域网服务专属域名,在公网设置解析到家庭局域网的 Web 网关
          "domain_suffix": [
            ".n.zeeko.dev"
          ],
          "outbound": "vps"
        },
      ]
    }

    这样不仅可以减少家庭局域网在公网上暴露面,还方便各种设备(笔记本电脑、手机、平板)在各种网络条件下访问家里的局域网设备 —— 只要能连接上部署了 singbox 的 VPS,就可以访问家里的局域网。至于远程访问时的网络连接速度,实测在联通 5G 网络下满足远程播放 20Mbps 码率视频的场景比哔哩哔哩大会员的 4K 视频要强

  • 2024 家庭网络设备大升级 硬件篇

    This entry is part 1 of 5 in the series homelab 历险记

    趁着双十一,给家里的网络设备做了一个全面的升级。之前家里的网络生态全靠一台单点的旧笔记本电脑支撑,这台笔记本运行着免费版的 PVE,跑着下面三台虚拟机:

    • 软路由
    • Docker Host:运行 Self-host 服务
    • NAS:OpenMyVault

    这次大出血,买了一台双网口的 N100 小主机跟 QNAP TS-464C。由这两台设备来分担之前一台笔记本电脑的全部工作:

    功能设备
    软路由N100 小主机
    Docker HostN100 小主机
    NASQNAP
    多媒体服务N100 小主机

    QNAP 也算得上是老牌网络存储设备提供商了,所以我对存储、备份、同步相关的全部需求都计划由 QNAP 来提供,这样可以尽可能保证数据安全。

    N100 小主机有多个网口,且出厂没有安装操作系统,用来折腾软路由跟一些 self-host 服务最合适不过了。

    除了这些电脑之外,我还买了一台瓦力 UPS,120W 的输出功率给 N100 跟 QNAP 供电完绰绰有余。

    性能够用吗?

    之前笔记本的配置为 16G 内存搭配 6 代移动平台低压 i7 处理器,在 PVE 的面板上经常看到设备满负载运行。新的 N100 跟 QNAP 虽然只有 8G 内存,但是运行相当数量的服务却都只会占用到一半的资源,CPU 利用率也低了很多。

    N100:安装了 FNOS 并通过虚拟机运行软路由
    QNAP:正在对 NAS 上文件建立搜索索引

    目前体验下来,硬件性能完全够用,甚至还有一些富余。原先非常消耗资源的相册应用 (Photo Prism) 替换成 QNAP 提供的 QuMagie 相册后,不仅图片导入速度变快了,而且也不再是 CPU、内存的消耗大户了。

    存储空间够用吗?

    之前的笔记本上主要用一块使用 ZFS 的 2T NVME 硬盘作为 PVE 的存储空间。但因为几次意外的断电事故,导致 ZFS 出现一些不可挽回的数据错误,为此我折腾了很久也没能修复错误,这也让我下定了决心要搭建一个简单易维护的数据存储系统。

    这次在配置 QNAP NAS 的时候,我选择用两块 4T HDD 组成 Raid1 ,用来保存比较重要的数据:

    在我的配置下,总共 8T 的 HDD 实际可用空间大概就 1.2 T,略大于 OneDrive 上 1T 的云存储空间。

    而 N100 小主机则继续使用之前笔记本拆下来的 2T 固态硬盘作为不重要数据的存储空间,用来存存放一些影片也很足够了。

  • 有多少「黄牛」在抢四川消费券?

    2024年9月,四川省财政厅投入了 3 亿资金用来向市民发放家装消费券

    在9月27日消费券被领取完后的 30 分钟,我在闲鱼上找到了跟四川家装消费券相关的87条搜索结果:

    补贴金额数量小计
    4k416k
    2k48k
    1.5k1319.5k
    0.9k1715.3k
    0.6k148.4k
    总计5267.2k

    在领取完后的一小时,相关搜索结果有 158 条。据此粗略估计,每天在闲鱼上被转卖的消费券大概价值 20 万元。

    根据官方的消费券发放安排,价值 3 亿的消费券会在 9 月 26 日到 10 月 31 日中的 31 天发放,假设能够全部发完,每天应该发放价值 967 万元的消费券。

    如果只有闲鱼上有黄牛,那么 9 月 27 日这天的黄牛含量大概在 2% (20/967≈2.07%)。

  • 如何选购冰箱

    冰箱是柜子,冰柜是箱子

    影响冰箱摆放位置的产品参数

    作为家中体积最大的电器,找个合适的位置放冰箱很关键。影响冰箱摆放空间的参数有两个:

    • 散热方式
    • 开门方式

    两侧散热的冰箱需要预留更多的空间帮助全年无修的冰箱散热,通常需要在冰箱的左右两侧以及后侧各预留 10cm 左右的空间。

    底部散热或者顶部散热的冰箱对空间的需求比较小,适合摆放在比较狭小的空间。

    开门方式也会影响冰箱的摆放,虽然冰箱叫「箱」,但是开门方式跟柜子类似,主要使用抽屉跟平开门。所以在摆放冰箱的时候也应该像摆放柜子一样,考虑门板、抽屉跟其他家具的冲突。如果空间比较狭小,可以选择 90° 的平开门。

    另一个节省冰箱摆放空间的技巧是把冰箱插座的位置调整到冰箱的侧面,或者使用内嵌式插座。这样可以为冰箱节省 3 ~ 4cm 的深度空间。

    影响收纳能力的产品参数

    作为柜子,冰箱当然越能装越好,商家往往只会商品详情页上写明容量,例如,500L,但是我们往冰箱中存放的只会是固体。所以容量只能作为参考,真正影响使用体验的是冰箱的收纳方式,对应的产品参数是门款式。

    门款式通常对冷冻区的格局影响比较大,大家可以按照自己最常屯的物品选择适合的冷冻区格局。

    影响使用体验的产品参数

    串味是影响冰箱使用体验的一个常见问题,从冰箱的角度解决这个问题有两种方式:

    • 双循环风道
    • 净味系统

    现在多数冰箱采用风冷降温,冷空气会在冷藏区、冷冻区之间流动,只有单循环风道的冰箱会有跨区窜味的问题。一些冰箱通过引入双循环风道,将冷藏、冷冻区之间物理隔离开,从而避免串味的问题。

    净味系统则是引入了类似空气净化器的模块,也能在一定程度上减少冰箱的异味,异味浓度低了,串味的影响也会降低。

    影响保鲜功能的产品参数

    保鲜可以从两个层面理解 —— 防止腐败、防止风干

    为了防止腐败,我们应该尽量选择带有杀菌能力检测证书的冰箱 只声称可以杀菌但不提供证书的都看作没有杀菌能力,通过抑菌、灭菌来降低食物污染风险。

    为了防止冷风将新鲜蔬果吹干,可以选择带有湿度调节区域的冰箱,减少干冷空气对果蔬的影响。

    不过防止腐败跟防止风干是有些冲突的两个功能,潮湿的有氧环境有利于微生物繁殖,所以, 最好还是减少新鲜蔬果的存放时间,或者将蔬果单独分区存放。

    产品关键参数速查表

    • 摆放位置
      • 长宽高
      • 散热方式
      • 开门方式
      • 插座位置
    • 收纳能力
      • 容量
      • 门款式
    • 防串味
      • 是否双循环
      • 净味系统
    • 保鲜
      • 杀菌、抑菌能力证书
      • 果蔬保鲜区

  • 如何为博文自动生成可读的 Permalink

    WordPress 默认提供了一个比较适合英语文章的 Permalink 生成机制,如果你跟我一样使用中文标题,那自动生成的 Permalink 中就会包含汉字,这对 URL 而言并不友好。之前我都会手动给每篇博文翻译一个英文标题,再将其 slugify,做得多了就会觉得繁琐,于是我开发了一个 API,可以用来帮助自动化地完成这个过程。

    API 的调用方式如下,大家可以免费使用。

    GET https://blogkit.apps.gianthard.rocks/api/v1/slugify?t=如何科学饲养母猪
    
    HTTP/2 200 OK
    server: nginx
    date: Mon, 19 Aug 2024 10:01:06 GMT
    content-type: application/json; charset=utf-8
    age: 189318
    cache-control: public,max-age=31536000
    content-length: 24
    x-http2-stream-id: 3
    
    "scientific-sow-rearing"

    要在 WordPress 中自动调用的话,需要在 WordPress 管理页面添加一些代码:

    function suggest_slug_from_api( $slug, $post_id, $post_status, $post_type, $post_parent, $original_slug ) {
        // Only apply for new posts or when the slug is empty
        if ( empty($slug) ) {
            $post = get_post($post_id);
            $title = $post ? $post->post_title : '';
    
            if ( empty($title) ) {
                return $slug; // Return original slug if no title
            }
    
            $api_url = 'https://blogkit.apps.gianthard.rocks/api/v1/slugify';
    
            // Encode the title for use in URL
            $query = http_build_query(array('t' => $title));
            $url = $api_url . '?' . $query;
    
            // Make the API request
            $response = wp_remote_get($url);
    
            // Check if the request was successful
            if ( !is_wp_error($response) && wp_remote_retrieve_response_code($response) == 200 ) {
                $body = wp_remote_retrieve_body($response);
                $suggested_slug = json_decode($body, true);
    
                // If we got a valid slug, use it
                if ( $suggested_slug && is_string($suggested_slug) ) {
                    return $suggested_slug;
                }
            }
        }
    
        // If anything goes wrong or if the post already has a custom slug, return the original slug
        return $slug;
    }
    add_filter( 'wp_unique_post_slug', 'suggest_slug_from_api', 10, 6 );
    

    我使用的是 WP Code 插件,用这个插件管理 PHP 代码片段非常方便,免费版也很够用。

    注意只在 Admin 页面上启用这个片段

    上面的代码工作完成后,WordPress 就会在草稿保存后自动生成 URL slug 。需要注意的是,编辑页面的前端可能不会及时更新 URL slug 预览,但是发布后就会使用通过 API 生成的 URL Slug。

  • 等一个后续

    像个鸵鸟一样,把头埋进沙子里。

    2024-07-09 五问煤制油罐车混装食用油:流向哪里?有何危害?谁该负责?

    https://web.archive.org/web/20240809024444/https://www.thepaper.cn/newsDetail_forward_28010047

    2024-08-27 国务院食安办通报“罐车运输食用植物油乱象问题”调查处置情况(简讯)

    https://web.archive.org/web/20240829090033/http://paper.people.com.cn/jksb/html/2024-08/27/content_26077451.htm

    2024-08-27 关于征求《食用植物油散装运输卫生要求》拟立项强制性国家标准项目意见的通知

    https://web.archive.org/web/20240829090629/https://www.samr.gov.cn/bzjss/zqyj/art/2024/art_94a628a1632644a2862d4f2ba8f6fc43.html

    2024-08-08 披露“75人涉嫌盗尸4000具”案律师:我甘愿受处罚,希望推进法律完善

    https://web.archive.org/web/20240809024851/https://news.sina.com.cn/s/2024-08-08/doc-inchxvay1591238.shtml

  • 为什么中国人均汽车保有量这么低?

    中国汽车保有量有多低?

    各国人均汽车拥有量列表

    2023 年统计数据:

    总人口 14.1亿 https://www.stats.gov.cn/xxgk/jd/sjjd2020/202401/t20240118_1946711.html

    总汽车 3.36 亿 https://www.gov.cn/lianbo/bumen/202401/content_6925362.htm

    每千人汽车数 238

    感觉上中国的人均汽车保有量不应该这么低

    收入太低导致汽车保有量低?

    对比分析几个国家的用车成本与人均可支配收入的关系

    • 用车成本:一辆车在燃料、税费、保养、维护上一年的支出,排除车辆折旧跟车贷
      • 为了方便跟美国的统计结果比较,年行驶里程假定为 24,000 公里
    • 人均可支配收入:一个人一年的税前总收入 – 税费
      • 美国是这么计算的,不太好确认中国跟南非是否也是如此计算
    美国中国南非
    千人汽车保有量868238232
    用车成本占人均可支配收入比例43.78%48.07% (燃油)
    13.95% (新能源)
    83.28%
    中国、美国、南非用车成本与人均可支配收入对比

    实际上,美国人每年平均驾驶里程数大概在1.4万英里(约2.25万公里);中国人每年平均驾驶里程大概在 1.5 万公里;南非人每年平均驾驶里程在 1.2 万公里左右 。考虑到这点对燃料的影响后,实际上中国的用车成本只会比美国更低。

    从这方面来看,用车成本似乎并不是导致中国人均汽车保有量较低的原因。

    中国用车成本与人均可支配收入

    数据来源:懂车帝排行榜最近一年(2024年8月)销量最高的10万元以下轿车:

    人均可支配收入数据:

    2023年1月17日,国家统计局发布数据显示,2022年全国居民人均可支配收入36,883元,比上年增长5.0%,扣除价格因素,实际增长2.9%。分城乡看,城镇居民人均可支配收入49,283元,增长3.9%,扣除价格因素,实际增长1.9%;农村居民人均可支配收入20,133元,增长6.3%,扣除价格因素,实际增长4.2%。

    中国居民收入的五档划分,从数据看差距_澎湃号·政务_澎湃新闻-The Paper

    中国用车成本占可支配收入比例:

    • 燃油车:17728/36883=48.07%
    • 新能源车:5116/36883=13.95%

    美国用车成本与人均可支配收入

    用车成本的数据来源(2023年)

    Based on AAA’s data, the average monthly cost of owning and operating a car is $1,015. The organization used six cost categories to determine their average: depreciation, finance costs, fuel, insurance, government taxes and fees, and maintenance, repair and tires. They based their numbers on vehicles that were driven for approximately 15,000 miles a year and assumed a five-year ownership period. Your own rate will likely differ from the average since it is based on factors unique to you, your car and your situation.

    The average cost of owning a car

    折旧费数据来源

    According to AAA, depreciation costs car owners an average of $3,334 annually.

    美国人均可支配收入(2023年):20,204.9 美元

    美国用车成本占可支配收入比例:

    1015*12-3334 / 20204.9 = 43.78%

    南非用车成本与人均可支配收入

    用车成本数据来源 The real cost of owning a standard R350,000 car in South Africa – BusinessTech

    每年用车成本(按24,000公里计算燃料消耗,排除车贷):

    (11167-7222+1150) * 12 = 61140 ZAR

    南非总可支配收入:4,449,450 百万 ZAR(2023)

    南非人口60,604,992(2022)

    南非人均可支配收入:4,449,450,000,000 / 60,604,992 = 73,417.76 ZAR

    用车成本占可支配收入比例:61140 / 73,417.76 = 83.28%

    中国人用车需求不足?

    美国人每年平均驾驶里程数大概在1.4万英里(约2.25万公里);中国人每年平均驾驶里程大概在 1.5 万公里;南非人每年平均驾驶里程在 1.2 万公里左右

    根据易车网的数据,大部分国人用车的高频场景是通勤,所以中国人对车辆的需求应该还算比较刚需的。

    中国人倾向使用共享出行?

    中国跟南非千人汽车保有量跟人均驾驶里程相差不太 ,南非在人均 GDP、人均可支配收入比中国低的情况下,而汽车保有量大,可能有共享出行性价比低的原因。

    南非公共交通并不发达,且网约车价格昂贵:

    由于南非基本没有像国内那样的公交系统,都是私人运营线路,当地人用小巴来跑这些线路,在南非这个词就叫 Taxi Bus

    可靠数据是南非 Uber 有 13000 个兼职或者专职司机(20 年数据),而中国滴滴是有 1166 万个兼职或专职司机(19 年数据)

    记得我 2015 年刚去南非没买车的时候,我为了去二手车店看车,打了个 Uber,区区 10 公里的路,打了 150 兰特,约 80 人民币,当时国内打车也就 20,30 的样子,当时真的让我觉得肉疼。后来赶紧自己买车买个几十公里也就是个油钱,也就很少打车了。

    杂谈南非打车

    中国则全然不同,公交覆盖广,而且网约车的普及率也高:

    城市交通出行大调查-36氪

    我认为大家倾向使用共享出行的方式的主要原因还是价格因素:

    • 城市公交都有补贴
    • 网约车定价超低:
      • 身边统计学,成都的网约车单价大概在2元/公里,按每年 1.2 万公里的出行里程来算,大概需要 2.4 万元;虽然比养车成本高,但如果算上自有车辆的折旧费、车贷,网约车可能跟自有车费用差不多甚至更便宜。

    结论

    中国共享出行比自有车辆成本更低,且覆盖了主要出行的上下班通勤场景,满足了当前阶段的出行需求,所以汽车保有量会保持在一个较低的位置。

    如果要让中国千人汽车保有量提升到 400?

    • 减少公交补贴
    • 网约车涨价
  • Migrate blog site to Hawk Host

    I migrated this blog site to Hawk Host last weekend, it doesn’t take much time, about 2~3 hours.

    • Create a new database and a database user for WordPress
    • Upload public_html with rsync FTP is too slow
      • rsync -avhP -e ssh ./public_html host-server:~/path/to/website/public_html
    • Update DNS records on CloudFlare

    My previous hosting service provider set up a mailer for me.

    After migration, the mail notification didn’t work, so I installed an SMTP plugin for WordPress.

    WP Mail SMTP by WPForms – The Most Popular SMTP and Email Log Plugin – WordPress plugin | WordPress.org

    Reference

  • 2024 新年,我的 EDC 立大功

    春节假期,我的 EDC (Every Day Carry,每日携带物品)立了大功,不管是修理门锁还是处理小伤口,都派上了用场。接下来,我要和你们聊聊这些随身小物怎样解我燃眉之急。

    假期之前,带我用的

    春节假期前我按照“带你用的,用你带的”思路,给自己配置了一个可以塞进衣服口袋的随身 EDC 小包,里面放有我精心挑选的工具小物,旨在帮助我应对日常所需和一些较为紧急的情况。我的物品配置理念可以总结为三个原则:带能用的、带常用的、以及带“我”要用的。

    三个原则

    首先,选择装备应基于个人的知识储备,确保每一件装备都是你能够熟练使用的。这意味着,即使是最高端的工具,如果你不能熟练使用,它也不应该出现在你的 EDC 中。其次,针对高频场景选择用得上的装备,这要求我们对日常生活有深刻的观察和了解,确保 EDC 中的每一样物品都能在常见情况下派上用场。最后,每个人的生活方式和需求都有所不同,因此,配置 EDC 时还应考虑个人的独特需求,确保它真正适合自己。

    多功能工具

    我的 EDC 中携带的多功能工具很少,只有一把“钥匙”( https://geekey.com ),这个小工具在国内可以买到款式类似但价格更加亲民的盗版。我选择它主要是为了这些功能:

    • 开瓶器
    • 割绳锯齿
    • 扁头撬棒(一字螺丝刀)

    像瑞士军刀这样的多功能工具也有这些功能,但是国内公共交通中的安检标准过于灵活,我不想在外出的时候因为安检惹上任何麻烦,就只好选择了这个小钥匙。

    个人卫生

    受限于我贫瘠的医疗知识储备,我的随身医疗物品只能处理小创伤或者让人很“急”的症状:

    • 碘伏棉片:清理伤口,物品消毒
    • 丁腈手套:消毒后接触伤口
    • 氯雷他定片:应对突发的过敏症状
    • 蒙脱石散:应对急性腹泻
    • 创口贴、医用透气胶布:应对简单的小伤口,比如鞋子磨脚
    • 一张便签:记录药物的用法用量、保质期
    • 棉棒:无聊的时候可以掏掏耳朵
    • 牙线:由于牙缝太宽每次吃肉过后必须得清理牙缝
    • 唇膏:

    物品收纳

    除了上面介绍的多功能钥匙之外,其他所有的装备都会装进一个小包。为了方便塞进衣服口袋,我选择了一款钱包大小可以平铺展开的拉链小包。它比我的手机略宽一些,但是要矮很多,能放下手机的口袋一般也能装下它。

    小包尺寸
    尺寸示意
    内部收纳空间
    内部收纳布局

    扩展收纳

    除了小包本身之外,为了应对临时的大体积收纳场景,我在小包中放了一个小号的食品保鲜袋跟一个常规尺寸的垃圾袋。外出溜街的时候,食品保鲜袋可以装洗净的水果,垃圾袋除了用来装垃圾之外,还可以当作临时的防潮坐垫。

    春节假期,用我带的

    正如我所展示的,我的 EDC 配置基本涵盖了从基础工具到个人卫生等多方面的需求,它们在我刚刚度过的春节假期中,表现尤为突出。

    除夕前两天,我回到了重庆小镇上的老家。然而,一进家门就发现卧室的门锁有些松动。这时,我的多功能钥匙便派上了用场,螺丝刀部分轻松紧固了那些松掉的螺丝,门锁也恢复了正常。

    除夕当天,准备年夜饭的热闹景象中发生了小意外。在宰杀鸡鸭时,家里人不小心划伤了手。幸好,我随身携带的碘伏棉片立刻就派上了用场,迅速对伤口进行了消毒处理,紧接着用创口贴包扎好,避免了伤口的进一步感染。

    重庆的年夜饭中,腊肉香肠从不缺席。但美中不足的是,它们经常会卡在我的牙缝里。饭后,我便用我随身携带的牙线棒轻松清理,保持了口腔的舒适。

    重庆这边年夜饭的另一特点就是量特别大,饭菜准备过多,导致我们不得不吃剩菜。加之除夕之后天气突然升温,有些剩菜吃后让人“打标枪”(川渝方言,指腹泻),幸运的是,我随身携带的蒙脱石散迅速缓解了这一不适,止泻效果显著。

    写在最后

    正如这次春节假期的经历所展示的,我能够在需要时用上我带的东西,这说明了我在前面提到的三条配置原则是可行且实用的:带能用的、带常用的、以及带“我”要用的。在我看来,合理配置 EDC 是一种生活的艺术,需要我们思考自己的知识和技能,梳理日常生活和个性需求,从而定制出真正用得上的 EDC。

    如果你看完文章后也想试着打造自己的 EDC 随身小包,下面的参考资料对你可能有所帮助:

    一些搜索关键词