
設想
我在 Windows 10 Pro N 電腦上有一個帶有(例如)公共 IP 的小網站:123.456.78
如果我從任何地方輸入該 IP,網站就可以正常開啟。
現在我還在 2 個不同的域名賣家處購買了 2 個域名,例如www.somewebsiteOne.com
和www.somewebsiteTwo.org
。並依賴轉發www.somewebsiteTwo.ddns.net
到123.456.78
.在網域賣家中,我可以轉寄www.somewebsiteTwo.org
到www.somewebsiteTwo.ddns.net
.我的目的是用我使用 Technitium 的自架開源 DNS 伺服器來取代對 DNS 伺服器的依賴。
為了驗證我自己的 DNS 伺服器是否正常運作,我:
- 在不同網路的另一台電腦上開啟 powershell。
- 輸入:nslookup www.somewebsiteTwo.org 123.456.78
- 這確實返回了 ip 位址 123.456.78
問題
現在,如果我嘗試在 2 個網域賣家中的任何一個輸入該 DNS 伺服器的 IP 位址,我需要輸入:
- 主機名稱
- IP位址
對於主機名,我可以輸入類似的內容(這是轉發到 ip 位址的www.somewebsiteTwo.ddns.net
dns 伺服器。在與兩者之一通話後,我被解釋說他們使用主機名稱而不是 IP 位址來查找我的個人公共 DNS伺服器,而不是IP位址。www.somewebsiteTwo.org
123.456.78
123.456.78
這本質上意味著我需要一個 dns 伺服器將我的個人公共 dns 伺服器的一些主機名稱轉送到我的 dns 伺服器的 IP 位址。這違背了我的意圖。因此我有以下內容:
問題
我如何確定並使用指向我的個人公共 DNS 伺服器(位於 )的正常運作主機名稱123.456.78
?
嘗試
- 我嘗試輸入我的電腦的主機名,例如 cmd at command 中傳回的內容
hostname
。但這不被視為有效的主機名稱。 - 我嘗試輸入,
123.456.78
但這不被視為有效的主機名稱。 - 我嘗試進入
http://123.456.78/
,但沒有成功。 - IP 位址不能用作引用 DNS 伺服器的主機名,因為:
用於 DNS 伺服器以及註冊和使用 DNS(子)網域時的主機名稱必須是有效的完全限定 DNS 主機名,例如 ns1.example.com。或 customer-5363.dsl-users.isp.example.net 。該協定不允許 IP 位址。如果您想使用 DNS 記錄(例如 ns1.example.com)來註冊網域 example.com,您的註冊商需要先設定正確的黏合記錄
答案1
在與兩者之一通話後,我被解釋說他們使用主機名稱而不是 IP 位址來查找我的個人公共 DNS 伺服器,而不是 IP 位址。
這本質上意味著我需要一個 dns 伺服器來將我的個人公共 dns 伺服器的一些主機名稱轉送到我的 dns 伺服器的 IP 位址。這違背了我的意圖。
這並不完全正確。
確實,用於域委託的 NS 記錄,僅有的採用主機名稱而不是原始位址。
然而,您實際上可以指定您自己網域下的主機名,這就是為什麼旁邊有 IP 位址欄位:它們讓您定義主機名稱並同時使用它。這實際上是支援訊息在提到「黏合記錄」時所指的內容,它允許這種「循環」。
(請注意,您還應該在自己的 DNS 伺服器中新增完全相同的主機名稱定義 - 註冊商處的黏合記錄被視為副本,而您伺服器上的記錄則被視為權威版本。)
例如,當您輸入 nameserver 時ns1.somewebsite.com
,註冊商會發布以下 DNS 記錄:
somewebsite.com. NS ns1.somewebsite.com.
由於名稱伺服器的主機名稱位於其託管的網域下,因此這顯然無法按原樣工作,因為它會建立循環。那麼你也需要在對應欄位中輸入伺服器的 IP 位址,這允許註冊商發布第二筆 DNS 記錄(「黏合」記錄):
somewebsite.com. NS ns1.somewebsite.com.
ns1.somewebsite.com. A 12.34.56.78
每當解析器嘗試查詢您的網域的名稱伺服器時,膠水記錄中的 IP 位址將始終附加到相同的回應,從而避免循環問題。
答案2
在我的問題中,主機名稱只是任意一組字符,通常後面跟著ns1
例如 ,如果您的網站是您可以在自己的 dns 伺服器設定中創建,然後在您的註冊器中輸入“主機名稱”。您(通常)需要 2 個 dns 伺服器,因此您可以使用另一個「主機名稱」並輸入它。然後,在 IP 處,您只需輸入託管 dns 伺服器的電腦的公共 IP 位址(您也在Technitium/DNS 設定中的項目中輸入了該位址)。ns2
<website without the http://www.>
swag.org
ns1.swag.org
ns1.swag.org
ns2.swag.org
ns1.swag.org
以下是如何使用圖片完成這一切的範例。
已驗證託管您自己的 DNS 伺服器的設定:
- 簡而言之,您將這些設定放入 Technitium 設定面板中(將 替換
your ip
為您的電腦/主機/主機網站的裝置的公共 IP 位址。(A
ns1.<yourwebsite>
` 是一條黏合記錄,告訴電腦將人們連結到您的網站) website ,“當你正在尋找這個主機名稱/網站時,你可以查看這個IP來找到主機名/網站”,(但是然後它會進入無限循環,所以你告訴它好吧停在這裡,你找到了網站這個IP。
- 然後在您的網域註冊商中建立自訂 DNS 記錄,每個網域賣家的做法都不同。這是 namecheap 的範例。簡而言之,您需要輸入您的 dns 伺服器主機名稱(如果您輸入了
ns1.<yourwebsite adres>
technitium,請輸入該主機名稱以及您電腦的公用 IP 位址。
- 您可以透過搜尋檢查您的 dns 伺服器/黏合記錄到 ip 是否輸入正確:
ns1
或ns2
(如果您輸入ns1.<yourwebsite>
:
- 不要忘記在網站設定中選擇您自己的自訂dns,否則您已在本機dns 伺服器中正確配置了所有內容,並告訴註冊商嘿在自訂dns 中,查看我自己的dns 伺服器的此ip,然後在最後,註冊商仍然會在自己的預設 dns 伺服器中尋找(它找不到您的 ip,您需要為此付費)。
筆記
- 這些設定尚不允許
https://www.yourwebsite.something
.為此,您需要一個 ssl 證書,您可以在 openssl 免費取得一個,而且 Technitium 確實支援 https。然而我還沒有實現這一點。 - 更詳細和詳細的說明集可以在以下位置找到:https://github.com/at-0/DnsServer與其他人製作的開源 DNS 伺服器 Technitium 一起,我只是分叉了它並添加了說明。