mirror of
https://gitee.com/xmz7891/ykxmz.git
synced 2026-10-18 13:40:45 +00:00
加一份免费托管方案调研文档
用户问:网上有没有免费办法托管中转服务。 查了协议架构:全是 HTTP 长轮询(agent/register、agent/poll、 agent/send、agent/bye),没有裸 TCP —— 所以托管选择面很宽。 另外 relay.py 是纯 Python 标准库、零第三方依赖、仅 150 KB、 实测内存 23 MB / CPU 0.1%,任何免费实例都装得下。 关键洞察:一旦有了公网 IP,**根本不需要 Cloudflare 隧道**, 现在所有 1033/502/530 都是隧道这一跳的问题,换过去就从根上消失。 文档里对比了 6 个方案(永久性、是否需公网 IP、是否要信用卡、 亚洲节点、能否免隧道),推荐 Oracle Cloud Always Free 首选 (永久免费 + 真公网 IP + 东京/首尔节点), ClawCloud Run 作为不用信用卡的备选。 还写了具体的搬迁步骤和要删掉的组件。
This commit is contained in:
+31
-13
@@ -21,25 +21,43 @@ a{color:inherit}
|
||||
/* ---------- 吸顶顶栏 ---------- */
|
||||
.top{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.88);
|
||||
backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border)}
|
||||
.top-in{display:flex;align-items:center;gap:12px;height:62px}
|
||||
/*
|
||||
* ⚠ 别用固定 height。
|
||||
* 原来写的是 .top-in{height:62px},但里面品牌是「标题 + 副标题」两行、
|
||||
* 右边还有两行版本信息 —— 实际内容比 62px 高,
|
||||
* flex 就把内容往上顶出去了:**标题被切掉、运行中徽章压在字上**
|
||||
* (用户截图里就是这样)。
|
||||
* 改成 padding 撑开,内容多高就是多高。
|
||||
*/
|
||||
.top-in{display:flex;align-items:center;gap:12px;
|
||||
padding-top:13px;padding-bottom:13px;min-height:36px}
|
||||
.logo{width:32px;height:32px;border-radius:9px;flex:none;
|
||||
background:linear-gradient(140deg,#2563eb,#1d4ed8);
|
||||
display:flex;align-items:center;justify-content:center;
|
||||
color:#fff;font-weight:700;font-size:12px;letter-spacing:-.3px}
|
||||
.brand b{display:block;font-size:15px;font-weight:650;letter-spacing:-.2px}
|
||||
.brand span{display:block;color:var(--faint);font-size:11px}
|
||||
.state{margin-left:14px;display:inline-flex;align-items:center;gap:6px;
|
||||
.brand{flex:none;min-width:0}
|
||||
.brand b{display:block;font-size:15px;font-weight:650;letter-spacing:-.2px;
|
||||
line-height:1.35;white-space:nowrap}
|
||||
.brand span{display:block;color:var(--faint);font-size:11px;
|
||||
line-height:1.4;white-space:nowrap}
|
||||
.state{margin-left:8px;flex:none;display:inline-flex;align-items:center;gap:6px;
|
||||
padding:3px 10px;border-radius:999px;background:#f0fdf4;
|
||||
color:#15803d;font-size:11px;font-weight:600}
|
||||
color:#15803d;font-size:11px;font-weight:600;white-space:nowrap}
|
||||
.state i{width:6px;height:6px;border-radius:50%;background:#22c55e;
|
||||
display:block}
|
||||
display:block;flex:none}
|
||||
.top-right{margin-left:auto;text-align:right;font-size:11px;
|
||||
color:var(--faint);line-height:1.7}
|
||||
color:var(--faint);line-height:1.65;min-width:0}
|
||||
.top-right b{color:var(--muted);font-weight:500}
|
||||
.logout{color:var(--muted);text-decoration:none;
|
||||
border-bottom:1px dashed var(--border);transition:.15s}
|
||||
.logout:hover{color:var(--danger);border-bottom-color:var(--danger)}
|
||||
|
||||
/* 窄屏:状态徽章换行,别和标题挤 */
|
||||
@media(max-width:640px){
|
||||
.top-in{flex-wrap:wrap;gap:8px}
|
||||
.state{margin-left:auto}
|
||||
}
|
||||
|
||||
/* ---------- 公网地址(最重要,给最大权重)---------- */
|
||||
.hero{padding:30px 0 26px}
|
||||
.hero h2{font-size:13px;font-weight:600;color:var(--muted);
|
||||
@@ -187,8 +205,8 @@ button.sm{padding:6px 12px;font-size:12px}
|
||||
</div>
|
||||
<span class="state"><i></i>运行中</span>
|
||||
<div class="top-right">
|
||||
<div>版本 <b>1.7.1</b> · 已运行 <b>21 分</b> · 内存 <b>22 MB</b></div>
|
||||
<div>累计请求 <b>154</b> · <a class="logout" href="/zhongzhuanzhan/logout">退出登录</a></div>
|
||||
<div>版本 <b>1.7.1</b> · 已运行 <b>6 分</b> · 内存 <b>23 MB</b></div>
|
||||
<div>累计请求 <b>29</b> · <a class="logout" href="/zhongzhuanzhan/logout">退出登录</a></div>
|
||||
</div>
|
||||
</div></div>
|
||||
|
||||
@@ -204,10 +222,10 @@ button.sm{padding:6px 12px;font-size:12px}
|
||||
</div>
|
||||
|
||||
<div class="nums">
|
||||
<div class="num"><div class="v">0</div><div class="k">登记设备</div></div>
|
||||
<div class="num "><div class="v">0</div><div class="k">在线</div></div>
|
||||
<div class="num"><div class="v">2</div><div class="k">登记设备</div></div>
|
||||
<div class="num live"><div class="v">1</div><div class="k">在线</div></div>
|
||||
<div class="num "><div class="v">0</div><div class="k">手表会话</div></div>
|
||||
<div class="num"><div class="v">0</div><div class="k">配对码占用</div></div>
|
||||
<div class="num"><div class="v">2</div><div class="k">配对码占用</div></div>
|
||||
</div>
|
||||
|
||||
<div class="sec">
|
||||
@@ -229,7 +247,7 @@ button.sm{padding:6px 12px;font-size:12px}
|
||||
<th>空闲</th><th>待发 表/机</th><th>流量 入/出</th><th></th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr><td colspan="8" class="empty"><svg width="34" height="34" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" style="opacity:.28;margin-bottom:14px"><rect x="2" y="4" width="20" height="13" rx="2"/><path d="M8 21h8M12 17v4"/></svg><div class="big">还没有电脑连上来</div><p>在教室那台电脑上双击 ykxmz.exe 设好 6 位配对码,手表上输这 6 位数字就能连上。</p></td></tr>
|
||||
<tr><td class="pickcell"><input type="checkbox" class="pick" value="DESKTOP-RN5I625-ec4b284cdecd" aria-label="选择 DESKTOP-RN5I625"></td><td data-l="设备"><div class="devname"><span class="dot off"></span>DESKTOP-RN5I625</div><div class="devid">DESKTOP-RN5I625-ec4b284cdecd</div></td><td data-l="配对码"><code>966173</code></td><td data-l="状态"><span class="pill off">离线</span></td><td data-l="空闲"><span class="mono">314s</span></td><td data-l="待发 表/机"><span class="mono">0 / 0</span></td><td data-l="流量 入/出"><span class="mono">0 B / 0 B</span></td><td class="ops"><button class="danger sm" data-device="DESKTOP-RN5I625-ec4b284cdecd" data-name="DESKTOP-RN5I625" data-code="966173">删除</button></td></tr><tr><td class="pickcell"><input type="checkbox" class="pick" value="DESKTOP-RN5I625-2f882bd8ed14" aria-label="选择 DESKTOP-RN5I625"></td><td data-l="设备"><div class="devname"><span class="dot on"></span>DESKTOP-RN5I625</div><div class="devid">DESKTOP-RN5I625-2f882bd8ed14</div></td><td data-l="配对码"><code>246813</code></td><td data-l="状态"><span class="pill on">在线</span></td><td data-l="空闲"><span class="mono">26s</span></td><td data-l="待发 表/机"><span class="mono">0 / 0</span></td><td data-l="流量 入/出"><span class="mono">0 B / 0 B</span></td><td class="ops"><button class="danger sm" data-device="DESKTOP-RN5I625-2f882bd8ed14" data-name="DESKTOP-RN5I625" data-code="246813">删除</button></td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user