<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>HomeLab on 远思码技术实验室</title><link>https://yuansima.com/tags/homelab/</link><description>Recent content in HomeLab on 远思码技术实验室</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Mon, 16 Feb 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://yuansima.com/tags/homelab/index.xml" rel="self" type="application/rss+xml"/><item><title>打破内网藩篱：用 FRP 构建 HomeLab 的全天候访问通道</title><link>https://yuansima.com/p/frp-intranet-penetration/</link><pubDate>Mon, 16 Feb 2026 10:00:00 +0800</pubDate><guid>https://yuansima.com/p/frp-intranet-penetration/</guid><description>&lt;h2 id="痛点我在星巴克服务器在家里"&gt;痛点：我在星巴克，服务器在家里
&lt;/h2&gt;&lt;p&gt;上一篇文章我们用 &lt;strong&gt;Minisforum N5 Pro&lt;/strong&gt; 搭建了完美的 P
xVE + TrueNAS 底座。但问题随之而来：当我带着 MacBook 出门，坐在星巴克想查看家里正在跑的 &lt;strong&gt;ST-GNN 模型训练进度&lt;/strong&gt;，或者想远程 SSH 修复一个 Bug 时，却发现连不上家里的局域网。&lt;/p&gt;
&lt;p&gt;没有公网 IPv4？不想用慢吞吞的向日葵/TeamViewer？
&lt;strong&gt;FRP&lt;/strong&gt; 是目前最适合技术人员的解决方案：稳定、开源、配置灵活。&lt;/p&gt;
&lt;h2 id="准备工作"&gt;准备工作
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;一台有公网 IP 的 VPS&lt;/strong&gt;：作为中转服务器（Server）。配置要求极低，阿里云/腾讯云最便宜的实例即可（带宽建议 5Mbps 以上）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;家里的 HomeLab&lt;/strong&gt;：作为客户端（Client），即我们的 N5 Pro。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="1-服务端配置-vps"&gt;1. 服务端配置 (VPS)
&lt;/h2&gt;&lt;p&gt;&lt;em&gt;注意：从 v0.52 版本开始，FRP 全面拥抱 &lt;strong&gt;TOML&lt;/strong&gt; 格式，旧的 INI 配置已不推荐使用。&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;首先在 VPS 上下载对应架构的 FRP（通常是 &lt;code&gt;linux_amd64&lt;/code&gt;），解压后我们只需要 &lt;code&gt;frps&lt;/code&gt; 和 &lt;code&gt;frps.toml&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;编辑 &lt;code&gt;frps.toml&lt;/code&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-toml" data-lang="toml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# frps.toml (服务端配置)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;bindPort&lt;/span&gt; = &lt;span style="color:#ae81ff"&gt;7000&lt;/span&gt; &lt;span style="color:#75715e"&gt;# FRP 服务监听端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;vhostHTTPPort&lt;/span&gt; = &lt;span style="color:#ae81ff"&gt;8080&lt;/span&gt; &lt;span style="color:#75715e"&gt;# HTTP 穿透端口 (可选)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;vhostHTTPSPort&lt;/span&gt; = &lt;span style="color:#ae81ff"&gt;443&lt;/span&gt; &lt;span style="color:#75715e"&gt;# HTTPS 穿透端口 (可选)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 身份验证 (非常重要！)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;auth&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;method&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;token&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;auth&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;token&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;Yuansi_Lab_Secret_2026_Key&amp;#34;&lt;/span&gt; &lt;span style="color:#75715e"&gt;# 请换成复杂的密码&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 控制台 (可选，用于查看连接状态)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;webServer&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;addr&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;0.0.0.0&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;webServer&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;port&lt;/span&gt; = &lt;span style="color:#ae81ff"&gt;7500&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;webServer&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;user&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;admin&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;webServer&lt;/span&gt;.&lt;span style="color:#a6e22e"&gt;password&lt;/span&gt; = &lt;span style="color:#e6db74"&gt;&amp;#34;admin123&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;启动服务端（建议使用Systemd托管，这里演示临时启动）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./frps -c frps.toml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;p&gt;###2.客户端配置(HomeLab / N5 Pro)在家里的Ubuntu虚拟机或直接在PVE宿主机上配置客户端。我们需要frpc和&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-'toml" data-lang="'toml"&gt;# frpc.toml (客户端配置)

