# 安全与远程访问 — herdr-web

> herdr-web 怎么安全地从公网访问：公网只走自己 VPS 上的中继，中继只转密文、TLS 在你的电脑上解开，被拿下也看不到终端；一次性配对码 + passkey 登录、服务端只存哈希、一条命令撤销；agent 起的本地端口在单独子域名上、先过登录；四档部署（只本机、局域网 IP、局域网域名、公网）各要准备什么。

[herdr-web](/) [能力](/tour.md) [安全](/security.md) [帮助](/help.md) [指南](/guides.md) [常见问题](/faq.md) [更新](/changelog.md)

安全与远程访问

# 它把一个登录 shell 放到网上，所以门要按「路可能不安全」来做

01/ 03安全

## 公网访问

中间那台服务器只见密文，登录靠 passkey

[在 README 里细看 →](https://github.com/zbysir/herdr-web/blob/master/README.md#安全)

frp、反代这类穿透，TLS 往往在中间那台 VPS 上解开。它被拿下，你的终端就全给人看了：每一次按键、登录凭据，还能改页面里的代码。

所以公网只走 herdr-relay：一台你自己的 VPS，按域名把加密流量原样转回你的电脑，TLS 在你的电脑上解开，中继手里没有任何能登录、能解密的东西。 再用一条 DNS 记录锁死「这个域名的证书只有你的电脑能签」，中继自己去签也签不出来。

所以鉴权这一层 herdr-web 自己做，按「这条路可能已经不安全」来做：

扫一次码

一次性配对码换一份 per-device 凭据，放 HttpOnly cookie。URL 里不留秘密。

服务端只存哈希

磁盘上没有任何能直接登录的明文，防止坏 agent 把你的凭证发出去。

能撤销

一条命令踢掉一台设备，下一个请求就 401。

中继只转密文

VPS 上没有证书私钥、没有设备表、没有 passkey，整台被拿下也只能断网，看不到你的终端。

![herdr-web 的配对页：提示在机器上执行 herdr-web pair，可以用相机扫二维码或手输 8 位配对码](https://fsu.creght.com/site/2090728059501023232/1787307365914__shot_pair.png?w=3072&fmt=webp)一台设备只见这页一次。只有坐在机器前的人能出码，网页上（包括已配过对的设备）都不行。

02/ 03安全

## 本地端口

agent 起的 localhost:7830，手机上也能打开，但要先过登录。

终端和对话里的 `http://localhost:7830` 点下去， 打开的是 `https://7830.你的域名`：herdr-web 把这台机器上那个端口代理出来。

先过登录

没登录就绕主站登一次，用的是同一套设备和 passkey。设备被撤销、该重验 passkey 了，子域名当场失效。

和主站隔开

被代理的是 agent 写的页面，放在单独的子域名上，拿不到主站的凭据，也调不了主站的接口。

别的站读不到

带着别的站来源的请求一律拒，同一个域名下的其它网站也读不到你本机开发服务的内容。

03/ 03安全

## 放在哪儿跑

没有域名、不用公网，局域网下也能连。

代价只是每台设备第一次点一下「继续访问」。嫌这一下麻烦， 加个域名走 C；出了门也想连，在一台 VPS 上跑中继走 D。 要手机连就必须有 TLS，herdr-web 已内置 ACME 走 DNS-01 认证，Cloudflare、AWS Route53、阿里云、腾讯云、华为云、DigitalOcean 六家都能签。 所以 NAT 后面、域名指到内网地址，照样签得出受信任证书。

| 档 | 场景 | 怎么用 | 要准备什么 | 授权方式 |
| --- | --- | --- | --- | --- |
| A | 只本机 | 访问 127.0.0.1 | 不用准备什么 | 配对码（IP 下没有 passkey） |
| B | 局域网 · 用 IP | 访问局域网 IP | 不用准备什么，第一次点一下「继续访问」 | 配对码（IP 下没有 passkey） |
| C | 局域网 · 用域名 | 访问域名 | 一个域名 \+ DNS 的 API token | 第一次配对码，后续 passkey |
| D | 公网 | 在哪儿都访问域名 | 域名 \+ DNS token，外加一台跑 herdr-relay 的 VPS | 第一次配对码，后续 passkey |

[herdr-web](/) MIT · @bysir/herdr-web

[能力](/tour.md) [全部特性](/features.md) [安全](/security.md) [帮助](/help.md) [指南](/guides.md) [常见问题](/faq.md) [更新历史](/changelog.md) [GitHub](https://github.com/zbysir/herdr-web)

> 全站页面清单：[/llms.txt](/llms.txt)
