<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title>Zireael</title>
        <link>http://blog.zireaels.com</link>
        <description>Zireael&#39;s blog</description>
        <atom:link href="http://blog.zireaels.com/rss.html" rel="self" />
        <language>zh-cn</language>
        <lastBuildDate>Tue, 07 Apr 2026 20:14:21 GMT</lastBuildDate>
        <item>
            <title>将HomePod mini的温湿度传感器数据添加到Home Assistant</title>
            <link>http://blog.zireaels.com/post/homepod_sensors.html</link>
            <description><![CDATA[
            <div class="toc"><ul>
<li><a href="#toc-7f1">概要</a></li>
<li><a href="#toc-4b0">Home Assistant中设置</a><ul>
<li><a href="#toc-eaa">添加开关</a></li>
<li><a href="#toc-393">设置自动化</a></li>
<li><a href="#toc-d9a">创建</a></li>
</ul>
</li>
<li><a href="#toc-424">苹果家庭中设置</a></li>
</ul>
</div><h1><a id="toc-7f1" class="anchor" href="#toc-7f1"></a>概要</h1>
<ol>
<li>通过Home Assistant在HomeKit中新增一开关</li>
<li>在苹果家庭中为这个开关设置一自动化快捷方式<ul>
<li>当开关打开时，将HomePod的传感器数据POST到Home Assistant的API</li>
</ul>
</li>
<li>Home Assistant中设置自动化，定时打开开关</li>
</ol>
<h1><a id="toc-4b0" class="anchor" href="#toc-4b0"></a>Home Assistant中设置</h1>
<h2><a id="toc-eaa" class="anchor" href="#toc-eaa"></a>添加开关</h2>
<p>首先在Home Assistant的 <code>configuration.yaml</code> 中新增:</p>
<pre><code class="language-yaml">automation: !include_dir_list automations/

input_boolean:
  homekit_sensors_update:
    name: HomeKit Sensors Collector
    initial: off

homekit:
  - filter:
      include_entities:
        - input_boolean.homekit_sensors_update
</code></pre>
<h2><a id="toc-393" class="anchor" href="#toc-393"></a>设置自动化</h2>
<p>然后在 <code>automations/homekit_sensor.yaml</code> 中新增:</p>
<pre><code class="language-yaml">alias: Homekit - Sensor Collector
description: Get temperature and humidity data from HomePod mini
trigger:
  - platform: time_pattern
    minutes: /2
    id: time
action:
  - service: input_boolean.turn_on
    target:
      entity_id: input_boolean.homekit_sensors_update
  - delay: &#39;00:00:05&#39;
  - service: input_boolean.turn_off
    target:
      entity_id: input_boolean.homekit_sensors_update
mode: single
</code></pre>
<h2><a id="toc-d9a" class="anchor" href="#toc-d9a"></a>创建</h2>
<p>依次点击左下角用户 - 安全 - 长期访问令牌 - 创建令牌，将生成的令牌复制</p>
<h1><a id="toc-424" class="anchor" href="#toc-424"></a>苹果家庭中设置</h1>
<p>点击新增的开关，加入自动化操作，设置快捷方式如下:</p>
<p>获取温/湿度传感器的数据，然后POST <code>https://ha_domain/api/states/sensor.homepodmini_temperature</code> (sensor.后面的是自定义的名称，湿度可以换成homepodmini_humidity)</p>
<p>其中headers设置为:</p>
<pre><code class="language-json">{
    &quot;Authorization&quot;: &quot;Bearer &lt;刚才复制的令牌&gt;&quot;
}
</code></pre>
<p>body设置为:</p>
<pre><code class="language-json">{
    &quot;state&quot;: 温度数据(注意类型要选择数值), // 湿度就填湿度数据
    &quot;device_class&quot;: &quot;measurement&quot;,
    &quot;state_class&quot;: &quot;temperature&quot;, // 湿度就是 humidity
    &quot;attributes&quot;: {
        &quot;unit_of_measurement&quot;: &quot;°C&quot; // 湿度就是 %
    }
}
</code></pre>
<p>至此设置完成，可以在Home Assistant将 <code>sensor.homepodmini_temperature</code> 数据以及 <code>sensor.homepodmini_humidity</code> 数据添加到首页，并且每两分钟自动更新。</p>

            ]]></description>
            <pubDate>Sat, 08 Nov 2025 10:08:17 GMT</pubDate>
            <guid>http://blog.zireaels.com/post/homepod_sensors.html</guid>
        </item>
        <item>
            <title>万能音响系统搭建</title>
            <link>http://blog.zireaels.com/post/audio.html</link>
            <description><![CDATA[
            <div class="toc"><ul>
<li><a href="#toc-0a1">Windows音频播放</a><ul>
<li><a href="#toc-530">方案1: Scream</a><ul>
<li><a href="#toc-201">安装Scream</a></li>
<li><a href="#toc-67e">设置单播</a></li>
<li><a href="#toc-b7c">运行ScreamReader</a></li>
<li><a href="#toc-5dc">问题</a></li>
</ul>
</li>
<li><a href="#toc-8c3">方案2: Voicemeeter (Windows - Windows)</a><ul>
<li><a href="#toc-95f">NAS端Voicemeeter设置</a></li>
<li><a href="#toc-483">电脑端Voicemeeter设置</a></li>
<li><a href="#toc-5dc">问题</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#toc-0b3">AirPlay音频播放</a><ul>
<li><a href="#toc-182">Shairport Sync安装</a></li>
<li><a href="#toc-d60">Pulseaudio设置</a><ul>
<li><a href="#toc-130">废弃方案</a></li>
</ul>
</li>
<li><a href="#toc-3aa">在HomeAssistant中控制AirPlay</a></li>
</ul>
</li>
<li><a href="#toc-204">蓝牙音频播放</a><ul>
<li><a href="#toc-74f">NAS端设置</a></li>
<li><a href="#toc-fa3">虚拟机端设置</a></li>
<li><a href="#toc-dcf">蓝牙连接</a></li>
<li><a href="#toc-5dc">问题</a></li>
</ul>
</li>
<li><a href="#toc-130">废弃方案</a><ul>
<li><a href="#toc-822">将shairport-sync运行在用户层级</a></li>
<li><a href="#toc-3f9">配置pulseaudio发送音频</a></li>
<li><a href="#toc-a83">配置linger</a></li>
</ul>
</li>
<li><a href="#toc-4e5">感想</a></li>
</ul>
</div><p>将音响连接到NAS上，使全屋所有设备共用一个音响。</p>
<h1><a id="toc-0a1" class="anchor" href="#toc-0a1"></a>Windows音频播放</h1>
<h2><a id="toc-530" class="anchor" href="#toc-530"></a>方案1: Scream</h2>
<p>在电脑上安装<a href="https://github.com/duncanthrax/scream/">Scream</a>虚拟声卡，捕获电脑的音频并通过网络发送到NAS上运行的ScreamReader(Windows，其他系统详见<a href="https://github.com/duncanthrax/scream#Receivers">链接</a>)播放。</p>
<h3><a id="toc-201" class="anchor" href="#toc-201"></a>安装Scream</h3>
<p>在<a href="https://github.com/duncanthrax/scream/releases">release页面</a>下载最新版本的Scream，导入如下注册表, 并将系统时间修改为2022年.</p>
<pre><code class="hljs lang-taggerscript">Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE<span class="hljs-symbol">\S</span>YSTEM<span class="hljs-symbol">\C</span>urrentControlSet<span class="hljs-symbol">\C</span>ontrol<span class="hljs-symbol">\C</span>I<span class="hljs-symbol">\P</span>olicy]
"UpgradedSystem"=dword:00000001
</code></pre><p>之后右键 <code>Install-x64.bat</code>, 以管理员身份运行安装。</p>
<h3><a id="toc-67e" class="anchor" href="#toc-67e"></a>设置单播</h3>
<p>Scream默认使用多播方式, 会向局域网内所有设备广播音频数据. 可以通过如下注册表修改为单播模式.</p>
<pre><code class="hljs lang-moonscript">Windows Registry Editor Version <span class="hljs-number">5.00</span>

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Scream\Options]
<span class="hljs-string">"UnicastIPv4"</span>=<span class="hljs-string">"192.168.1.100"</span>
<span class="hljs-string">"UnicastPort"</span>=<span class="hljs-name">dword</span>:<span class="hljs-number">00000</span>faa
</code></pre><p>其中, <code>UnicastIPv4</code> 指定了发送的IP地址, <code>UnicastPort</code> 指定了端口号( <code>0xfaa</code> 即为十进制的 <code>4010</code> 端口).</p>
<h3><a id="toc-b7c" class="anchor" href="#toc-b7c"></a>运行ScreamReader</h3>
<p>在防火墙中入站规则中新建一条 <code>4010</code> 端口UDP的允许入站规则，然后在下载的Scream文件夹中的 <code>clients\Windows\ScreamReader</code> 文件夹下, 双击运行运行ScreamReader即可(也可以在任务计划程序中设置开机自启)。</p>
<h3><a id="toc-5dc" class="anchor" href="#toc-5dc"></a>问题</h3>
<p>据github上用户反馈延迟较小，但我自己使用时实际测试延迟在300ms左右，未解决。</p>
<h2><a id="toc-8c3" class="anchor" href="#toc-8c3"></a>方案2: Voicemeeter (Windows - Windows)</h2>
<p>在电脑和NAS上都下载并安装<a href="https://vb-audio.com/Voicemeeter/banana.htm">Voicemeeter</a>，设置如下：</p>
<h3><a id="toc-95f" class="anchor" href="#toc-95f"></a>NAS端Voicemeeter设置</h3>
<p>NAS端Voicemeeter的作用主要有两个：</p>
<ol>
<li>接收音频并播放</li>
<li>发送麦克风音频供其他设备使用</li>
</ol>
<p>首先将Voicemeeter界面中的Stereo Input 1设置为麦克风，并点亮Bus B，再将Stereo Input 2的Bus A点亮，最后设置HARDWARE OUT中A1, A2任意一个为你的音响设备。</p>
<p>点击右上角的VBAN按钮，弹出的窗口中Incoming Streams是NAS将要接收的音频，配置好Stream Name(一定要和发送端保持一致)、电脑的IP地址后，选择Destination为In #2(即Stereo Input 2)。
下面的Outgoing Streams是NAS将要发送的音频，选择一条将Source置为Bus B，并配置好电脑IP。最后不要忘了将左侧的On以及左上角的VBAN is ON按钮点亮。</p>
<p>音频的路由大致如下：</p>
<ul>
<li>电脑发送的Stream→Stereo Input2→Bus A→音响</li>
<li>麦克风→Bus B→将Stream发送给电脑</li>
</ul>
<p><img src="http://blog.zireaels.com/static/upload/20251007/Voicemeeter1.png" alt="Voicemeeter NAS端设置"></p>
<p>Voicemeeter会独占音响，导致其他来源的音频无法播放，需要在Windows声音设置→声音控制面板→右键音响→高级标签页中取消勾选&quot;允许应用程序独占控制该设备&quot;。</p>
<h3><a id="toc-483" class="anchor" href="#toc-483"></a>电脑端Voicemeeter设置</h3>
<p>电脑端类似，将Stereo Input 2(也可以是1，与VBAN中Destination保持一致)的Bus B点亮，将VIRTUAL INPUT的Bus A点亮，再在VBAN窗口中做类似设置。最后将系统的默认音频输出改为Voicemeeter Input，输入改为Voicemeeter Out B1。</p>
<p><img src="http://blog.zireaels.com/static/upload/20251007/Voicemeeter2.png" alt="Voicemeeter 电脑端设置"></p>
<h3><a id="toc-5dc" class="anchor" href="#toc-5dc"></a>问题</h3>
<p>Voicemeeter方案基本感觉不到延迟，但有个小问题。由于我是通过RDP连接NAS的，当RDP会话关闭时，NAS的扬声器设备会刷新，导致Voicemeeter无法自动识别刷新后的音响设备(即使在RDP中选择了音频在远程计算机上播放，设备名一样)，解决方法就是弃用RDP，使用KVM。</p>
<h1><a id="toc-0b3" class="anchor" href="#toc-0b3"></a>AirPlay音频播放</h1>
<p>使用<a href="https://github.com/mikebrady/shairport-sync/">Shairport Sync</a>作为AirPlay播放器。AirPlay需要mDNS广播，由于我的NAS是Winserver系统，而windows下的docker无法设置host网络模式，所以我选择了在hyper-v中搭建ubuntu server虚拟机，在虚拟机中安装Shairport Sync并通过pulseaudio将音频发送到NAS上播放(没有尝试bridge模式以及mDNS反射等方案)。</p>
<h2><a id="toc-182" class="anchor" href="#toc-182"></a>Shairport Sync安装</h2>
<p>首先安装必要的库(把后面所有需要的都塞这里了)</p>
<pre><code class="language-shell">sudo apt install --no-install-recommends build-essential git autoconf automake libtool \
    libpopt-dev libconfig-dev libasound2-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev \
    libplist-dev libsodium-dev libavutil-dev libavcodec-dev libavformat-dev uuid-dev libgcrypt-dev xxd libpulse-dev \
    pulseaudio pulseaudio-utils gstreamer1.0-gl gstreamer1.0-plugins-bad gstreamer1.0-plugins-base \
    gstreamer1.0-plugins-good gstreamer1.0-x bluez pulseaudio-module-bluetooth libmosquitto-dev
