侧边栏壁纸
  • 累计撰写 11 篇文章
  • 累计创建 10 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

记一次NAS访问配置

Novice
2025-02-17 / 1 评论 / 0 点赞 / 42 阅读 / 5214 字

一、背景

最近装了台nas,为了方便访问,打算配置成在家的内网解析成内网ip,在外面解析到内网穿透的地址。

二、实现方式

我有一个域名nas.novitechie.com,并且已经托管到了CloudFlare,假设我的nas的内网IP是172.26.1.34,首先为了内网能够用域名解析到这个ip,在华硕路由器的Merlin Clash插件中配置DNS,让局域网所有设备都能正确解析(对加密的dns解析不管用)。

在nas上安装cloudflared,并且配置tunnel

tunnel是https的,为了协议一致,在nas上也是配置启用https,并且配置了证书。

配置好后,理想情况下,无论内网外网都能使用 https://nas.novitechie.com 访问我的nas。

三、坑

内网访问出现以下错误

查了下资料,这是Encrypted Client Hello (ECH)错误,那么为什么会出错呢?查询了资料,发现cloudflare已经开始给免费用户开启ECH,Chrome 查询到域名支持ECH就会采用ECH的方式进行握手,但是Nas上的Nginx是不支持这种的。在cloudflare关闭小黄云后,局域网是能够正常使用https访问的,但是外网就无法访问了。只能考虑换种方式,于是我选择关闭ECH。

chrome中关闭ECH我之查询到1种方式,通过policy。

在Windows上使用这几行powershell脚本可以实现

$PATH = "HKLM:\\Software\Policies\Google\Chrome\"
$NAME = "EncryptedClientHelloEnabled"
if (-not(Test-Path $PATH)) {New-Item -Path $PATH -Force}
New-ItemProperty -Path $PATH -Name $NAME -Value 0x0 -Force

在linux/mac下,将下面的json文件存放于 /etc/opt/chrome/policies/managed

{
  "EncryptedClientHelloEnabled": false
}

完成后,在 chrome://policy 页面就能看到下面内容,nas也能正常访问了。

参考文档:

https://chromeenterprise.google/policies/#EncryptedClientHelloEnabled

https://support.google.com/chrome/a/answer/9027408

0

评论区