將IP指向子域

將IP指向子域

將網域或子網域指向某些 IP 是很常見的。

然而,我想做相反的事:

我想將 IP 42.42.42.42 指向子網域,EG 指向 test.example.com,這樣當我造訪 42.42.42.42 時,它會顯示 test.example.com 的內容。

我嘗試編輯 /etc/hosts 但它不起作用,似乎你無法將 IP 指向子網域。

任何想法 ?我所有的谷歌搜尋都會引導我找到解釋如何將網域重定向到 IP 的教程...但我只需要相反的

更新:我不擁有IP,也不擁有域名

答案1

您不需要 DNS。

只需將 IP 作為別名添加到test.example.comhttpd 配置中的伺服器區塊即可。

阿帕契的例子:

<VirtualHost *:80>
    DocumentRoot "/www/example1"
    ServerName test.example.com
    ServerAlias 42.42.42.42

    # Other directives here
</VirtualHost>

答案2

將[子]網域指向 IP 位址很容易,因為將主機名稱解析為 IP 位址是建立 HTTP 連線的正常程序的一部分。

將 IP 位址指向另一個網域名稱實際上需要在該過程中引入另一輪 DNS 解析。這可以在 HTTP 協定層級完成:這就是 HTTP 重新導向...但這需要控制 42.42.42.42 IP 位址的目標系統。任何較低的協定層實際上都沒有能力引入另一輪 DNS 解析。但如果您提前查找 test.example.com 的 IP 位址,則可以用其 IP 位址取代 42.42.42.42。

如果您想要重新導向 IP 位址,您幾乎需要控制用戶端系統、其網路或持有您想要重新導向的 IP 位址的系統。由於您說您無法控制目標 IP 位址,因此您需要在用戶端進行控制。

如果您控制用戶端系統,則可以使用iptablesOUTPUT 規則鏈中的 DNAT 規則將流量從 42.42.42.42 重定向到目標 FQDN。如果這樣做,當您配置規則時,目標 FQDN 的名稱解析只會發生一次:因此重定向實際上是將一個 IP 位址替換為另一個 IP 位址。客戶端的規則如下:

iptables -t nat -A OUTPUT -p tcp -d 42.42.42.42 --dport 80 -j DNAT --to-destination test.example.com:80

如果您控制客戶端的網絡,那麼您也可以選擇在常規 WWW 代理(如果客戶端配置為使用您可以控制的代理)或透明代理(如果沒有明確代理配置)中執行重定向。

相關內容