</code></pre>
<p>编译安装NQPTP:</p>
<pre><code class="language-shell">git clone https://github.com/mikebrady/nqptp.git
cd nqptp
autoreconf -fi
./configure --with-systemd-startup
make
sudo make install

sudo systemctl enable nqptp
sudo systemctl start nqptp
</code></pre>
<p>编译安装Shairport Sync</p>
<pre><code class="language-shell">git clone https://github.com/mikebrady/shairport-sync.git
cd shairport-sync
autoreconf -fi
./configure --sysconfdir=/etc --with-alsa \
  --with-soxr --with-avahi --with-ssl=openssl --with-systemd --with-airplay-2 --with-pa --with-stdout --with-pipe --with-metadata --with-mqtt-client
make
sudo make install

sudo systemctl enable shairport-sync
sudo systemctl start shairport-sync
</code></pre>
<h2><a id="toc-d60" class="anchor" href="#toc-d60"></a>Pulseaudio设置</h2>
<p>一般情况下安装好Shairport Sync就可以了，但我需要使用pulseaudio作为Shairport Sync的音频后端，需要一些额外的设置，简单来说就是要把pulseaudio运行在系统层级(试过把shairport-sync运行在用户层级，但失败)。</p>
<p>首先将shairport-sync用户加入到pulse-access用户组:</p>
<pre><code class="language-shell">sudo usermod -a -G pulse-access shairport-sync
</code></pre>
<p>然后复制服务文件并修改:</p>
<pre><code class="language-shell">sudo cp /usr/lib/systemd/user/pulseaudio.service /etc/systemd/system/pulseaudio.service
sudo cp /usr/lib/systemd/user/pulseaudio.socket /etc/systemd/system/pulseaudio.socket

sudo vim /etc/systemd/system/pulseaudio.service
# 注释 ConditionUser=!root
# 在ExecStart参数中添加--system

sudo vim /etc/systemd/system/pulseaudio.socket
# 注释 ConditionUser=!root
</code></pre>
<p>然后配置rtp发送音频:</p>
<pre><code class="language-shell">sudo vim /etc/pulse/default.pa
sudo vim /etc/pulse/system.pa
# 在这两个文件中添加如下三行:
load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties=&quot;device.description=&#39;RTP&#39;&quot;
load-module module-rtp-send source=rtp.monitor destination_ip=192.168.1.100 port=4714
set-default-sink rtp
</code></pre>
<p>最后启动服务:</p>
<pre><code class="language-shell">sudo systemctl enable pulseaudio.service
sudo systemctl start pulseaudio.service
</code></pre>
<p>然后在NAS中打开VLC，点击媒体→打开网络串流，URL输入 <code>rtp://0.0.0.0:4714</code> (与上述端口一致)，在更多选项中将缓存设置为较小数值(影响延迟)，点击播放并挂在后台即可(linux可直接使用pulseaudio的module-rtp-recv)。</p>
<h3><a id="toc-130" class="anchor" href="#toc-130"></a>废弃方案</h3>
<p>在windows上也使用pulseaudio接收音频。下载<a href="https://www.freedesktop.org/wiki/Software/PulseAudio/Ports/Windows/Support/">PulseAudio on Windows</a>，在 <code>default.pa</code> 中修改 <code>module-waveout</code> 一项，添加 <code>record=0</code>:</p>
<pre><code class="language-shell">load-module module-waveout sink_name=output source_name=input record=0
</code></pre>
<p>并在最后添加一行:</p>
<pre><code class="language-shell">load-module module-native-protocol-tcp listen=0.0.0.0 auth-anonymous=1
</code></pre>
<p>然后运行:</p>
<pre><code class="language-shell">.\bin\pulseaudio.exe --use-pid-file=false -D
</code></pre>
<p>然后在虚拟机的 <code>/etc/pulse/default.pa</code> 和 <code>/etc/pulse/system.pa</code> 中添加两行:</p>
<pre><code class="language-shell">load-module module-tunnel-sink server=192.168.1.100 sink_name=remote
set-default-sink remote
</code></pre>
<p>该方案废弃的原因是使用tcp传输音频，延迟过大(300ms左右)，而且PulseAudio on Windows不支持module-rtp-recv，所以废弃。</p>
<h2><a id="toc-3aa" class="anchor" href="#toc-3aa"></a>在HomeAssistant中控制AirPlay</h2>
<p>修改shairport-sync的配置文件:</p>
<pre><code class="language-shell">sudo vim /etc/shairport-sync.conf
</code></pre>
<p>在mqtt项中配置如下:</p>
<pre><code class="language-conf">mqtt =
{
    enabled = &quot;yes&quot;;
    hostname = &quot;&lt;host_of_your_mqtt_broker&gt;&quot;;
    port = 1883;
    topic = &quot;your/mqtt/topic&quot;;
    publish_parsed = &quot;yes&quot;;
    publish_cover = &quot;yes&quot;;
    enable_remote = &quot;yes&quot;;
    username = &quot;username&quot;;
    passwort = &quot;password&quot;;
}
</code></pre>
<p>并在metadata项中将enabled, include_cover_art, cover_art_cache_directory, pipe_name, pipe_timeout取消注释。</p>
<p>HomeAssistant中，首先安装<a href="https://www.home-assistant.io/integrations/mqtt/">mqtt</a>，然后在HACS中搜索<a href="https://github.com/parautenbach/hass-shairport-sync">hass-shairport-sync</a>并安装。</p>
<p>在configuration.yaml中添加:</p>
<pre><code class="language-yaml">media_player:
  - platform: shairport_sync
    name: Zireael-Audio
    topic: audio/shairport
</code></pre>
<p>重启HomeAssistant后就可以将AirPlay音响组件添加到首页，实现调整音量、切歌、暂停等功能。</p>
<h1><a id="toc-204" class="anchor" href="#toc-204"></a>蓝牙音频播放</h1>
<p>通常来讲安装好 <code>pulseaudio-module-bluetooth</code> 之后，手机连接蓝牙后就可以直接播放音频，<del>但我是winserver</del>。</p>
<h2><a id="toc-74f" class="anchor" href="#toc-74f"></a>NAS端设置</h2>
<p>首先需要解决蓝牙问题，我选用的方案是购买一个USB蓝牙适配器并通过USB/IP传入虚拟机。将蓝牙适配器插入NAS，在NAS上安装<a href="https://github.com/dorssel/usbipd-win">usbipd-win</a>，然后运行:</p>
<pre><code class="language-shell">usbipd list
# 找到蓝牙适配器的BUSID，作为下一条命令的参数
usbipd bind -b x-x
</code></pre>
<h2><a id="toc-fa3" class="anchor" href="#toc-fa3"></a>虚拟机端设置</h2>
<p>在虚拟机中:</p>
<pre><code class="language-shell"># 加载vhci_hcd
sudo modprobe vhci_hcd
# 填写NAS的ip以及蓝牙适配器的BUSID
sudo usbip attach -r 192.168.1.100 -b x-x
</code></pre>
<p>上述两步可以设置自动完成: </p>
<pre><code class="language-shell">sudo vim /etc/modules-load.d/vhci_hcd.conf
</code></pre>
<p>添加一行:</p>
<pre><code class="language-conf">vhci_hcd
</code></pre>
<p>设置USB/IP自动连接:</p>
<pre><code class="language-shell">sudo vim /etc/systemd/system/usbip-attach.service
</code></pre>
<pre><code class="language-ini">[Unit]
Description=USB/IP Device Auto-Attach
After=network-online.target

[Service]
Type=oneshot
RemainAfterExit=yes
# 替换成你的 IP 地址和 Bus ID
ExecStart=/usr/bin/usbip attach -r &lt;server_ip&gt; -b &lt;bus_id&gt;
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target
</code></pre>
<p>然后启用服务:</p>
<pre><code class="language-shell">sudo systemctl daemon-reload
sudo systemctl enable usbip-attach.service
</code></pre>
<h2><a id="toc-dcf" class="anchor" href="#toc-dcf"></a>蓝牙连接</h2>
<pre><code class="language-shell">sudo bluetoothctl
discoverable on
scan on
# 手机蓝牙设置中点击配对后输入两次yes，然后trust手机蓝牙的MAC地址，后续可以自动连接
trust XX:XX:XX:XX:XX:XX
</code></pre>
<h2><a id="toc-5dc" class="anchor" href="#toc-5dc"></a>问题</h2>
<p>需要保持至少一个活跃的用户会话，试过如下两种方法都没有用:</p>
<pre><code class="language-shell">sudo usermod -a -G pulse-access $USER
sudo loginctl enable-linger $USER
</code></pre>
<p>只好在tty中手动登录一下。</p>
<h1><a id="toc-130" class="anchor" href="#toc-130"></a>废弃方案</h1>
<p>将shairport-sync和pulseaudio都运行在用户层级，因为没声音，懒得修了就废弃了</p>
<h2><a id="toc-822" class="anchor" href="#toc-822"></a>将shairport-sync运行在用户层级</h2>
<p>为shairport-sync用户创建家目录</p>
<pre><code class="language-shell">mkdir /home/shairport-sync
chown shairport-sync:shairport-sync /home/shairport-sync
</code></pre>
<p>启用 shairport-sync 用户的 linger 功能，然后重启：</p>
<pre><code class="language-shell">sudo loginctl enable-linger shairport-sync
sudo reboot
</code></pre>
<p>创建服务文件并更改权限：</p>
<pre><code class="language-shell">vim /home/shairport-sync/.config/systemd/user/shairport-sync.service
chown shairport-sync:shairport-sync /home/shairport-sync/.config/systemd/user/shairport-sync.service
</code></pre>
<p>文件内容：</p>
<pre><code class="language-ini">[Unit]
Description=Shairport Sync - AirPlay Audio Receiver
After=sound.target
Wants=network-online.target
After=network.target network-online.target

[Service]
ExecStart=/usr/local/bin/shairport-sync --log-to-syslog
Environment=&quot;XDG_RUNTIME_DIR=/run/user/996&quot;

