# 在家庭互联网环境下通过Cloudflare Tunnel安装Discourse

**URL:** <https://meta.discourse.org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297>\
**Category:** Sysadmins\
**Tags:** arm, how-to, raspberry-pi, install\
**Created:** [2021年十二月7日 14:02 UTC](https://meta.discourse.org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297 "2021-12-07T14:02:07Z")\
**Posts on this page:** 12\
**Page:** 4

<div class="post-metadata">

**Author:** ![jhary](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jhary/32/480899_2.png) [@jhary](https://meta.discourse.org/u/jhary)\
**Post date:** [2025年一月17日 22:28 UTC](https://meta.discourse.org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297/64 "2025-01-17T22:28:52Z")

</div>

谢谢。本指南对我非常有帮助，感谢您花费时间将其整理出来。我还了解到，我可以在没有授权方法的情况下使用隧道，这为我的家庭实验室游戏开辟了新的可能性。

---

<div class="post-metadata">

**Author:** ![Ar\_D](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ar_d/32/231040_2.png) [@Ar\_D](https://meta.discourse.org/u/Ar_D)\
**Post date:** [2025年一月29日 18:00 UTC](https://meta.discourse.org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297/65 "2025-01-29T18:00:28Z")

</div>

我觉得这很有帮助，我目前正在使用一个用户论坛，这对我来说很容易维护和管理。尽管本指南很有用，但对于像我这样对端口等基本知识了解不多的普通用户来说，在没有详细的步骤指南和对每个术语及资源进行解释的情况下，仅通过文本来理解它有点困难，本指南让我感到困惑。你们是否有任何视频教程能够完全解释它，并用最简单的语言指导如何操作？  
我有一个 16GB 的树莓派 5 和一台配备 i7-7700k、16GB 内存的 PC（我通常会根据我的用途更换 GPU，但它在这台 PC 上始终保持在 12GB VRAM 以上），用于这个特定的用例。PC 运行 Windows 11，并且比树莓派拥有更多的存储空间和性能，这就是我希望在 PC 上使用它的原因。

---

<div class="post-metadata">

**Author:** ![toeadeep](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/toeadeep/32/488142_2.png) [@toeadeep](https://meta.discourse.org/u/toeadeep)\
**Post date:** [2025年二月15日 07:56 UTC](https://meta.discourse.org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297/66 "2025-02-15T07:56:44Z")

</div>

> [@rsmithlal](#):
>
> ，但如果您觉得回复偏离主题，请另外发帖。

那么在这种情况下如何让 SMTP 工作？

---

<div class="post-metadata">

**Author:** ![Sailor](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sailor/32/579029_2.png) [@Sailor](https://meta.discourse.org/u/Sailor)\
**Post date:** [2025年三月2日 11:42 UTC](https://meta.discourse.org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297/67 "2025-03-02T11:42:58Z")

</div>

我刚接触这些，所以认为这两个说明似乎相互冲突

> [@Falco](#):
>
> 您唯一需要更改的是将 URL 从 `url: http://localhost:8000` 更改为 `url: http://localhost:80`。

> [@Falco](#):
>
> 并在 `env:` 部分下添加以下行：
> 
> ```plaintext
> DISCOURSE_FORCE_HTTPS: true
> 
> ```

一方面，建议隧道通过 `http://localhost:80` 与 discourse 通信，但随后设置强制所有内容通过 https？

是否建议在没有 SSL 的情况下使用端口 80 在本地工作，因为隧道将在边缘提供 SSL 握手，然后隧道到本地主机可以没有证书？

我可以通过 caddy 设置本地证书进行续订。是否有办法将密钥和证书的配置提供到 `app.yml` 中？

也许我误解了搜索结果中关于 `DISCOURSE_FORCE_HTTPS: true` 的内容，它反映了链接/图像被指示通过 https 加载，而与 Discourse 本身运行的端口/模式无关？

---

<div class="post-metadata">

**Author:** ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)\
**Post date:** [2025年三月2日 12:41 UTC](https://meta.discourse.org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297/68 "2025-03-02T12:41:31Z")

</div>

> [@Sailor](#):
>
> 建议在本地的 80 端口上进行 SSL 工作，因为隧道将在边缘提供 SSL 握手，然后隧道到 localhost 可以不带证书吗？

是的。

> [@Sailor](#):
>
> 我可以设置一个本地证书，并通过 Caddy 进行续订

通过 DNS 验证吗？它将无法使用 Let’s Encrypt 进行常规挑战。

如果你能让 Caddy 工作，你就不需要在 Discourse 端更改任何内容，因为 Caddy 仍然会与 HTTP 端口通信。

> [@Sailor](#):
>
> 它反映了链接/图片被指示通过 HTTPS 加载，而与 Discourse 本身运行的端口/模式无关？

正确。

---

<div class="post-metadata">

**Author:** ![Sailor](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sailor/32/579029_2.png) [@Sailor](https://meta.discourse.org/u/Sailor)\
**Post date:** [2025年三月2日 13:03 UTC](https://meta.discourse.org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297/69 "2025-03-02T13:03:50Z")

</div>

> [@pfaffman](#):
>
> 使用 DNS 验证？

是的，它是内置的，而且非常简单。但我想使用隧道/代理就不需要了。

感谢您花时间帮助我理解这些概念。很高兴一切顺利！

---

<div class="post-metadata">

**Author:** ![tknospdr](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tknospdr/32/529762_2.png) [@tknospdr](https://meta.discourse.org/u/tknospdr)\
**Post date:** [2025年五月11日 23:23 UTC](https://meta.discourse.org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297/70 "2025-05-11T23:23:36Z")

</div>

抱歉，如果我错过了。我可能已经浏览了从第 25 篇帖子到结尾的内容，也可能没有。\n\n说到 25，我的家庭互联网不阻止任何端口，_ **除了** _ 25。我想我可以通过 Cloudflare 隧道来绕过这个限制，因为我想为我的 Discourse 运行邮件接收器。\n\n有人以前做过吗？有什么建议或教程吗？

---

<div class="post-metadata">

**Author:** ![iam\_best](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/iam_best/32/542180_2.png) [@iam\_best](https://meta.discourse.org/u/iam_best)\
**Post date:** [2026年二月6日 15:02 UTC](https://meta.discourse.org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297/71 "2026-02-06T15:02:11Z")

</div>

邮件服务仍然是必需的吗？我在遵循指南时一直收到 443 错误，不确定原因，因为我没有提供任何 SMTP 服务器，不确定这是否导致了问题。

---

<div class="post-metadata">

**Author:** ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)\
**Post date:** [2026年二月6日 15:27 UTC](https://meta.discourse.org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297/72 "2026-02-06T15:27:59Z")

</div>

> [@iam\_best](#):
>
> 邮件服务仍然是必需的吗？

只有当您想发送电子邮件时才需要。您可以将 `DISCOURSE_SKIP_EMAIL_SETUP: 1` 添加到 env 部分，并使用 Discourse ID 进行登录。

---

<div class="post-metadata">

**Author:** ![raadtotheraad](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/raadtotheraad/32/527788_2.png) [@raadtotheraad](https://meta.discourse.org/u/raadtotheraad)\
**Post date:** [2026年五月1日 12:17 UTC](https://meta.discourse.org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297/73 "2026-05-01T12:17:24Z")

</div>

我看到使用 localhost:80 可以工作，但隧道只返回：

> ERR\_CONNECTION\_TIMED\_OUT

你能帮忙解决一下吗？

---

<div class="post-metadata">

**Author:** ![raadtotheraad](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/raadtotheraad/32/527788_2.png) [@raadtotheraad](https://meta.discourse.org/u/raadtotheraad)\
**Post date:** [2026年五月1日 14:25 UTC](https://meta.discourse.org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297/74 "2026-05-01T14:25:24Z")

</div>

看起来禁用代理（橙色云朵）导致了这个问题。

已修复！

---

<div class="post-metadata">

**Author:** ![Ethsim2](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ethsim2/32/522255_2.png) [@Ethsim2](https://meta.discourse.org/u/Ethsim2)\
**Post date:** [2026年七月27日 16:10 UTC](https://meta.discourse.org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297/75 "2026-07-27T16:10:47Z")

</div>

如果公共用户和本地用户访问同一个规范主机名，NGINX 是否应该拥有受公共信任的证书，以便绕过 Cloudflare 的本地用户仍能获得有效的 HTTPS？让 `cloudflared` 通过回环接口以 HTTP 方式连接到源站，还是使用同一证书以 HTTPS 方式连接更合适？

[上一頁](https://meta.discourse.org/t/install-discourse-on-a-residential-internet-with-cloudflare-tunnel/211297.md?page=3)
