DigitalOcean 基本安装失败,端口 443 不可访问

嘿,我正在尝试基础的 Discourse/DigitalOcean 指南:discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

我花了十几个小时折腾端口问题,终于让它跑起来了。接着又搞懂了邮件系统、SMTP、DNS、SSH 以及太多其他东西。最终它确实能用了,但是……

然后我(愚蠢地)决定既然已经搞懂了所有东西,不如从一个新的 Droplet 重新开始。(我真棒)结果又愚蠢地把那个 Droplet 删掉了。现在我试着重新创建,却不断遇到这个错误。

我的问题是:从一个新的 DigitalOcean Droplet 开始(在配置邮件服务器之前)。无论是:

(a) 按照指南操作:discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
./discourse-setup

还是

(b) 在 DigitalOcean 镜像市场中选择 Discourse 镜像创建新 Droplet,然后通过 SSH 连接到该 Droplet,它会自动开始运行设置程序。

在我输入子域名到提示 Hostname for your Discourse? [discourse.example.com]: 之后,立即出现:

WARNING: Port 443 of computer does not appear to be accessible using hostname:  forum.example.com
WARNING: Connection to http://forum.example.com (port 80) also fails.

我并没有对我的 Droplet 做任何操作,它还是原始设置。我觉得基础设置本身有问题。也许自该指南编写以来,DigitalOcean 那边有什么变化?

我看到其他帖子提到了 Cloudflare,但据我所知我并没有使用任何 Cloudflare 服务。

我也看到有帖子提到使用 ufw 来开放端口。我的第一个 Droplet 我确实这么做了,最终在开放了所有我能找到的建议端口(22、80、8080、8000、2222、443 等)后才让它工作起来。但无论如何,我认为指南需要更新以反映开放端口的必要性。而且(就之前的 Droplet 而言)可能还需要类似 apache2 这样的服务来监听端口?不过我已经对着各种错误信息盯得太久,找不到当时的解决方案了。

我想知道你是否清楚哪些端口需要开放、哪些不需要,并且能否帮我解决当前问题,同时建议对基础指南进行修正?

谢谢!

我让(市场镜像 droplet)使用 ufw 运行了设置,并开放了多个端口,其中一些我怀疑是重复的……

这篇指南很有帮助:

我认为我执行了以下操作:

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22
sudo ufw allow 2222
sudo ufw enable
sudo ufw allow http
sudo ufw allow 80
sudo ufw allow https
sudo ufw allow 443

当我运行 ufw status 时,得到:

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
5000/tcp                   ALLOW       Anywhere
50010                      ALLOW       Anywhere
2222                       ALLOW       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)
5000/tcp (v6)              ALLOW       Anywhere (v6)
50010 (v6)                 ALLOW       Anywhere (v6)
2222 (v6)                  ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)

请您发送错误消息。

您可能尚未创建指向新 Droplet 的 DNS A 记录。

1 个赞
警告:计算机的 443 端口似乎无法通过主机名 forum.example.com 访问
警告:连接到 http://forum.example.com(端口 80)也失败。

@OverseersMight1 这就是上面显示的错误信息,设置流程在此之后未能继续。

@pfaffman 我确实有一条 DNS 记录。这可能(对其他用户有参考价值)是因为 TTL 设置得过高,导致更改未生效。我将 TTL 设置为最小值(600),我怀疑这可能有所帮助。

指南中写道:“* 您的 DNS 设置应可从您购买域名的地方访问。请在您的 DNS 控制面板中为 discourse.example.com 主机名创建一条 DNS A 记录,指向您安装 Discourse 的云实例的 IP 地址。”

我已经这样做了。

可能不是,或者正如你所建议的,这是一个传播问题。如果不了解你的主机名和 Droplet 的 IP 地址,我们无法进行检查。