到目前为止,我一直在使用具有静态 IP 地址、自己的 SSL 证书和自己的域的托管服务器。
我的服务器托管公司为我提供了一个界面,我在其中输入了一些条目来分配我的 IP 地址、我的域和我的 SSL 证书之间的关系。
这些条目是:
- SOA 记录
- 记录
- MX 记录
- CNAME 记录
- TXT 记录
如果我在家里有一个静态 IP 地址,并且想要自己在家里托管我的服务器(HTTP 和 HTTPS),我该如何以及在哪里设置上述 DNS 条目?
我应该询问我的互联网提供商吗?
答案1
在这种情况下,由于你的 ISP 可能允许访问你打开的 TCP 端口,如果你首先获得一个静态 IP,你需要做的就是
DNS:
- 将 heimdi.at 域的 AAAA 和 A 记录分别指向您的静态 IPv6 和 IPv4 地址。您的 ISP 可能不仅为您提供一个 IPv6 地址,而且还为您提供整个子网(我的 ISP 为我提供了一个 /56 子网,因此有 4.7·10²¹ 个地址可供选择!),因此请从中选择一个,然后参阅步骤 7。
- (可选)将 *.heimdi.at(如果您想要通配符子域名!)或特定子域名(如 www.)配置为 CNAME 到您的 heimdi.at 域名或直接将 AAAA/A 到您的静态 IP 地址
- 配置您的家庭服务器的 HTTP 守护程序¹,以响应对 heimdi.at 的请求,如果适用,则对子域的请求做出响应,包括 HTTP 端口 80 和 HTTPS 端口 443。
- 您提到了 MX 记录:它可能指向某个域名,SMTP/提交服务器正在该域名下处理邮件。
虽然从技术上讲,在家中运行邮件服务器是可行的,但实际上通常会失败:最终消费者 ISP 网络通常会因垃圾邮件而被主要电子邮件提供商列入黑名单。
这意味着您的 MX 记录应继续指向您自己或电子邮件提供商的邮件服务器。 - TXT 记录的用途非常不同,但最常见的用途也与电子邮件处理有关,所以可能应该继续保持原样?
现在,由于你不打算在其上运行电子邮件服务器,因此这是可选的,
- 您可以询问您的 ISP 是否可以为您的 IPv6 和 IPv4 地址添加指向 heimdi.at 的反向 DNS (PTR) 条目。这不可以通常对于 ISP 来说,如果他们这么做了,就说这很酷。
网络设置:
- (除非您的家庭服务器也是您的路由器)确保您的家庭路由器/调制解调器/光纤适配器/ whatsitcalled 配置为将 TCP/IPv4 端口 80 和 443 转发到您的家庭服务器的 IPv4 地址,并且它不会阻止 TCP/IPv6 端口 80 和 443 转到您的服务器的 IPv6 地址。(原因:通常,您的内部 IPv4 网络有 NAT,因为您的路由器只有一个公共 IPv4 地址。IPv6 不存在该问题,因此您内部网络上的每个设备能有自己的公网地址。配置起来比 IPv4 容易得多。
- 将您的家庭服务器配置为您为其选择的公共 IPv6 地址,并将其配置为路由器将 80/443 TCP/IPv4 转发到的私有 IPv4 地址。
- 确保 ICMP 和 ICMPv6 从外部地址工作:确保您可以
ping
从互联网访问您的家庭服务器。 - 确保你的家庭服务器有防火墙,可以阻止你使用的所有端口不希望从互联网上访问。(换句话说,锁定并打开端口 80 和 443。)
证书:
- 好吧,这是你的域名,你可能不必证明你实际上是你声称的家庭银行网站!所以,基本上,letsencrypt 证书和其他证书一样好。在
certbot run --nginx -d heimdi.at
你的家庭服务器上,你将申请证书,并直接为你的站点安装它。如果这是现代 Linux,则有一个 systemd 计时器单元,它通常与软件包存储库中的 certbot 一起安装,它允许你启用证书的自动续订。这样做。
可维护性/安全性:
- 将家庭服务器的操作系统设置为自动安装紧急安全更新(仅此而已)。您不会想陷入下一次心脏出血的漩涡中。
- 考虑一下您是否希望远程管理服务器以及如何管理服务器。这可能很简单,只需安装和启用 SSH 服务器(通常是 openssh),并为端口 22 添加防火墙和转发规则。禁用密码验证,而是在笔记本电脑/手机上携带 SSH 密钥(用密码保护,或放在智能卡上)。
¹ 我确实建议人们在新的部署中使用 nginx 而不是 apache,我个人觉得它更容易不是弄乱 nginx 配置,尤其是在服务器端执行时。
答案2
如何以及在哪里设置上述 DNS 条目?
DNS 记录托管在 DNS 服务器上。您的域名注册商(您支付域名费用的地方)有一个控制面板,您可以在其中指定哪个服务器应该实际托管您域名的 DNS 数据。
对于简单的设置,您通常会从同一个域名注册商处获得 DNS 托管 - 您无需配置任何有关名称服务器的内容,只需在同一控制面板中查找“DNS 记录”部分即可。我认为这几乎普遍免费提供。
(另一方面,你能如果需要,可以通过查找 DNS 主机并指定不同的名称服务器地址来管理其他 DNS 记录。您甚至可以在你自己服务器并通过纯文本文件管理 DNS 记录,就在网站托管位置的旁边。)