serverAddr = &amp;#34;119.96.23.226&amp;#34;
serverPort = 7000
auth.method = &amp;#34;token&amp;#34;
auth.token = &amp;#34;&amp;#34; # 你的 Token

# ... 上面的 [common] 配置保持不变 ...

# 让云端把 80 端口的 HTTP 流量全交给本地 Nginx
[[proxies]]
name = &amp;#34;web_http&amp;#34;
type = &amp;#34;http&amp;#34;
localIP = &amp;#34;127.0.0.1&amp;#34;
localPort = 80
customDomains = [&amp;#34;yuansima.com&amp;#34;, &amp;#34;www.yuansima.com&amp;#34;, &amp;#34;ai.yuansima.com&amp;#34;, &amp;#34;lab.yuansima.com&amp;#34;]
# 让云端把 443 端口的 HTTPS 流量全交给本地 Nginx (为接下来的 Certbot 准备)
[[proxies]]
name = &amp;#34;web_https&amp;#34;
type = &amp;#34;https&amp;#34;
localIP = &amp;#34;127.0.0.1&amp;#34;
localPort = 443
customDomains = [&amp;#34;yuansima.com&amp;#34;, &amp;#34;www.yuansima.com&amp;#34;, &amp;#34;ai.yuansima.com&amp;#34;, &amp;#34;lab.yuansima.com&amp;#34;]

启动客户端：
bash
./frpc -c frpc.toml
3.进阶：Systemd自动启动
为了保证服务器重启后FRP自动拉起，我们需要编写systemd 服务文件。
以客户端为例，创建/etc/systemd/system/frpc.service:
```ini
[Unit]
Description=Frp Client Service
After=network.target

[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.toml

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;然后启用并运行：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl enable frpc
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl start frpc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;安全警示
把内网端口暴露在公网是一把双刃剑。远思技术实验室 建议：
1.强密码：PVE和SSH的密码必须极其复杂。
2.防火墙：VPS上的安全组只开放必要的端口（如6000, 8006)。
3.Fail2Ban：在服务端部署Fail2Ban，防止暴力破解。
有了这条加密通道，无论身在何处，我的HomeLab就在指尖。
打开默认配置文件&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo nano /etc/nginx/sites-available/default
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;配置内容如下：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 1. 处理 www 的请求：自动 301 跳转到主域名&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;server {&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;server_name www.yuansima.com;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;return 301 http://yuansima.com$request_uri;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 2. 处理主域名请求，反向代理给内部的 Hugo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;server {&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;server_name yuansima.com 192.168.31.56;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;location / {&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;proxy_pass http://127.0.0.1:1313;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;proxy_set_header Host $host;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;proxy_set_header X-Real-IP $remote_addr;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 这是专门给 Open WebUI 准备的独立大厅&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;server {&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;server_name ai.yuansima.com;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;location / {&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;proxy_pass http://192.168.31.138:3000; # 直接转给 138 机器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;proxy_set_header Host $host;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;proxy_set_header X-Real-IP $remote_addr;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;proxy_http_version 1.1;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;proxy_set_header Upgrade $http_upgrade;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;proxy_set_header Connection &amp;#34;upgrade&amp;#34;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 这是专门给 Jupyter Lab 准备的独立大厅&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;server {&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;server_name lab.yuansima.com;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;location / {&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;proxy_pass http://127.0.0.1:8888; # Jupyter 跑在本机 8888 端口&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;proxy_set_header Host $host;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;proxy_set_header X-Real-IP $remote_addr;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Jupyter 强依赖 WebSocket（比如运行终端和内核），这两行必须有&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;proxy_http_version 1.1;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;proxy_set_header Upgrade $http_upgrade;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;proxy_set_header Connection &amp;#34;upgrade&amp;#34;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# 防止跑长时间代码时 Nginx 自动断开连接&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;proxy_read_timeout 86400;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;重新加载配置&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo nginx -s reload
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;安装证书申请程序&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt update
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt install certbot python3-certbot-nginx -y
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;证书申请&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo certbot --nginx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>小主机大作为：Minisforum N5 Pro 打造 PVE + TrueNAS All-in-One 家庭数据中心</title><link>https://yuansima.com/p/minisforum-pve-truenas/</link><pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate><guid>https://yuansima.com/p/minisforum-pve-truenas/</guid><description>&lt;h2 id="为什么选择-all-in-one"&gt;为什么选择 All-in-One？
&lt;/h2&gt;&lt;p&gt;作为一名量化交易者和开发者，我对家庭数据中心的需求非常明确：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;高性能计算&lt;/strong&gt;：需要运行 DolphinDB 和 Python 策略容器。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;大容量存储&lt;/strong&gt;：海量的 Tick 数据和训练集需要可靠的 ZFS 存储。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;低功耗&lt;/strong&gt;：7x24 小时运行，电费敏感。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Minisforum N5 Pro&lt;/strong&gt; 凭借其优秀的能效比和扩展性（双 2.5G 网口 + 多盘位支持），成为了我构建 &lt;strong&gt;Proxmox VE (PVE)&lt;/strong&gt; 底层 + &lt;strong&gt;TrueNAS Scale&lt;/strong&gt; 存储层的最佳载体。&lt;/p&gt;
&lt;h2 id="架构设计"&gt;架构设计
&lt;/h2&gt;&lt;p&gt;我的 All-in-One (AIO) 架构如下：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;底层系统 (Host)&lt;/strong&gt;: Proxmox VE 8.x&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;核心虚拟机 (VM1)&lt;/strong&gt;: TrueNAS Scale (直通 SATA 控制器，管理所有机械硬盘)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;应用虚拟机 (VM2)&lt;/strong&gt;: Ubuntu Server (跑 Docker, ClickHouse, JupyterLab)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;网络&lt;/strong&gt;: OpenWrt (旁路由模式，可选)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="核心步骤记录"&gt;核心步骤记录
&lt;/h2&gt;&lt;h3 id="1-基础环境安装-pve"&gt;1. 基础环境：安装 PVE
&lt;/h3&gt;&lt;p&gt;这步比较常规，下载 PVE ISO 写入 U 盘启动即可。
&lt;strong&gt;注意点&lt;/strong&gt;：
建议将 PVE 安装在独立的 NVMe SSD 上，不要占用 SATA 接口，把 SATA 通道全部留给 TrueNAS。&lt;/p&gt;
&lt;h3 id="2-关键难点sata-控制器直通-pcie-passthrough"&gt;2. 关键难点：SATA 控制器直通 (PCIe Passthrough)
&lt;/h3&gt;&lt;p&gt;为了让 TrueNAS 能够完全掌控硬盘（实现 SMART 监控和硬盘休眠），必须将 SATA 控制器透传给虚拟机，而不是通过虚拟磁盘映射。&lt;/p&gt;
&lt;p&gt;首先，在 PVE 的 Shell 中开启 IOMMU：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;nano /etc/default/grub
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 修改 GRUB_CMDLINE_LINUX_DEFAULT 如下&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;GRUB_CMDLINE_LINUX_DEFAULT&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;quiet intel_iommu=on&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 更新 Grub&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;update-grub
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;reboot
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mastering-systemd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;重启后，在PVE界面创建一个新的虚拟机
(TrueNAS)，在“硬件”选项卡中添加PCI设
备。选择对应的SATA Controller（通常是ASM1166或Intel原生控制器）。
远思提示：如果勾选”所有功能(All
Functions)”导致虚拟机无法启动，请尝试取消勾选、或者检查是否与PVE的系统盘冲突。
3.TrueNAS Scale 配置
TrueNAS启动后，应该能直接识别到所有物理硬盘。
·存储池(Pool)：我组建了一个RAID-Z1池，
兼顾冗余和容量。
·网络共享：开启NFS和SMB。
·数据集(Dataset)：
· /mnt/data/quant （存放CSV/
Parquet原始数据）
·/mnt/data/docker_vol
4.内部万兆互联(VirtlO)
为了让PVE里的Ubuntu虚拟机能以极快速度访问TrueNAS里的数据，我们不需要走物理网线。
在TrueNAS和Ubuntu的网卡设置中，确保模型都选择VirtIO(paravirtualized)。在PVE内部，通过Linux Bridge (vmbrO)，这两台虚拟机之间的通信速度仅受CPU和内存带宽限制，实测可以轻松跑满10Gbps+，这对于加载几百GB的训练数据至关重要。
避坑指南
1.内存分配：ZFS非常吃内存(ARC缓
存)。我的N5Pro插了32GB内存，分了16GB给TrueNAS，保证读取命中率。
2.引导顺序：在PVE的”选项”中，设置
TrueNAS为“开机自启”、并设置30秒的启动延迟给其他依赖存储的虚拟机。
结语
经过一周的压力测试，这套Minisforum N5
Pro + PVE + TrueNAS的组合运行极其稳定。
它不仅是我代码的仓库，更是我量化模型的“核动力“数据底座。&lt;/p&gt;</description></item><item><title>关于</title><link>https://yuansima.com/page/about/</link><pubDate>Sun, 15 Feb 2026 00:00:00 +0800</pubDate><guid>https://yuansima.com/page/about/</guid><description>&lt;p&gt;欢迎来到 &lt;strong&gt;远思码技术实验室&lt;/strong&gt; (Yuansima Technology Laboratory)。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;远思为径，码动价值。&lt;/strong&gt;
远思码技术实验室是一家以技术驱动为核心的研发平台。我们致力于跨越前沿学术理论与商业应用之间的鸿沟，为数据分析、智能决策和底层架构提供坚实可靠的工程化解决方案。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="核心业务与研究方向"&gt;核心业务与研究方向
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;数据驱动的量化投资体系&lt;/strong&gt;
专注于 A 股市场（尤其聚焦高股息红利资产）的稳健策略研发。团队深度应用前沿的时间序列预测与深度学习架构（包括 Temporal Fusion Transformers, PatchTST, XGBoost, DLinear 等），并深度整合 AkShare, Qlib, VectorBT 等金融投研框架与 ClickHouse 高性能列式数据库，构建了具备机构级处理能力的自动化数据分析与交易系统。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;私有化大语言模型解决方案&lt;/strong&gt;
聚焦企业级数据安全与 AI 效率的平衡，致力于构建高效的本地化人工智能算力环境。我们通过系统级优化，在私有计算节点上部署与微调顶尖开源大语言模型（如 Qwen, Gemma, Nemotron 等），深度挖掘 AI 在智能编码辅助、复杂数据处理及自动化业务工作流中的实际商业价值。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;高能效敏捷底层架构底座&lt;/strong&gt;
实验室的所有核心业务均运行于自主设计的高性能私有云架构之上。基于 Proxmox VE 企业级虚拟化平台，结合 TrueNAS 存储与 Docker 容器化编排，构建了高可用的底层网络。算力节点依托定制的 &lt;strong&gt;Minisforum N5 Pro&lt;/strong&gt; 边缘计算方案，深度压榨 &lt;strong&gt;Radeon 890M&lt;/strong&gt; 核心的 AMD AI 算力加速引擎，并配备 96GB 超大内存与 TiPlus7100s 高速存储矩阵，为海量金融数据吞吐与本地模型推理提供极具性价比与可靠性的算力支撑。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="我们的团队"&gt;我们的团队
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;远思码技术实验室&lt;/strong&gt;由具备量化投研、人工智能与底层系统架构经验的专业工程师共同创立。我们秉持“开源、严谨、务实”的工程师文化，坚持用优雅的代码和硬核的架构解决复杂的商业与技术问题。&lt;/p&gt;
&lt;p&gt;我们期待与行业伙伴、开发者以及志同道合的技术专家展开深度的技术探讨与合作。&lt;/p&gt;
&lt;h3 id="联系与合作"&gt;联系与合作
&lt;/h3&gt;&lt;p&gt;如需交流技术方案、探讨量化策略或寻求业务合作，欢迎通过以下方式与我们取得联系：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;商务及技术合作:&lt;/strong&gt; &lt;a class="link" href="mailto:hi@yuansima.com" &gt;hi@yuansima.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;官方网站:&lt;/strong&gt; &lt;a class="link" href="https://yuansima.com" target="_blank" rel="noopener"
 &gt;yuansima.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;开源主页:&lt;/strong&gt; 请点击页面侧边栏的 GitHub 图标访问我们的开源项目代码库。&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>