如何在浏览器中访问 IP 地址的子域名?

59

要获取示例网站的IP地址,您只需访问

subdomain.example.com

但是,如果我尝试访问

subdomain.2.1.33.111 (example ip)

火狐浏览器返回了一个错误。
为什么?


2
一个可能的解决方法是使用xip.io,参考这个答案 - user82216
5个回答

48

所有浏览器都会返回错误。原因是子域名是DNS(域名系统)的一部分,其中IP地址与底层IP协议相关联。

最好的想法是,域名(包括子域名)是可读性强的标签,然后DNS允许您将其指向IP地址。例如,在电视广告上把一个IP地址作为您的网站不太吸引人。

如果您想深入了解,可以查看有关DNSIP地址的详细信息。


29
信息很好,但主要问题仍未得到回答:“如何在浏览器中访问IP地址的子域?”这是否意味着我们不能在不使用DNS的情况下访问子域? - Jessy
16
这段内容的意思是,IP地址没有子域名,因为IP地址不是域名。如果没有DNS,就不能实现子域名。请注意,这是回答问题的正解。 - Chris Alexander
感谢您的澄清。 - Jessy

15

IP地址不支持子域名。如果您的目标是在未分配域的服务器上服务多个应用程序,则最好的方法是使用端口:

2.1.33.111:8080

出于安全原因,一些端口可能已经被占用或被阻塞。如果您需要一份推荐端口列表,可以尝试使用与Cloudflare 支持的相同的端口。

HTTP:

  • 80
  • 8080
  • 8880
  • 2052
  • 2082
  • 2086
  • 2095

HTTPS:

  • 443
  • 2053
  • 2083
  • 2087
  • 2096
  • 8443

你会如何使用端口来解决这个问题?我已经尝试过以这种方式使用端口,但连接失败了。 - ib95
@ib95 你需要确保你的Web服务器监听除了80端口(和443)之外的其他端口。 - unlut

13

使用Firefox浏览器是无法实现这个操作的。但是,有一个解决方法是编辑您的操作系统hosts文件,请参考:维基百科

创建或编辑并添加一行,如下所示:

192.168.1.100 subdomain.example.com

记得在完成后删除该行!


6

无法混用子域名(DNS名称)和IP地址(没有DNS名称)

尝试使用/etc/hosts文件。例如:

# IP  Hotsname    
2.1.33.111     subdomain.example.com

对于Firefox来说没问题,但是Chrome会以一种花式方式解析名称。


2

主机名是具有至少一个关联IP地址的域名(或子域名)。

对于子域名,关联的IP地址可能不同。

您可以使用nslookup获取域名(或子域名)的关联IP地址。

尝试比较nslookup example.comnslookup subdomain.example.com以查看差异。

如果使用Firefox(或其他浏览器),您可以输入主机名(例如example.com或subdomain.example.com)或IP地址(例如11.22.33.44)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接