[Install]
WantedBy=default.target
</code></pre>
<p>启动服务</p>
<pre><code class="language-shell">sudo -u shairport-sync XDG_RUNTIME_DIR=/run/user/$(id -u shairport-sync) systemctl --user daemon-reload
sudo -u shairport-sync XDG_RUNTIME_DIR=/run/user/$(id -u shairport-sync) systemctl --user enable shairport-sync
sudo -u shairport-sync XDG_RUNTIME_DIR=/run/user/$(id -u shairport-sync) systemctl --user start shairport-sync
</code></pre>
<h2><a id="toc-3f9" class="anchor" href="#toc-3f9"></a>配置pulseaudio发送音频</h2>
<p>先把配置文件复制到用户目录下：</p>
<pre><code class="language-shell">cp /etc/pulse/default.pa /home/shairport-sync/.config/pulse/
chown shairport-sync:shairport-sync /home/shairport-sync/.config/pulse/default.pa
</code></pre>
<p>然后修改 <code>/home/shairport-sync/.config/pulse/default.pa</code>, 添加如下三行：</p>
<pre><code class="language-shell">load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties=&quot;device.description=&#39;RTP&#39;&quot;
load-module module-rtp-send source=rtp.monitor destination_ip=192.168.1.100 port=4714
set-default-sink rtp
</code></pre>
<h2><a id="toc-a83" class="anchor" href="#toc-a83"></a>配置linger</h2>
<p>以shairport-sync用户运行pulseaudio，并通过linger使服务在用户没有活动的时候保持运行。</p>
<pre><code class="language-shell">sudo loginctl enable-linger shairport-sync
</code></pre>
<h1><a id="toc-4e5" class="anchor" href="#toc-4e5"></a>感想</h1>
<p><del>如果能让我回到一年前，我一定不会选Winserver</del></p>

            ]]></description>
            <pubDate>Tue, 07 Oct 2025 04:16:52 GMT</pubDate>
            <guid>http://blog.zireaels.com/post/audio.html</guid>
        </item>
        <item>
            <title>如何成为赛博日本人</title>
            <link>http://blog.zireaels.com/post/cyber_jp.html</link>
            <description><![CDATA[
            <div class="toc"><ul>
<li><a href="#toc-df3">前言</a></li>
<li><a href="#toc-6a2">手机卡</a></li>
<li><a href="#toc-3bc">邮箱</a></li>
<li><a href="#toc-026">支付、消费</a><ul>
<li><a href="#paypay">paypay</a></li>
<li><a href="#famipay">famipay</a></li>
<li><a href="#toc-969">linepay(已死)</a></li>
</ul>
</li>
<li><a href="#toc-13c">驾照</a></li>
<li><a href="#toc-774">银行卡</a></li>
<li><a href="#toc-0d9">其他</a><ul>
<li><a href="#toc-1ad">日本取现相关</a></li>
</ul>
</li>
</ul>
</div><h1><a id="toc-df3" class="anchor" href="#toc-df3"></a>前言</h1>
<p>本文是&quot;如何成为赛博××人&quot;系列的第二篇（可能也是最后一篇），
和香港篇一样，本文将介绍如何在不取得居民身份的情况下获取本地人生活所需的一切服务。</p>
<p>（还没写完）</p>
<h1><a id="toc-6a2" class="anchor" href="#toc-6a2"></a>手机卡</h1>
<p>和<a href="https://blog.zireaels.com/post/cyber_hk.html">香港篇</a>一样，运营商同样选用<a href="https://www.cmlink.com/jp/zh/">cmlink</a>。</p>
<p>我当时购买的是11880日元18G/月(现在为20G/月)的充六送一套餐，到手后账户余额为15750日元并且首月免费且次月可以自由转换其他套餐。购买这个套餐主要是&quot;多充多送&quot;，到手激活之后就改成了最低档每月1700日元的10G套餐了。</p>
<p>填写个人信息购买后从国内发货，自行到日本激活。回国后需要邮件申请漫游后才可在国内正常接收信号。
发送邮件到<a href="mailto:csjp@cmlink.com">csjp@cmlink.com</a>，说明开通国际漫游原因（如回国后求职用等）。</p>
<p><img src="http://blog.zireaels.com/static/upload/20250421/cmlink_jp.png" alt="提供身份信息开通国际漫游"></p>
<h1><a id="toc-3bc" class="anchor" href="#toc-3bc"></a>邮箱</h1>
<p>日本人好像很常用<a href="https://mail.yahoo.co.jp/">yahoo 邮箱</a>，直接用手机号注册即可。</p>
<p><img src="http://blog.zireaels.com/static/upload/20250421/yahoo_mail.png" alt="yahoo 邮箱"></p>
<p>不过注册/登录时经常会出现验证码，最好还是会一点五十音。</p>
<p><img src="http://blog.zireaels.com/static/upload/20250421/yahoo_captcha.png" alt="yahoo 邮箱"></p>
<h1><a id="toc-026" class="anchor" href="#toc-026"></a>支付、消费</h1>
<h2><a id="toc-394" class="anchor" href="#toc-394"></a><a href="https://paypay.ne.jp/">paypay</a></h2>
<p>和支付宝类似的电子支付软件，虽然日本的电子支付没有像国内那么普及，但paypay算是日本电子支付中使用人数较多的软件，同样使用手机号注册。</p>
<h2><a id="famipay" class="anchor" href="#famipay"></a>famipay</h2>
<h2><a id="toc-969" class="anchor" href="#toc-969"></a>linepay(已死)</h2>
<h1><a id="toc-13c" class="anchor" href="#toc-13c"></a>驾照</h1>
<p>三年签可</p>
<p>可换国际驾照</p>
<h1><a id="toc-774" class="anchor" href="#toc-774"></a>银行卡</h1>
<p>711银行可通过驾照开设银行户口，未实验</p>
<h1><a id="toc-0d9" class="anchor" href="#toc-0d9"></a>其他</h1>
<h2><a id="toc-1ad" class="anchor" href="#toc-1ad"></a>日本取现相关</h2>
<p>中国银行莫奈卡：卡组织为万事达，每月境外第一笔免手续费。在711的ATM取现免ATM手续费。（扣日元）</p>
<p>中银香港扣账卡。</p>
<p>兴业银行寰宇人生每月前三笔境外取现免费（扣人民币），ATM手续费未知。</p>
<p>上海以外的上海银行卡</p>

            ]]></description>
            <pubDate>Mon, 21 Apr 2025 06:23:55 GMT</pubDate>
            <guid>http://blog.zireaels.com/post/cyber_jp.html</guid>
        </item>
        <item>
            <title>如何成为赛博香港人</title>
            <link>http://blog.zireaels.com/post/cyber_hk.html</link>
            <description><![CDATA[
            <div class="toc"><ul>
<li><a href="#toc-df3">前言</a></li>
<li><a href="#toc-6a2">手机卡</a></li>
<li><a href="#toc-6ec">银行相关</a><ul>
<li><a href="#toc-3c4">银行开户、提款卡</a><ul>
<li><a href="#toc-70b">中银香港</a></li>
<li><a href="#toc-e1f">汇丰</a></li>
<li><a href="#zabank">ZA Bank</a></li>
</ul>
</li>
<li><a href="#toc-2b1">扣账卡、信用卡</a><ul>
<li><a href="#toc-b87">中银香港扣账卡</a></li>
<li><a href="#toc-17d">汇丰蓝狮子</a></li>
<li><a href="#toc-884">汇丰Pulse信用卡</a></li>
</ul>
</li>
<li><a href="#toc-204">入金方式</a><ul>
<li><a href="#toc-367">内地中银 - 中银香港</a></li>
<li><a href="#toc-5db">内地兴业 - 汇丰香港</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#toc-026">支付、消费</a><ul>
<li><a href="#wechatpayhk">WeChat Pay HK</a></li>
<li><a href="#alipayhk">Alipay HK</a></li>
<li><a href="#bocpay">BoC Pay</a></li>
<li><a href="#toc-633">转数快</a></li>
<li><a href="#toc-591">八达通</a></li>
</ul>
</li>
<li><a href="#toc-0d9">其他</a><ul>
<li><a href="#toc-8c1">price.com.hk</a></li>
<li><a href="#toc-b49">出入境相关</a></li>
</ul>
</li>
</ul>
</div><h1><a id="toc-df3" class="anchor" href="#toc-df3"></a>前言</h1>
<p>本文是&quot;如何成为赛博××人&quot;系列的第一篇，将介绍如何在不取得居民身份的情况下获取本地人生活所需的一切服务。
内地居民可享受着香港作为自由港的购物便利，
也可借助香港银行账户投资港美股、交易虚拟货币等。
拥有境外手机号也可以让你在大开盒时代逃避盒武器的追杀。
下文将从手机卡、银行卡、支付及消费几方面介绍香港本地人日常生活所需的服务。</p>
<p>(比如预购Switch2)
<img src="http://blog.zireaels.com/static/upload/20250415/LBuy.jpg" alt="LBuy预购Switch2"></p>
<h1><a id="toc-6a2" class="anchor" href="#toc-6a2"></a>手机卡</h1>
<p>与内地手机卡的月套餐计费不同，香港的手机卡计费模式分为两种：储值卡和上台。其中上台可以理解为月套餐；储值卡则为按量计费，可以按需购买需要的流量/短信/通话套餐。</p>
<p>运营商可以选用cmlink和<a href="https://www.three.com.hk/">3hk</a>。前者优点为保号便宜，后者优点为可以使用esim。</p>
<p>cmlink推荐使用MySIM 4G储值卡(注意是4G不是5G，5G卡性价比较低，最便宜的套餐为$48/30日，包含5GB流量)，可在香港任意一家711购得或在<a href="https://www.hk.chinamobile.com/tc/home/prepaid-card/mysim/detail?commodityId=21202307261684093572504752128&amp;mysim=4G%20MySIM">cmlink官网</a>购买后自提。
<img src="http://blog.zireaels.com/static/upload/20250415/MySIM.png" alt="MySIM 4G和5G"></p>
<p>该卡可购买$33/30日的50GB+5000分钟本地通话套餐(现已涨价至$38/30日，60GB+5000分钟)，并且无每月$2行政费。保号只需每180天充值$50即可(充值$50会延长180天有效期，可用于购入套餐等)，切记设置好日历提醒到期前充值，否则可能会将卡号分配给别人。
<img src="http://blog.zireaels.com/static/upload/20250415/IMG_0138.JPG" alt="MySIM">
<img src="http://blog.zireaels.com/static/upload/20250415/IMG_0139.JPG" alt="MySIM">
<img src="http://blog.zireaels.com/static/upload/20250415/IMG_5091.PNG" alt="套餐"></p>
<p>注意每种储值卡可购买的套餐不同，以下截图为我的另一张卡可购买的套餐列表，性价比极低且每月会扣$2行政费。
<img src="http://blog.zireaels.com/static/upload/20250415/IMG_5092.PNG" alt="套餐"></p>
<p>购买后根据包装内说明激活，可以提前下载<a href="https://www.hk.chinamobile.com/tc/home/customer-service/my-link">mylink app</a>，激活完成后卡号会通过短信发送。</p>
<h1><a id="toc-6ec" class="anchor" href="#toc-6ec"></a>银行相关</h1>
<h2><a id="toc-3c4" class="anchor" href="#toc-3c4"></a>银行开户、提款卡</h2>
<p>准备材料：港澳通行证、入境纸、内地身份证(中银香港需要)、地址证明(水电燃气账单等，可能需要，建议带着)以及可能需要的数千港币现金。</p>
<p>开户网点：不要选择港岛的网点，建议去九龙/新界的非热门景点区域的网点。</p>
<p>营业时间：周一至周五，周六上午。可以用Google Map查询。</p>
<p>开户用途：投资理财/买港股(不要说储蓄等)，记得开户的时候顺便把港/美股账户开了。</p>
<h3><a id="toc-70b" class="anchor" href="#toc-70b"></a>中银香港</h3>
<p>开户成功后不会当场下卡，会以平邮寄送到通讯地址。
平邮可能会丢件，若一个月内没有收到可以要求客服补寄挂号信，费用为十几港币。</p>
<p><img src="http://blog.zireaels.com/static/upload/20250415/boccard.png" alt="中银香港"></p>
<h3><a id="toc-e1f" class="anchor" href="#toc-e1f"></a>汇丰</h3>
<p>汇丰有两种情况，若名字为三个字则当场下卡，若名字为两个字则不当场下卡，后续邮寄到通讯地址。</p>
<p><img src="http://blog.zireaels.com/static/upload/20250415/IMG_8761.jpg" alt="汇丰"></p>
<h3><a id="zabank" class="anchor" href="#zabank"></a>ZA Bank</h3>
<p>虚拟银行，可以交易虚拟货币，线上即可完成开户。下载ZA Bank App，定位在香港境内，上传港澳通行证正反面即可开户。若在香港机场内无法开户，可尝试坐机场内地铁到另一航站楼。</p>
<p>在App内可自定卡号后六位，实体卡将从珠海通过EMS发送(第一次可以找客服退制卡费$25)。</p>
<p><img src="http://blog.zireaels.com/static/upload/20250415/IMG_8761_2.jpg" alt="ZA"></p>
<h2><a id="toc-2b1" class="anchor" href="#toc-2b1"></a>扣账卡、信用卡</h2>
<p>中银香港、汇丰开户后给的银联卡属于「提款卡」，即用作ATM/柜台处提取现金用，一般不能用来网上消费。
若要绑定移动支付，需要申请「扣账卡」。</p>
<h3><a id="toc-b87" class="anchor" href="#toc-b87"></a>中银香港扣账卡</h3>
<p>中银香港App内选单 - 账户 - 申请中银卡/扣账卡处申请。
虚拟卡当场下卡，实体卡需要等待邮寄。
<del>注意账户等级需要「智盈理财」及以上才可申请。</del> 现在任何等级的账户都可申请。
使用该卡消费有5‰的返现。</p>
<p><img src="http://blog.zireaels.com/static/upload/20250415/IMG_3754.jpg" alt="中银香港"></p>
<h3><a id="toc-17d" class="anchor" href="#toc-17d"></a>汇丰蓝狮子</h3>
<p><del>如果你很不幸中银香港开户等级为「自在理财」</del>，也可以申请汇丰的蓝狮子扣账卡。
在HSBC HK App内首页 - 扣账卡处申请。需要等待邮寄激活后才可使用。
使用该卡消费有4‰的返现，低于中银香港。</p>
<p><img src="http://blog.zireaels.com/static/upload/20250415/IMG_4325.jpg" alt="别问为什么有两张，**美团"></p>
<h3><a id="toc-884" class="anchor" href="#toc-884"></a>汇丰Pulse信用卡</h3>
<p>汇丰香港于2024年的6-8月放宽了内地居民申请信用卡的条件，存款够1w即可申请。
Pulse是免年费的信用卡里最好的一张。可以观望一下什么时候再次放宽。</p>
<p><img src="http://blog.zireaels.com/static/upload/20250415/Pulse.jpeg" alt="可惜我没赶上"></p>
<h2><a id="toc-204" class="anchor" href="#toc-204"></a>入金方式</h2>
<h3><a id="toc-367" class="anchor" href="#toc-367"></a>内地中银 - 中银香港</h3>
<p>内地中国银行电汇到境外中银同名账户(姓前名后)不收电汇费等费用(似乎转到中银香港只有<strong>港币</strong>和<strong>美元</strong>是无损)。</p>
<h3><a id="toc-5db" class="anchor" href="#toc-5db"></a>内地兴业 - 汇丰香港</h3>
<p>兴业寰宇人生卡电汇<strong>港币</strong>到汇丰香港也是无损的。</p>
<h1><a id="toc-026" class="anchor" href="#toc-026"></a>支付、消费</h1>
<h2><a id="wechatpayhk" class="anchor" href="#wechatpayhk"></a>WeChat Pay HK</h2>
<p>将微信绑定的手机号从+86更换至+852，就可以解锁WeChat Pay HK、WeChat Out等服务。
可以绑定中银香港的银行账户以及ZA Bank的Visa卡(绑定汇丰需要hkid)。</p>
<p><img src="http://blog.zireaels.com/static/upload/20250415/IMG_5104.jpg" alt="WeChat Pay HK"></p>
<h2><a id="alipayhk" class="anchor" href="#alipayhk"></a>Alipay HK</h2>
<p>需要hkid。</p>
<h2><a id="bocpay" class="anchor" href="#bocpay"></a>BoC Pay</h2>
<p>注册BoC Pay可以在内地直接消费中银香港账户中的钱(云闪付渠道)。</p>
<h2><a id="toc-633" class="anchor" href="#toc-633"></a>转数快</h2>
<p>在任意银行App中注册转数快，可将手机号码/邮箱关联到银行账户上。
后续转账时输入手机号码/邮箱即可将钱转入对应账户。
<img src="http://blog.zireaels.com/static/upload/20250415/FPS.jpeg" alt="转数快"></p>
<h2><a id="toc-591" class="anchor" href="#toc-591"></a>八达通</h2>
<p>除了作为公交卡外，八达通也承担着日常小额支付的作用，在某些餐馆、自贩机和便利店可以使用。申请时有$50的押金，并且可以透支一次(不超过$50)。
<img src="http://blog.zireaels.com/static/upload/20250415/Octopus.jpeg" alt="八达通"></p>
<p>(乘坐天星小轮的时候不用跟旁边人排支付宝扫码的大队，直接最左边八达通丝滑入闸)</p>
<h1><a id="toc-0d9" class="anchor" href="#toc-0d9"></a>其他</h1>
<h2><a id="toc-8c1" class="anchor" href="#toc-8c1"></a>price.com.hk</h2>
<p>在线下购物的时候可以先上<a href="price.com.hk">price</a>搜索比价、确定库存等，一般会比直接线下购买有优惠(线下提货时说明是price上订购的)。</p>
<p>比如2023年2月我在price上以 $1780 * 0.8641 = ￥1538.10 的价格拿下了美版XSS，以 $14299 * 0.8641 = ￥12355.77 的价格拿下了七彩虹4090 AD OC。</p>
<p>一般的购物流程大概是：</p>
<ol>
<li>搜索商品</li>
<li>询问店家是否有货</li>
<li>点击订购，留下联系方式</li>
<li>线下取货交易</li>
</ol>
<p>交易方式一般是现金/转数快。使用信用卡、微信、支付宝等可能会多收取2~3%。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/Screenshots/Screenshot_2023-02-10-17-41-09-129_networld.price.app.png" alt="price"></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230211_084002_01.png" alt="XSS"></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_171255.jpg" alt="4090 AD OC"></p>
<h2><a id="toc-b49" class="anchor" href="#toc-b49"></a>出入境相关</h2>
<p>根据《中华人民共和国国家货币出入境管理办法》及《携带外币现钞出入境管理暂行办法》，旅客携带人民币出境，每人每次携带人民币不得超过20000元及外币不超过等值5000美元。</p>
<p>对根据《内地与香港关于建立更紧密经贸关系的安排》和《内地与澳门关于建立更紧密经贸关系的安排》相关修订条款，自香港、澳门进境，年满18周岁的居民旅客，携带在境外获取的个人合理自用行李物品，总值在12000元以内（含12000元）的予以免税放行。同时，在设有进境免税店的口岸，允许上述旅客在口岸进境免税店购买一定数量的免税商品，连同在境外获取的个人合理自用行李物品总值在15000元以内（含15000元）的予以免税放行。</p>

            ]]></description>
            <pubDate>Mon, 14 Apr 2025 17:25:05 GMT</pubDate>
            <guid>http://blog.zireaels.com/post/cyber_hk.html</guid>
        </item>
        <item>
            <title>NAS迁移记录</title>
            <link>http://blog.zireaels.com/post/nas.html</link>
            <description><![CDATA[
            <div class="toc"><ul>
<li><a href="#toc-504">配置单</a></li>
<li><a href="#toc-8a8">系统</a></li>
<li><a href="#toc-47d">服务</a><ul>
<li><a href="#toc-472">存储 - SMB</a></li>
<li><a href="#toc-206">照片 - immich</a></li>
<li><a href="#toc-b38">智能家居 - HomeAssistant</a></li>
<li><a href="#toc-7cf">自动化 - n8n</a></li>
<li><a href="#git-gitea">Git - Gitea</a></li>
<li><a href="#toc-e27">视频 - Jellyfin</a></li>
<li><a href="#toc-7e8">下载 - qBittorrent</a></li>
</ul>
</li>
<li><a href="#toc-7dd">网络</a><ul>
<li><a href="#toc-ac6">通过域名访问服务</a></li>
<li><a href="#toc-0d6">内网穿透</a></li>
<li><a href="#toc-724">客户端无感</a></li>
<li><a href="#toc-c47">https证书</a></li>
</ul>
</li>
</ul>
</div><p>之前一直在用的NAS是i5-6400的老台式机, 主板不支持NVME的固态导致系统装在机械硬盘里卡得很, 于是今年就趁着618换了一套配置升级了一下, 直到最近才抽空配置完全.</p>
<h1><a id="toc-504" class="anchor" href="#toc-504"></a>配置单</h1>
<ul>
<li>CPU: 12400散片 ￥795</li>
<li>主板: 铭瑄终结者B760M D5 WiFi ￥799</li>
<li>电源: 海韵FOCUS GX650金牌 ￥499</li>
<li>硬盘: 樊想S790C 2T ￥699</li>
<li>内存: 光威天策高级版D5 5200 16G*2 ￥459</li>
<li>风扇: 利民TL-CL12CW-S *4 ￥93.3</li>
<li>机箱: 射手座白 + 散热器 ￥478</li>
<li>硬盘: 西数HC550 WUH721816ALE6L4 16T ￥1895</li>
<li>显卡: 之前的750ti ￥0</li>
</ul>
<p>总计 ￥5717.3</p>
<p>散热器是射手座店家推荐的同牌子散热器, 作为一个 NAS 机箱配套的散热器居然无法关掉 RGB 灯, 十分幽默.</p>
<p>最终整机待机功耗约60W.</p>
<p><img src="http://blog.zireaels.com/static/upload/20241012/IMG_3362.JPG" alt="NAS"></p>
<h1><a id="toc-8a8" class="anchor" href="#toc-8a8"></a>系统</h1>
<p>系统仍然选择了Windows Server 2022 配合 Docker Desktop 搭建服务, 这也为后续的服务部署埋下了不少坑.</p>
<p>初期遇到的唯一问题是 Docker Desktop 无法做到开机不登录自启, 只能通过下载第三方软件注册服务解决. 不过NAS毕竟常年不关机, 就算重启了用 RDP 登录一下即可.</p>
<p>系统激活命令如下:</p>
<pre><code class="hljs lang-groovy">irm <span class="hljs-string">https:</span><span class="hljs-comment">//get.activated.win | iex</span>
</code></pre><h1><a id="toc-47d" class="anchor" href="#toc-47d"></a>服务</h1>
<p>服务大部分是用 Docker Compose 部署的, 通过 nginx 反向代理使用不同域名访问.</p>
<p><img src="http://blog.zireaels.com/static/upload/20241012/docker.png" alt="Docker Desktop"></p>
<h2><a id="toc-472" class="anchor" href="#toc-472"></a>存储 - SMB</h2>
<p>没组 RAID, 直接 Windows 自带的 SMB, 右键 - 属性 - 共享, 没什么好说的.</p>
<h2><a id="toc-206" class="anchor" href="#toc-206"></a>照片 - immich</h2>
<p>immich 里的机器学习在 Windows 下报错, 没继续搞了, 直接用 cpu 版.</p>
<p><a href="https://github.com/immich-app/immich">https://github.com/immich-app/immich</a></p>
<p><a href="https://immich.app/docs/install/docker-compose">https://immich.app/docs/install/docker-compose</a></p>
<h2><a id="toc-b38" class="anchor" href="#toc-b38"></a>智能家居 - HomeAssistant</h2>
<p>主要用于将手里的米家设备接入到苹果家庭中. HomeAssistant 在原来的 NAS 上是运行在 hyper-v 中的, 这次迁移 NAS 本想着全部用 Docker 完成, 但配置过程中发现苹果家庭将 HomeAssistant 中的桥接器添加到家庭时会发送一个广播, 而 Windows 上的 Docker Desktop 的网络模式不支持 host 模式, 所以无法将设备接入苹果家庭, 只能用回 hyper-v 版本.</p>
<p><a href="https://www.home-assistant.io/installation/linux">https://www.home-assistant.io/installation/linux</a></p>
<p><a href="https://github.com/al-one/hass-xiaomi-miot">https://github.com/al-one/hass-xiaomi-miot</a></p>
<h2><a id="toc-7cf" class="anchor" href="#toc-7cf"></a>自动化 - n8n</h2>
<p>搭好了, 还没研究怎么用.</p>
<p><a href="https://github.com/n8n-io/n8n">https://github.com/n8n-io/n8n</a></p>
<p><a href="https://sspai.com/prime/story/automation-n8n">https://sspai.com/prime/story/automation-n8n</a></p>
<h2><a id="git-gitea" class="anchor" href="#git-gitea"></a>Git - Gitea</h2>
<p>同样碰到了只有 Windows 下才有的坑. Git 服务运行在容器中时, 若想使用 SSH 的标准 22 端口, 则需要配置一个宿主机与容器之间的 SSH 直通, 这样当客户端通过 git 命令访问服务(如 <code>git clone git@git.nas.zireaels.com:Zireael/repo.git</code>)时, 可以访问到位于容器内的 SSH. 但很可惜, 我们的宿主机是 Windows 系统, 无法通过虚假的 SSH shell 等方式直通容器, 所以只能另辟蹊径, 放弃标准的 22 端口, 在 Docker Compose 配置文件中将容器内的 22 端口映射到宿主机上的 222 端口, 然后以修改 <code>~/.ssh/config</code> 的方式做到客户端无感.</p>
<pre><code class="hljs lang-routeros">Host git.nas.zireaels.com
  HostName git.nas.zireaels.com
 <span class="hljs-built_in"> User </span>git
 <span class="hljs-built_in"> Port </span>222
</code></pre><p><a href="https://docs.gitea.cn/en-us/installation/install-with-docker">https://docs.gitea.cn/en-us/installation/install-with-docker</a></p>
<h2><a id="toc-e27" class="anchor" href="#toc-e27"></a>视频 - Jellyfin</h2>
<p>在 Windows Docker 下, Jellyfin 只支持 NVENC 解码. 有一个视频丢帧的问题一直没有解决.</p>
<p><a href="https://jellyfin.org/downloads/docker/">https://jellyfin.org/downloads/docker/</a></p>
<h2><a id="toc-7e8" class="anchor" href="#toc-7e8"></a>下载 - qBittorrent</h2>
<p>安装在 Winserver 宿主机上, 用 nginx 反向代理出来.</p>
<p><a href="https://www.qbittorrent.org/download">https://www.qbittorrent.org/download</a></p>
<h1><a id="toc-7dd" class="anchor" href="#toc-7dd"></a>网络</h1>
<p>网络方面是这次 NAS 迁移关注的重点, 需求主要有以下几个:</p>
<ol>
<li>避免 <code>ip:port</code> 式访问 NAS 中的服务;</li>
<li>内网穿透;</li>
<li>内外网切换时客户端无感, 即对于内外网环境使用同一地址访问服务, 且内网访问走内网流量, 外网访问走外网流量.</li>
<li>https</li>
</ol>
<h2><a id="toc-ac6" class="anchor" href="#toc-ac6"></a>通过域名访问服务</h2>
<p>第一条的实现比较简单, 直接在软路由 dnsmasq 中添加一条dns解析规则, 再通过 nginx 反向代理即可.</p>
<h2><a id="toc-0d6" class="anchor" href="#toc-0d6"></a>内网穿透</h2>
<p>内网穿透部分由于之前使用的 frp 将服务暴露在公网且仅使用 token 验证的方法过于不安全, 之前也因此受到攻击, 所以这次换用了 wireguard. 在服务器与软路由上分别配置好后就可经由服务器的流量访问内网服务.</p>
<h2><a id="toc-724" class="anchor" href="#toc-724"></a>客户端无感</h2>
<p>第一条中提到了在软路由中添加一条 dns 解析规则实现域名访问, 但在选用了 wireguard 作为内网穿透的方案后, 这种本地 dns 解析的方案需要将 dns 服务器设置为内网软路由, 将 dns 解析的流量经由 wireguard 发往内网的 dns 服务器. 所以换用了公网 dns 解析的方案, 将域名 nas.zireaels.com 和 *.nas.zireaels.com 解析到了内网 ip.</p>
<h2><a id="toc-c47" class="anchor" href="#toc-c47"></a>https证书</h2>
<p>沿用服务器上的 Let&#39;s Encrypt 免费证书方案, 使用 certbot 申请更新证书, 并将证书路径添加到 nginx 配置文件中.</p>
<p>使用 Docker + crontab 的方式定时更新. 注意 WSL 需要开启 cron 服务, 在 <code>/etc/wsl.conf</code> 中添加以下内容即可自动启动:</p>
<pre><code class="hljs lang-ini"><span class="hljs-section">[boot]</span>
<span class="hljs-attr">command</span>=<span class="hljs-string">"service cron start"</span>
</code></pre><p>在 crontab 中添加以下条目, 每10天更新一次证书:</p>
<pre><code class="hljs lang-basic"><span class="hljs-symbol">0 </span><span class="hljs-number">6</span> */<span class="hljs-number">10</span> * * docker compose -f /e/Zireael-NAS/Services/certbot/docker-compose.yml up &amp;&amp; docker exec nginx nginx -s reload &amp;&amp; docker compose -f /e/Zireael-NAS/Services/certbot/docker-compose.yml down
</code></pre><p>certbot 需要验证域名所有权, 由于我的域名是腾讯云购买解析的, 所以需要安装 certbot 的腾讯云插件:</p>
<pre><code class="hljs lang-dockerfile"><span class="hljs-keyword">FROM</span> certbot/certbot
<span class="hljs-keyword">RUN</span><span class="bash"> pip install certbot-dns-tencentcloud</span>
</code></pre><p>Docker Compose 配置文件如下, 第一次申请证书时 entrypoint 为 <code>certbot certonly ...</code> 命令, 后续交由 crontab 自动更新时将 entrypoint 更改为 <code>certbot renew --force-renewal</code></p>
<pre><code class="hljs lang-dts"><span class="hljs-symbol">services:</span>
<span class="hljs-symbol">  certbot:</span>
<span class="hljs-symbol">    image:</span> certbot-tencent
<span class="hljs-symbol">    container_name:</span> certbot
<span class="hljs-symbol">    env_file:</span>
      - .env
    <span class="hljs-meta"># entrypoint: <span class="hljs-string">"certbot certonly --non-interactive --agree-tos --force-renewal --email your@email.com -a dns-tencentcloud -d '*.yourdomain.com'"</span></span>
<span class="hljs-symbol">    entrypoint:</span> <span class="hljs-string">"certbot renew --force-renewal"</span>
<span class="hljs-symbol">    volumes:</span>
      - <span class="hljs-meta-keyword">/your/</span>path<span class="hljs-meta-keyword">/to/</span>save<span class="hljs-meta-keyword">/certifications/</span>letsencrypt:<span class="hljs-meta-keyword">/etc/</span>letsencrypt
</code></pre>
            ]]></description>
            <pubDate>Sat, 12 Oct 2024 13:13:38 GMT</pubDate>
            <guid>http://blog.zireaels.com/post/nas.html</guid>
        </item>
        <item>
            <title>将IOS设备复制的文本粘贴至Windows电脑</title>
            <link>http://blog.zireaels.com/post/ios_paste.html</link>
            <description><![CDATA[
            <div class="toc"><ul>
<li><a href="#toc-97b">IOS端</a></li>
<li><a href="#toc-c56">服务器</a></li>
<li><a href="#toc-8b2">Windows端</a></li>
<li><a href="#toc-e5e">尝试自动复制到剪切板，失败</a></li>
</ul>
</div><p>流程大概是IOS将剪贴板内容通过服务器写到NAS中，再在Windows端运行程序，获取该文件内容写到剪切板中。</p>
<h1><a id="toc-97b" class="anchor" href="#toc-97b"></a>IOS端</h1>
<p>新建一快捷指令，取得剪贴板内容，用&quot;\n&quot;替换掉换行符，然后通过ssh执行命令</p>
<pre><code class="hljs lang-jboss-cli"><span class="hljs-keyword">echo</span> -e <span class="hljs-string">"(快捷指令变量: 已更新的文字)"</span> &gt; <span class="hljs-string">/path/iosPaste</span> &amp;&amp; <span class="hljs-string">/path/pasteToNas.sh</span>
</code></pre><h1><a id="toc-c56" class="anchor" href="#toc-c56"></a>服务器</h1>
<p>服务器上<code>pasteToNas.sh</code>如下</p>
<pre><code class="hljs lang-awk"><span class="hljs-comment">#!/bin/bash</span>

SOURCE_FILE_PATH=<span class="hljs-string">"/path/iosPaste"</span>
DESTINATION_FILE_PATH=<span class="hljs-string">"/path/iosPaste"</span>

SFTP_HOST=***
SFTP_USER=***
SFTP_PORT=***

<span class="hljs-comment"># 使用sftp命令传输文件</span>
sftp -P <span class="hljs-variable">${SFTP_PORT}</span> <span class="hljs-variable">${SFTP_USER}</span>@<span class="hljs-variable">${SFTP_HOST}</span> &lt;&lt;EOF
put -r <span class="hljs-variable">${SOURCE_FILE_PATH}</span> <span class="hljs-variable">${DESTINATION_FILE_PATH}</span>
<span class="hljs-keyword">exit</span>
EOF
</code></pre><h1><a id="toc-8b2" class="anchor" href="#toc-8b2"></a>Windows端</h1>
<pre><code class="hljs lang-arduino"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;windows.h&gt;</span></span>
<span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;stdio.h&gt;</span></span>

<span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">SetClipboardText</span><span class="hljs-params">(<span class="hljs-keyword">const</span> <span class="hljs-keyword">char</span> *<span class="hljs-built_in">text</span>)</span></span>;

<span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>{
    FILE *file;
    <span class="hljs-keyword">char</span> <span class="hljs-built_in">buffer</span>[<span class="hljs-number">1000</span>];
    <span class="hljs-keyword">char</span> content[<span class="hljs-number">10000</span>] = <span class="hljs-string">""</span>;

    file = fopen(<span class="hljs-string">"path/iosPaste"</span>, <span class="hljs-string">"r"</span>);
    <span class="hljs-keyword">if</span> (file == <span class="hljs-literal">NULL</span>) {
        <span class="hljs-built_in">printf</span>(<span class="hljs-string">"Error opening the file.\n"</span>);
        <span class="hljs-keyword">return</span> <span class="hljs-number">1</span>;
    }

    <span class="hljs-keyword">while</span> (fgets(<span class="hljs-built_in">buffer</span>, <span class="hljs-keyword">sizeof</span>(<span class="hljs-built_in">buffer</span>), file) != <span class="hljs-literal">NULL</span>) {
        <span class="hljs-built_in">strcat</span>(content, <span class="hljs-built_in">buffer</span>);
    }

    fclose(file);

    SetClipboardText(content);

    <span class="hljs-built_in">printf</span>(<span class="hljs-string">"File content has been copied to clipboard.\n"</span>);

    <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;
}

<span class="hljs-function"><span class="hljs-keyword">void</span> <span class="hljs-title">SetClipboardText</span><span class="hljs-params">(<span class="hljs-keyword">const</span> <span class="hljs-keyword">char</span> *<span class="hljs-built_in">text</span>)</span> </span>{
    HGLOBAL hMem;
    <span class="hljs-keyword">char</span> *pMem;

    <span class="hljs-keyword">if</span> (!OpenClipboard(<span class="hljs-literal">NULL</span>))
        <span class="hljs-keyword">return</span>;

    EmptyClipboard();

    hMem = GlobalAlloc(GMEM_MOVEABLE, <span class="hljs-built_in">strlen</span>(<span class="hljs-built_in">text</span>) + <span class="hljs-number">1</span>);
    <span class="hljs-keyword">if</span> (hMem == <span class="hljs-literal">NULL</span>) {
        CloseClipboard();
        <span class="hljs-keyword">return</span>;
    }

    pMem = (<span class="hljs-keyword">char</span>*)GlobalLock(hMem);
    <span class="hljs-built_in">strcpy</span>(pMem, <span class="hljs-built_in">text</span>);
    GlobalUnlock(hMem);

    SetClipboardData(CF_TEXT, hMem);

    CloseClipboard();
}
</code></pre><p>或者直接cmd</p>
<pre><code class="hljs lang-arcade">clip &lt; <span class="hljs-regexp">/path/i</span>osPaste
</code></pre><h1><a id="toc-e5e" class="anchor" href="#toc-e5e"></a>尝试自动复制到剪切板，失败</h1>
<p>github更新PowerShell，将ssh默认终端改为Powershell7</p>
<pre><code class="hljs lang-pgsql"><span class="hljs-built_in">New</span>-ItemProperty -<span class="hljs-type">Path</span> "HKLM:\SOFTWARE\OpenSSH" -<span class="hljs-type">Name</span> DefaultShell -<span class="hljs-keyword">Value</span> "C:\Program Files\PowerShell\7\pwsh.exe" -PropertyType String -Force
</code></pre><p>ssh连接后使用下面语句就可以将文本写入到本机(<a href="https://github.com/PowerShell/PowerShell/issues/18116">https://github.com/PowerShell/PowerShell/issues/18116</a>)</p>
<pre><code class="hljs lang-powershell"><span class="hljs-variable">$text</span>=<span class="hljs-string">"text_to_copy"</span>
<span class="hljs-built_in">Write-Host</span> <span class="hljs-string">"`e]52;;<span class="hljs-variable">$</span>([System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(<span class="hljs-variable">$text</span>)))`a"</span>
</code></pre><p>尝试了在NAS中将文本写到ps1文件中，ssh电脑执行，但失败，应该是因为OSC52需要终端</p>
<pre><code class="hljs lang-routeros">echo <span class="hljs-string">'$text=@"'</span> &gt; /path/iosPaste1.ps1<span class="hljs-built_in">
type </span>/path/iosPaste &gt;&gt; /path/iosPaste1.ps1
echo <span class="hljs-string">'"@'</span> &gt;&gt; /path/iosPaste1.ps1
echo <span class="hljs-string">''</span> &gt;&gt; /path/iosPaste1.ps1
echo <span class="hljs-string">'Write-Host "`e]52;;$([System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($text)))`a"'</span> &gt;&gt; /path/iosPaste1.ps1<span class="hljs-built_in">
type </span>/path/iosPaste1.ps1 | ssh ***.***.***.*** -l ***
<span class="hljs-comment">#&amp; "C:\Program Files (x86)\WinSCP\WinSCP.com" `</span>
<span class="hljs-comment">#    /command `</span>
<span class="hljs-comment">#    "open sftp://***@***.***.***.***" `</span>
<span class="hljs-comment">#    "put ""/path/iosPaste1.ps1"" ""/path/temp.ps1""" `</span>
<span class="hljs-comment">#    "exit"</span>
<span class="hljs-comment">#ssh ***.***.***.*** -l *** 'powershell -ExecutionPolicy Bypass -File /path/temp.ps1'</span>
</code></pre>
            ]]></description>
            <pubDate>Thu, 23 May 2024 16:04:33 GMT</pubDate>
            <guid>http://blog.zireaels.com/post/ios_paste.html</guid>
        </item>
        <item>
            <title>将安卓设备通知转发至IOS设备</title>
            <link>http://blog.zireaels.com/post/bark.html</link>
            <description><![CDATA[
            <div class="toc"><ul>
<li><a href="#toc-e05">简介</a></li>
<li><a href="#toc-424">准备</a><ul>
<li><a href="#toc-f36">安卓客户端 SmsForwarder</a></li>
<li><a href="#toc-965">IOS客户端</a></li>
<li><a href="#toc-916">自建服务器</a></li>
</ul>
</li>
<li><a href="#toc-7cd">nginx反向代理+密码认证</a></li>
<li><a href="#toc-088">IOS端配置</a></li>
<li><a href="#toc-ea7">安卓端配置</a></li>
<li><a href="#toc-964">信息加密</a><ul>
<li><a href="#toc-fbe">Bark客户端</a></li>
<li><a href="#smsforwarder">SmsForwarder</a></li>
</ul>
</li>
</ul>
</div><h1><a id="toc-e05" class="anchor" href="#toc-e05"></a>简介</h1>
<p>使用<a href="https://github.com/pppscn/SmsForwarder">SmsForwarder</a>和<a href="https://github.com/Finb/Bark">Bark</a>将安卓手机上的短信、通话记录、应用通知等通过自建服务器<a href="https://github.com/Finb/bark-server">bark-server</a>转发到IOS设备上，免去外出双持烦恼。</p>
<h1><a id="toc-424" class="anchor" href="#toc-424"></a>准备</h1>
<h2><a id="toc-f36" class="anchor" href="#toc-f36"></a>安卓客户端 SmsForwarder</h2>
<p><a href="https://github.com/pppscn/SmsForwarder/releases">https://github.com/pppscn/SmsForwarder/releases</a></p>
<p>安装后打开通用设置，设置转发功能以及保活措施，防止被杀后台。</p>
<p><img src="http://blog.zireaels.com/static/upload/20240220/bark1.jpg" alt="转发功能"></p>
<p><img src="http://blog.zireaels.com/static/upload/20240220/bark2.jpg" alt="保活措施"></p>
<h2><a id="toc-965" class="anchor" href="#toc-965"></a>IOS客户端</h2>
<p>在App Store中搜索Bark并下载。</p>
<h2><a id="toc-916" class="anchor" href="#toc-916"></a>自建服务器</h2>
<p><a href="https://github.com/Finb/bark-server/releases">https://github.com/Finb/bark-server/releases</a></p>
<pre><code class="hljs lang-angelscript">./bark-server -addr <span class="hljs-number">0.0</span><span class="hljs-number">.0</span><span class="hljs-number">.0</span>:<span class="hljs-number">8080</span> -data ./bark-data
</code></pre><h1><a id="toc-7cd" class="anchor" href="#toc-7cd"></a>nginx反向代理+密码认证</h1>
<p>nginx配置文件设置如下，自行修改<code>server_name</code>, <code>auth_basic_user_file</code>, <code>proxy_pass</code>以及https的各项参数。</p>
<pre><code class="hljs lang-nginx"><span class="hljs-comment"># generated 2020-03-26, Mozilla Guideline v5.4, nginx 1.17.7, OpenSSL 1.1.1d, modern configuration</span>
<span class="hljs-comment"># https://ssl-config.mozilla.org/#server=nginx&amp;version=1.17.7&amp;config=modern&amp;openssl=1.1.1d&amp;guideline=5.4</span>
<span class="hljs-section">server</span> {
    <span class="hljs-attribute">listen</span> <span class="hljs-number">80</span>;
    <span class="hljs-attribute">listen</span> [::]:<span class="hljs-number">80</span>;
    <span class="hljs-attribute">server_name</span> bark.zireaels.com;

    <span class="hljs-attribute">return</span> <span class="hljs-number">301</span> https://<span class="hljs-variable">$host</span><span class="hljs-variable">$request_uri</span>;
}

<span class="hljs-section">server</span> {
    <span class="hljs-attribute">listen</span> <span class="hljs-number">443</span> ssl http2;
    <span class="hljs-attribute">listen</span> [::]:<span class="hljs-number">443</span> ssl http2;
    <span class="hljs-attribute">server_name</span> bark.zireaels.com;

    <span class="hljs-attribute">auth_basic</span> <span class="hljs-string">"bark-server"</span>;
    <span class="hljs-attribute">auth_basic_user_file</span> /etc/nginx/.bark.password;

    <span class="hljs-attribute">ssl_certificate</span> /etc/letsencrypt/live/zireaels.com-<span class="hljs-number">0001</span>/fullchain.pem;
    <span class="hljs-attribute">ssl_certificate_key</span> /etc/letsencrypt/live/zireaels.com-<span class="hljs-number">0001</span>/privkey.pem;
    <span class="hljs-attribute">ssl_session_timeout</span> <span class="hljs-number">1d</span>;
    <span class="hljs-attribute">ssl_session_cache</span> shared:MozSSL:<span class="hljs-number">10m</span>;  <span class="hljs-comment"># about 40000 sessions</span>
    <span class="hljs-attribute">ssl_session_tickets</span> <span class="hljs-literal">off</span>;

    <span class="hljs-comment"># modern configuration</span>
    <span class="hljs-attribute">ssl_protocols</span> TLSv1.<span class="hljs-number">3</span>;
    <span class="hljs-attribute">ssl_prefer_server_ciphers</span> <span class="hljs-literal">off</span>;

    <span class="hljs-comment"># HSTS (ngx_http_headers_module is required) (63072000 seconds)</span>
    <span class="hljs-attribute">add_header</span> Strict-Transport-Security <span class="hljs-string">"max-age=63072000"</span> always;

    <span class="hljs-comment"># OCSP stapling</span>
    <span class="hljs-attribute">ssl_stapling</span> <span class="hljs-literal">on</span>;
    <span class="hljs-attribute">ssl_stapling_verify</span> <span class="hljs-literal">on</span>;

    <span class="hljs-comment"># verify chain of trust of OCSP response using Root CA and Intermediate certs</span>
    <span class="hljs-comment"># ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;</span>

    <span class="hljs-comment"># replace with the IP address of your resolver</span>
    <span class="hljs-comment">#resolver 127.0.0.1;</span>

    <span class="hljs-attribute">location</span> / {

        <span class="hljs-attribute">log_not_found</span> <span class="hljs-literal">on</span>;
        <span class="hljs-attribute">proxy_pass</span> http://127.0.0.1:8081;

        <span class="hljs-attribute">proxy_read_timeout</span> <span class="hljs-number">300</span>;
        <span class="hljs-attribute">proxy_connect_timeout</span> <span class="hljs-number">300</span>;
        <span class="hljs-attribute">proxy_redirect</span> <span class="hljs-literal">off</span>;

        <span class="hljs-attribute">proxy_set_header</span> Host              <span class="hljs-variable">$host</span>;
        <span class="hljs-attribute">proxy_set_header</span> X-Forwarded-Proto <span class="hljs-variable">$scheme</span>;
        <span class="hljs-attribute">proxy_set_header</span> X-Real-IP         <span class="hljs-variable">$remote_addr</span>;

    }
}
</code></pre><p>其中，密码文件<code>auth_basic_user_file</code>由如下命令生成：</p>
<pre><code class="hljs lang-livescript">echo -n <span class="hljs-string">'username:'</span> | sudo tee <span class="hljs-regexp">/etc/nginx/</span>.passwords.<span class="hljs-keyword">list</span>
openssl passwd -apr1 | sudo tee -a <span class="hljs-regexp">/etc/nginx/</span>.passwords.<span class="hljs-keyword">list</span>
</code></pre><h1><a id="toc-088" class="anchor" href="#toc-088"></a>IOS端配置</h1>
<p>打开Bark，点击右上角加号添加私有服务器，输入域名(根据自己实际情况修改)</p>
<pre><code class="hljs lang-dts"><span class="hljs-symbol">https:</span><span class="hljs-comment">//username:password@bark.zireaels.com</span>
</code></pre><p>添加完成后复制主页的推送链接备用(删除最后的推送内容)。</p>
<p><img src="http://blog.zireaels.com/static/upload/20240220/bark3.PNG" alt="推送链接"></p>
<h1><a id="toc-ea7" class="anchor" href="#toc-ea7"></a>安卓端配置</h1>
<p>打开SmsForwarder，选择发送通道，点击右上角加号，选择Bark。</p>
<p>在新窗口Bark-Server中填入刚才复制的推送链接，以<code>/</code>结尾。</p>
<p><img src="http://blog.zireaels.com/static/upload/20240220/bark4.jpg" alt="发送通道"></p>
<p>点击测试，可在IOS端收到测试通知即为成功。</p>
<p><img src="http://blog.zireaels.com/static/upload/20240220/bark5.PNG" alt="测试通知"></p>
<p>添加好发送通道后点击转发规则，选择简讯/通话/应用并点击右上角加号添加转发规则，以应用为例：</p>
<p>选择发送通道为刚才新建的bark，匹配字段选择匹配方式，如我想转发某一特定应用的通知则选择APP包名，并在匹配的值里填入应用包名(如微信包名为<code>com.tencent.mm</code>)，下方也可自定义模板等：</p>
<p><img src="http://blog.zireaels.com/static/upload/20240220/bark6.jpg" alt="转发规则"></p>
<p>至此全部配置完成，SmsForwarder可将安卓端的通知通过自建的bark-server服务器转发到IOS的Bark客户端上。</p>
<h1><a id="toc-964" class="anchor" href="#toc-964"></a>信息加密</h1>
<p>SmsForwarder是通过POST明文请求消息推送的，会有信息泄露问题，我们可以在Bark以及SmsForwarder中设置加密方式实现密文传输。</p>
<h2><a id="toc-fbe" class="anchor" href="#toc-fbe"></a>Bark客户端</h2>
<p>打开Bark，下拉找到推送加密，点击加密设置，在里面设置加密算法、Key、IV等参数。</p>
<p><img src="http://blog.zireaels.com/static/upload/20240220/bark7.PNG" alt="推送加密"></p>
<h2><a id="smsforwarder" class="anchor" href="#smsforwarder"></a>SmsForwarder</h2>
<p>点击发送通道，编辑bark通道，下拉选择加密算法、输入Key和IV。</p>

            ]]></description>
            <pubDate>Tue, 20 Feb 2024 23:17:44 GMT</pubDate>
            <guid>http://blog.zireaels.com/post/bark.html</guid>
        </item>
        <item>
            <title>二〇二三 · 香港</title>
            <link>http://blog.zireaels.com/post/2023-hongkong.html</link>
            <description><![CDATA[
            <div class="toc"><ul>
<li><a href="#toc-29d">2.7 深圳</a></li>
<li><a href="#toc-a37">2.8 深圳 - 香港</a></li>
<li><a href="#toc-800">2.9 香港</a></li>
<li><a href="#toc-d20">2.10 香港</a></li>
<li><a href="#toc-a88">2.11 香港 - 深圳 - 哈尔滨</a></li>
<li><a href="#toc-f98">附</a></li>
</ul>
</div><h1><a id="toc-29d" class="anchor" href="#toc-29d"></a>2.7 深圳</h1>
<p>早上9点的动车从家里出发，12点半到达深圳北。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230207_124351.jpg" alt="深圳北"></p>
<p>办完入住之后街边随便找了家店恰了碗肠粉，然后去中行打印信用卡账单。
因为六号刚刚全面通关，再加上福田口岸支行暂停营业，福强支行这边基本全是香港人。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230207_142351.jpg" alt="等待人数：164"></p>
<p>排了将近一个小时实在受不了了，打车去另一支行。到了之后里面也全都是香港人，搞了一个多小时之后打印出来了有银行章有地址的客户信息资料+没章有地址的对账单+有章无地址的信用卡账单，属实是每样都缺点。</p>
<p>在银行忙活完一下午，寄存完行李后就近去了号称狗都不去的点都德，误点了碳水套餐一人嗯造￥130。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230207_182138.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230207_183151.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230207_183709.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230207_183712.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230207_183720.jpg" alt=""></p>
<p>恰完太累了，就回酒店睡觉了。</p>
<h1><a id="toc-a37" class="anchor" href="#toc-a37"></a>2.8 深圳 - 香港</h1>
<p>因为之前没看到外币预约是提前2个<strong>工作</strong>日，所以5号的时候最早只能预约8号取。8:30来到银行门口等到9点开门，取完港币直接去福田口岸。过关还算顺利，全程都是自助。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230208_092529.jpg" alt="福田口岸"></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230208_094618.jpg" alt="过境小票"></p>
<p>过了关在落马洲买了张八达通，坐东铁线转屯马线到达尖东(42.2$)。出站后直接前往中银香港开户，和大堂经理对线好久后才给了我小票排队。</p>
<p>对线大意：</p>
<pre><code class="hljs lang-asciidoc"><span class="hljs-bullet">- </span>在香港工作还是上学？
<span class="hljs-bullet">- </span>旅游。
<span class="hljs-bullet">- </span>旅游是不行的，你开户有什么用途？
<span class="hljs-bullet">- </span>理财。
<span class="hljs-bullet">- </span>当然是为了理财啦！
<span class="hljs-bullet">- </span>投资港股。
</code></pre><p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230208_105410.jpg" alt="排队小票(他从手里拿出来的，可能是别人不想排了还回去的)"></p>
<p>等待期间陆陆续续碰到几位同样讲着普通话说要开户的。等了没多久大堂经理让我先去扫二维码填开户信息，填完后想着前面二十多人要不要吃个饭再来，结果没等多久就有人叫我去柜台办理了。因为提前准备好了地址证明，所以开户还算顺利。唯一的问题就是我的主卡没开国际漫游，收不到验证码，所以手机号绑的是副卡，而且更改手机号只能线下到分行更改。出了银行之后想打开主卡的国际漫游，但开国际漫游需要手机验证码，陷入了死锁，好在后面联系客服打开了。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/Screenshots/Screenshot_2023-02-08-12-53-10-525_com.ct.client.png" alt="开通国际漫游需要验证码，但没开国际漫游收不到验证码"></p>
<p>从中银出来直接前往渣打开户，但和客户经理对线几十分钟后以失败告终。</p>
<p>对线大意：</p>
<pre><code class="hljs lang-asciidoc"><span class="hljs-bullet">- </span>开户用途？
<span class="hljs-bullet">- </span>个人储蓄(不行)。投资港股。
<span class="hljs-bullet">- </span>因为之前汇丰银行给国外洗钱，所以现在开户审查比较严格，需要一个长期的在港证明，投资港股属短期，无法证明。
<span class="hljs-bullet">- </span>我有地址证明。
<span class="hljs-bullet">- </span>大陆的地址证明不行，需要在香港的长期证明，比如工作上学房产等。
<span class="hljs-bullet">- </span>没有。
<span class="hljs-bullet">- </span>重疾险，每月一两千交十五年。
<span class="hljs-bullet">- </span>不干。
<span class="hljs-bullet">- </span>回去等审批，一星期内给你打电话。
</code></pre><p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230208_123005.jpg" alt="渣打的赛博柜台，不过开户不是在这开的"></p>
<p>从渣打出来后前往湾仔电脑城，帮rxz买xss以及碰碰运气看有没有战斧的4090。最后没找到战斧，1780$拿下美版XSS。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230211_084002_01.png" alt="XSS"></p>
<p>把XSS放回酒店之后去大围吃了一家很有名的店，手撕鸡饭50$加鸡10$。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230208_171930.jpg" alt="手撕鸡饭"></p>
<p>吃完后去逛了信和中心，二次元浓度爆表。</p>
<p>回酒店歇了一会就自己去维多利亚港边走了一圈，一整天走了两万八千步。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230208_213143.jpg" alt="维多利亚港"></p>
<h1><a id="toc-800" class="anchor" href="#toc-800"></a>2.9 香港</h1>
<p>早上8点起，九点半到达深水埗继续寻找战斧。到了发现电脑城10点才开门，于是在路边小摊买了份肠粉当早饭(20$比深圳吃的15￥肉多了好几倍)。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_093850.jpg" alt="流落街头"></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_101128.jpg" alt="深水埗"></p>
<p>等到十点钟，电脑城是开门了，但里面的商户基本都没开，无奈离开深水埗前往崇光百货。</p>
<p>崇光百货顶层有一家日本书店，书目还算齐全，逛了逛本想买一本，看了眼价目表作罢。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_112040.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_115655.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_114702.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_114300.jpg" alt=""></p>
<p>崇光百货里的扭蛋层，典中典。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_120347.jpg" alt=""></p>
<p>回酒店歇了会后重回深水埗，先恰了家米其林一星的餐厅。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_141940.jpg" alt="菜单"></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_144240.jpg" alt="脆皮焗叉燒包"></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_144727.jpg" alt="晶瑩鮮蝦餃"></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_145108.jpg" alt="鮮蝦燒麥皇"></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_145234.jpg" alt="鮑汁鳳爪"></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_145237.jpg" alt="陳皮牛肉球"></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_145253.jpg" alt="紅油抄手"></p>
<p>吃完之后回去逛深水埗，还是没找到七彩虹的卡。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_153617.jpg" alt=""></p>
<p>最后只能去提之前预定的AD OC，任务完成。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_171255.jpg" alt="RTX4090 AD OC"></p>
<p>出口转出口转内销，深圳→韩国→香港→深圳。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_182744.jpg" alt="出口转内销"></p>
<p>查了SN码，1月的新货。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/Screenshots/Screenshot_2023-02-09-18-00-36-230_com.android.browser.png" alt=""></p>
<p>回酒店歇了之后去吃了谭仔云南米线，米线56$小菜23$。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_203541.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_203942.jpg" alt=""></p>
<p>一天走了两万两千步。</p>
<h1><a id="toc-d20" class="anchor" href="#toc-d20"></a>2.10 香港</h1>
<p>任务除了办手机卡(想着等去香港前两天再下单邮寄，结果香港邮寄要一周，来不及了)和买老顺德之外都完成了，想着起早出去转转。走到港边香港艺术馆发现十点才开门，在外面的广场碰到一波小学生要采访我，可能是社会实践日什么的吧，我说我听不懂他们就走开了。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_090935.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_091830.jpg" alt="香港艺术馆"></p>
<p>坐地铁去大馆，在外面广场又有两波小学生来采访，同样听到我说听不懂之后走开了。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_110200.jpg" alt="警署"></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_100959.jpg" alt="广场"></p>
<p>在广场上休息以及在大馆里观光的时候又有两波小学生来采访，这次在听到我说听不懂之后切换到了普通话跟我讲。</p>
<pre><code class="hljs lang-asciidoc"><span class="hljs-bullet">- </span>请问你的年龄组别是什么？
<span class="hljs-bullet">- </span>请问你来到香港是做什么？
<span class="hljs-bullet">- </span>以这种方式保留文物古迹好不好？为什么？
<span class="hljs-bullet">- </span>大馆原身是一座监狱，将其改造成现在这样你觉得好不好，为什么？
<span class="hljs-bullet">- </span>如何吸引更多人来？
</code></pre><p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_101653.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_105226.jpg" alt="监狱操场"></p>
<p>从大馆出来之后转了转中环，买了老顺德之后去旺角吃饭。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_114441.jpg" alt="宵夜の選！"></p>
<p>至尊重庆鸡煲自助，一人168$，加鸡20$，从14:00嗯造到16：30。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_140547.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_140944.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_155931.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/Screenshots/Screenshot_2023-02-10-16-00-00-048_com.android.browser.png" alt=""></p>
<p>晚上又去逛了信和</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_191359.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_190557.jpg" alt=""></p>
<p>在一家古董店98$淘到了Halo4限量版，在另一家店398$拿下了密特罗德生存恐惧特别版。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_203619.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_202724.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_200826.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/Screenshots/Screenshot_2023-02-10-20-35-23-942_com.tencent.mobileqq.png" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_202801.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_191544.jpg" alt=""></p>
<p>问了一家霍格沃茨的价格，说698$的现货已经被买走了，498$订下星期到，又问了几家都没货。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_212751.jpg" alt=""></p>
<p>去了几家CD店，有的贵有的便宜，但没买。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230210_194444.jpg" alt=""></p>
<p>回酒店，一天走了两万两千步。</p>
<h1><a id="toc-a88" class="anchor" href="#toc-a88"></a>2.11 香港 - 深圳 - 哈尔滨</h1>
<p>一大早起来收拾东西，拎了两大袋东西出发(只有三件是自己买的，感觉好亏)。</p>
<ul>
<li>RTX 4090 Advanced OC-V * 1</li>
<li>Xbox Series S * 1</li>
<li>Halo 4 Limited Edition * 1</li>
<li>Metroid Dread Special Edition * 1</li>
<li>老顺德 1条 * 10</li>
<li>双飞人 1瓶 * 7</li>
<li>正露丸 1瓶 * 4</li>
<li>泰国青草药膏 4瓶 * 1</li>
<li>活络油 1瓶 * 2</li>
</ul>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230211_084002.jpg" alt="战果"></p>
<p>八达通买卡的时候有50$的押金，在使用的时候可以最多透支50$，早上把余额花剩1.5$(本想花到0.5$，便利店标错价了少花了1$)之后坐上地铁前往口岸，到站余额-40.7$，相当于9.3$买了张卡，不亏。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230211_132332.jpg" alt="八达通"></p>
<p>出了口岸(海关根本不查，早知道多带点了)之后把代购的东西都邮走，取完寄存的行李就去广州酒家恰饭，单人嗯造222.2￥。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230211_120912.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230211_123237.jpg" alt="爽脆鲜虾红米肠"></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230211_123442.jpg" alt="软绵香滑流沙包"></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230211_123445.jpg" alt="经典蟹肉灌汤饺"></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230211_123447.jpg" alt="千锅肥肠"></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230211_123504.jpg" alt=""></p>
<p>蛋黄包：</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230211_123613.jpg" alt=""></p>
<p>吃完就坐地铁去机场了。</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230211_142844.jpg" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230211_143854.jpg" alt=""></p>
<h1><a id="toc-f98" class="anchor" href="#toc-f98"></a>附</h1>
<p>全香港找不出来一张七彩虹</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/Screenshots/Screenshot_2023-02-10-17-40-51-703_networld.price.app.png" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/Screenshots/Screenshot_2023-02-10-17-41-09-129_networld.price.app.png" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/Screenshots/Screenshot_2023-02-10-17-41-24-904_networld.price.app.png" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/Screenshots/Screenshot_2023-02-10-17-41-51-905_networld.price.app.png" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/Screenshots/Screenshot_2023-02-10-17-42-28-010_networld.price.app.png" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/Screenshots/Screenshot_2023-02-10-17-42-38-325_networld.price.app.png" alt=""></p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/Screenshots/Screenshot_2023-02-10-17-42-59-642_com.whatsapp.png" alt=""></p>
<p>港铁线路图</p>
<p><img src="http://blog.zireaels.com/static/upload/20230210/IMG_20230209_123236.jpg" alt="港铁线路图"></p>

            ]]></description>
            <pubDate>Sat, 11 Feb 2023 23:25:50 GMT</pubDate>
            <guid>http://blog.zireaels.com/post/2023-hongkong.html</guid>
        </item>
        <item>
            <title>桐言桐语</title>
            <link>http://blog.zireaels.com/post/tonguage.html</link>
            <description><![CDATA[
            <div class="toc"></div><p>计算机天下第一（后修正为有钱才是天下第一，但计算机有钱，没有问题）</p>
<p>缺点是……优点是……</p>
<p>简称……（越简越长）</p>
<p>我没有瞧不起你，就是觉得比你高一等</p>
<p>不吃饼就不能成为大写的人，所以你要吃饼</p>
<p>晚饭要吃高热量的食物</p>
<p>这句话不是我说的，是全球公认的</p>
<p>don&#39;t 忘了，you are the gad.</p>
<p>不背债务就不能成为一个大写的人</p>
<p>我们公司是零风险，不是什么一风险二风险，就是零风险</p>
<p>I&#39;m tiu 菜 tiu vegetable.</p>
<p>如果你能送我一把乐器，一万以上，我就能用这把乐器演奏，一次</p>
<p>左小于号 右小于号……关键我又没说错啊</p>
<p>冰镇骰子 还可以刻自己的lao gou上去</p>
<p>我无话可讲，……（开始说）</p>
<p>不如这样吧，我这门课考75以下就完了</p>
<p>我后面要认真学习，我说话从不食言，天天学成这个鬼样子，后面都没命可活</p>
<p>人活着就是为了盗版，你不让我看电影不就等于要我命吗</p>
<p>巨神这个词是我发明的，至少在我们这个寝室是我第一个提出来的</p>
<p>这个和这个垂直</p>
<p>我不吃饭啊，我吃饼，饼不是饭，饭是大米，你们是什么时候开始觉得饼是饭的</p>
<p>这是最后一个星球杯，……（沉默），哦这是这小时最后一个星球杯（20点53分）</p>
<p>我小学五年级的时候，数学老师姓赵，叫赵老师</p>
<p>大数据 big da ta</p>
<p>这样吧，我是中写的人，我也不是小写的人，也不是大写的人，是中写的人</p>
<p>对，这叫解说自己。嘿（一声）！</p>
<p>草！华科那个宿舍！那是人住的吗？</p>
<p>好想一辈子躺在床上。啊，也不一定是躺在床上，就是休闲</p>
<p>——哪里可以做大保健？
——只要有心，随时随地都可以。你现在可以想象自己在做大保健。你看王阳明，啊不对，是陶渊明。虽然身在终南山之中，但是就像身处在闹市中一样，就要有这种隐士之心</p>
<p>我绝对不会通过吃软饭来买房的，这个实在是不好，叫not good</p>
<p>女朋友有什么用，她能让我拿到腾讯的sp吗</p>
<p>——我宣布白天睡觉的都是懒狗
——但是你现在的白天就是欧美的晚上</p>
<p>我要放飞自我，成为真正的我，就是躺，一个字，躺。人活着为了啥，当然是为了划。</p>
<p>贝叶斯我会，计算机网络我会，但贝叶斯网络我不会。贝叶斯嘛肯定是会的，网络嘛肯定也是会的，你看我计算机网络实验1都写完了，但贝叶斯网络不会</p>
<p>给你0元，0元，这么多还不要啊。0是最大的数字也是最小的数字你知不知道啊，你看0就像是一个圆。</p>
<p>那个宿舍是上床下铺吗</p>
<p>——lvat，你隐瞒情史
——对，因为我是秦始皇</p>
<p>我已经失去了目标和方向，只剩死亡。</p>
<p>我唱歌挺好听的，我脸长得也挺标志，瘦下来还是挺标志的（照镜子），但是没有背后资本推动和流量，我爸也不是老赖，我离大明星只差一步。</p>
<p>我只说有道理的话。</p>
<p>这是鸡蛋的哲学，叫chicken eggs……哎呀，不知道……zhe xue～</p>
<p>我的身高是不定型的</p>
<p>——人就从一个地方躺着换到另一个地方，从小床换到大床，从大床换到什么？
——不知道。
——换到icu病床，哈哈哈。从icu病房再换到坟墓，人不就是这样的吗，〈缺失〉</p>
<p>好烦啊，他就不能现在就把钱给我么，我不想面试。</p>
<p>呜我脸皮好薄，没脸见人了。</p>
<p>明天我要开始奋勇学习了。</p>
<p>我要出嫁（价），我要出嫁。</p>
<p>哎呦我是真撑了，这半片面包你吃吗，不要钱白送你了。真的，不要钱，我是真拉了。</p>
<p>有一句话说得好，好言难劝该死的鬼。</p>
<p>我是卢姥爷，我脖子疼。</p>
<p>——lvat i need your help
——不可能不可能不可能我要去上厕所！</p>
<p>语音笔记
苹果，讲实话，唉！</p>
<p>这牌我只能说一个字，大！两个字，大得离谱！</p>
<p>诶，我爸。爸爸爸爸。</p>
<p>好！终于搜到正版王翰坤了！</p>
<p>我已经预感到了，我吃这玩意吃到最后可能会饿。</p>
<p>——dxy在不在这个寝？
——（扭头）dxy在不在这个寝？哦肯定不在哈哈哈。</p>
<p>——我中午吃了肯德基。
——外卖吗？
——不是，在现场吃的。</p>
<p>今天体检把我半条命体没了。</p>
<p>分组的时候我要倒着来，那就是正着来。</p>
<p>我原本觉得芜湖很没意思，后来我发现工大更没意思，其实最有意思的还是好地方，人称，公司。</p>
<p>发行一个数据库的比特币。</p>
<p>上厕所这件事能预知吗？不能。预知不了。</p>
<p>计划不就是给人看的嘛。</p>
<p>这么跟你说吧，我爸在——一年前——是全宇宙联合大总统。</p>
<p>人生就是，逆境时，不折腰。顺境时，不骄傲。</p>
<p>在计算机领域，开卷（四声），就代表成功。</p>
<p>有没有无痛健身啊？</p>
<p>以后我要把这个西瓜霜润喉片当饭吃，因为吃了好像没什么副作用。我觉得能大批量吃的只有西瓜霜润喉片。</p>
<p>语音笔记
靠嗷嗷嗷～</p>
<p>我家已经穷得揭不开锅了。</p>
<p>哈尔滨穷的穷富的富两极分化，富的就能买可达鸭。前一段时间大连公安局局长不是被抓了吗，连着三任公安局局长都被抓了，还有那个龙江的电力局副局长，贪了两个亿，（停顿）他们肯定能买得起可达鸭。</p>
<p>你就去津巴布韦，去了直接给她打一个亿，她一看：“诶～一个亿～”</p>
<p>——诶你有没有感觉今天的水有点不对劲啊
——没啊咋了
——游不动啊
……
——你这跟躺尸似的
——对啊，这叫唐诗健法知道吧
……
——我有种预感，如果我再游的话就会猝掉</p>
<p>不，我输了但是我赢了。知道吧，赢和输是有两面性的。</p>
<p>你们没有那种感觉吗，五星级酒店，被子是硬的，床单是细的。</p>
<p>真正的老地道哈尔滨人，叫哈尔滨地道战。</p>
<p>载客，不是说宰了客人啊，是说搭着客人。</p>
<p>有一句话说得好叫效率就是生命。我小时候打水仗独创过一招叫二连喷射你知道吧，就是往前推再往下压，你看这样就有两个波，（停顿）效率为2。</p>
<p>选饮料就像小马过河，有的马觉得深，有的马觉得浅。</p>
<p>我现在主要是肥了，一胖遮百美。</p>
<p>蟹黄除了贵没别的优点，不对那是缺点，那就是一无是处。</p>
<p>我 没 喝 过 任何纯净水。</p>
<p>你们的任务就完成嘞。</p>

            ]]></description>
            <pubDate>Tue, 05 Jul 2022 21:54:42 GMT</pubDate>
            <guid>http://blog.zireaels.com/post/tonguage.html</guid>
        </item>
        <item>
            <title>二〇二二 · 毕业旅行</title>
            <link>http://blog.zireaels.com/post/graduation-trip.html</link>
            <description><![CDATA[
            <div class="toc"><ul>
<li><a href="#toc-c63">6.16 哈尔滨 - 沈阳 G774</a></li>
<li><a href="#toc-3d3">6.17 沈阳 - 哈尔滨 G2633</a></li>
<li><a href="#toc-72b">6.18 哈尔滨</a></li>
<li><a href="#toc-b22">6.19 哈尔滨</a></li>
<li><a href="#toc-f4c">6.20 哈尔滨 - 成都 CA2714</a></li>
<li><a href="#toc-37e">6.21 成都</a></li>
<li><a href="#toc-633">6.22 成都</a></li>
<li><a href="#toc-2d3">6.23 成都</a></li>
<li><a href="#toc-392">6.24 成都 - 南京 3U8993</a></li>
<li><a href="#toc-495">6.25 南京 - 芜湖 G7785</a></li>
<li><a href="#toc-875">6.26 芜湖</a></li>
<li><a href="#toc-556">6.27 芜湖 - 合肥 G7724</a></li>
<li><a href="#toc-7e4">6.28 结束</a></li>
<li><a href="#toc-c5b">烂活</a></li>
</ul>
</div><h1><a id="toc-c63" class="anchor" href="#toc-c63"></a>6.16 哈尔滨 - 沈阳 G774</h1>
<p>毕业生离校的最后期限，上午收拾好东西办好寄存后中午从学校出发。</p>
<p>到了沈阳之后晚饭恰松兰味，拌饭酱料有点少。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip1.jpg" alt="拌饭"></p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip2.jpg" alt="板筋"></p>
<p>恰完晚饭去唱K，没有伟大导师的KTV少点味道。</p>
<p>夜宵传说鸡架，吃了草莓，令人感叹。</p>
<p>晚上回酒店看到了非常抽象的京东家电</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip3.jpg" alt="京东家电"></p>
<h1><a id="toc-3d3" class="anchor" href="#toc-3d3"></a>6.17 沈阳 - 哈尔滨 G2633</h1>
<p>上午：沈阳大街圣地巡礼。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip4.jpg" alt="圣地巡礼"></p>
<p>中午：汉江烤肉、中街冰点。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip5.jpg" alt="汉江烤肉"></p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip6.jpg" alt="中街冰点"></p>
<p>晚饭：回到哈尔滨后大左小厨</p>
<p>之后进学校住了两天，没活。</p>
<h1><a id="toc-72b" class="anchor" href="#toc-72b"></a>6.18 哈尔滨</h1>
<p>把16号没来得及签的名补上了。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip7.jpg" alt="数院"></p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip8.jpg" alt="经管"></p>
<h1><a id="toc-b22" class="anchor" href="#toc-b22"></a>6.19 哈尔滨</h1>
<p>中午离校，把行李放到酒店，下午从酒店出发做核酸、逛中央大街、看日落。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip9.jpg" alt="哈工大中心"></p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip10.jpg" alt="日落"></p>
<p>晚饭：金土地</p>
<h1><a id="toc-f4c" class="anchor" href="#toc-f4c"></a>6.20 哈尔滨 - 成都 CA2714</h1>
<p>机场两人嗯造三盒炒面王，在飞机上把开坑一年多的《普通语言学教程》推进了一章。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip11.jpg" alt="炒面王"></p>
<p>在民宿放完行李后就去吃了晚饭。</p>
<p>叶婆婆钵钵鸡</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip12.jpg" alt="叶婆婆钵钵鸡"></p>
<p>吃完后骑车到建设路吃小吃。</p>
<p>晚上回到民宿后打德州扑克，1W1L。</p>
<h1><a id="toc-37e" class="anchor" href="#toc-37e"></a>6.21 成都</h1>
<p>中午饕林</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip13.jpg" alt="饕林"></p>
<p>下午鹤鸣茶社打德州，1W0L。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip14.jpg" alt="鹤鸣茶社"></p>
<p>晚饭巴蜀大将</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip15.jpg" alt="巴蜀大将"></p>
<p>吃完后逛宽窄巷子，lmy买的帽子第三天就丢了。</p>
<p>晚上回到民宿继续德州，1W0L，75%胜率的含金量。</p>
<h1><a id="toc-633" class="anchor" href="#toc-633"></a>6.22 成都</h1>
<p>上午去看大熊猫，见到了心心念念的和花。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip16.jpg" alt="和花"></p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip17.jpg" alt="和花"></p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip18.jpg" alt="和花"></p>
<p>中午赶回去吃烤匠烤鱼</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip19.jpg" alt="烤匠"></p>
<p>下午ktv，有了伟大导师之后对味了！</p>
<p>晚上街边豆花面</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip20.jpg" alt="豆花面"></p>
<p>吃完去livehouse，待了一会振麻了，走了。</p>
<h1><a id="toc-2d3" class="anchor" href="#toc-2d3"></a>6.23 成都</h1>
<p>上午四川博物院，骑车6.1公里居然比打车三人组快。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip21.jpg" alt="四川博物院"></p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip22.jpg" alt="骑车"></p>
<p>骑车路上遇到了口哨仙人，戴个麦吹口哨吹一路。</p>
<p>中午退掉民宿后把行李放在酒店，骑车去集源江湖菜。</p>
<p>吃饭的时候卡了鱼刺，去新华医院做喉镜。打了麻药，出来做核酸都没感觉。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip39.jpg" alt="喉镜"></p>
<p>“成都新华医院是按照国家三级甲等医院标准建设的国家三级乙等医院。”</p>
<p>下午在酒店躺，与席主郭和啸子哥分别。</p>
<p>晚上去吃川麻九宫格，逛望平街。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip40.jpg" alt="川麻九宫格"></p>
<p>夜宵M记，回到酒店给whk过贺信生日，与上官分别。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip23.jpg" alt="贺信生日"></p>
<h1><a id="toc-392" class="anchor" href="#toc-392"></a>6.24 成都 - 南京 3U8993</h1>
<p>噩梦的一天。</p>
<p>早上6点半疼醒起来拉肚子，中午飞机晚点一个小时，飞机上睡觉被空调吹得头疼，到了南京城际班车停运，到了南京南站高铁票售罄，最后到酒店头还是疼，美团买了药，吃个馄饨睡觉。</p>
<h1><a id="toc-495" class="anchor" href="#toc-495"></a>6.25 南京 - 芜湖 G7785</h1>
<p>早上耿福兴，恰了上过舌尖上的中国的虾籽面，没觉得有多好吃。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip26.jpg" alt="耿福兴"></p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip24.jpg" alt="虾籽面"></p>
<p>之后去了铁画厂，大导师送我们一人一幅迎客松。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip25.jpg" alt="铁画厂"></p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip41.jpg" alt="迎客松"></p>
<p>中午渣肉蒸饭，肠炎还没好，只吃了一半。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip27.jpg" alt="渣肉蒸饭"></p>
<p>下午芜湖古城，滨江公园。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip28.jpg" alt="芜湖古城"></p>
<p>我爱芜湖，华为爱我。鞠躬！</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip29.jpg" alt="我爱芜湖"></p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip30.jpg" alt="华为爱我"></p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip31.jpg" alt="鞠躬！"></p>
<p>晚上皖江小院，恰了阿姨熬的粥，六个菜一样只吃了一口。</p>
<p>摸到了M2的mbp。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip32.jpg" alt="M2 mbp"></p>
<p>晚21:58于酒店楼下的蜜雪冰城与伟大导师分别。</p>
<h1><a id="toc-875" class="anchor" href="#toc-875"></a>6.26 芜湖</h1>
<p>早上罗森恰个包子出发去方特东方神画</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip33.jpg" alt="方特东方神画"></p>
<p>中午在方特里的人民大食堂解决，81块三个人不算贵。</p>
<p>晚上小菜园，芜湖的最后一顿</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip34.jpg" alt="小菜园"></p>
<p>之后在xx区xxx院前拍照。</p>
<h1><a id="toc-556" class="anchor" href="#toc-556"></a>6.27 芜湖 - 合肥 G7724</h1>
<p>中午庐州太太</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip35.jpg" alt="沙拉牛肉"></p>
<p>下午庐州烤鸭店恰了小笼包，买了詹记桃酥。</p>
<p>晚上老乡鸡，合肥的最后一顿。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip36.jpg" alt="老乡鸡"></p>
<p>与whk分别。</p>
<h1><a id="toc-7e4" class="anchor" href="#toc-7e4"></a>6.28 结束</h1>
<p>与lmy分别。</p>
<p>坐的高铁是黑龙江省文旅厅赞助的，这下飞机高铁全白坐了。</p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip37.jpg" alt="北国好风光，尽在黑龙江！"></p>
<p>再见了，所有的陆零捌零·壹零壹零。</p>
<h1><a id="toc-c5b" class="anchor" href="#toc-c5b"></a>烂活</h1>
<p><span style="color:red">“我知道那张图啥意思了”</span></p>
<p>“所以啥意思啊”</p>
<p><span style="color:red">“所以啥意思啊”</span></p>
<p>“所以啥意思啊”</p>
<p><span style="color:red">“啸子哥”</span></p>
<p>“所以啥意思啊”</p>
<p><span style="color:red">“发的图片”</span></p>
<p>“所以啥意思啊”</p>
<p><span style="color:red">“不说话”</span></p>
<p>“所以啥意思啊”</p>
<p><span style="color:red">“知道你姓啥”</span></p>
<p>“所以啥意思啊”</p>
<p><span style="color:red">“新年快乐”</span></p>
<p><img src="http://blog.zireaels.com/static/upload/20220701/trip38.jpg" alt="烂活"></p>

            ]]></description>
            <pubDate>Fri, 01 Jul 2022 13:29:52 GMT</pubDate>
            <guid>http://blog.zireaels.com/post/graduation-trip.html</guid>
        </item>
    </channel>
</rss>
