在网络上发现网络服务器

在网络上发现网络服务器

我正在构建一个小型 Linux 机器,它将只运行一个 Web 服务器。这台小型机器的目的是被放入一个临时位置的小型临时网络中,该位置无法访问互联网,为本地网络提供 Web 服务

问题是,客户端如何发现机器的地址?

静态 IP 并不理想,因为它应该能够在任何本地网络上运行,因此 DHCP 几乎是必须的。从盒子中运行 dns 和 dhcp 服务器是一种选择,但不是首选,因为网络可能已经有这样的服务,而盒子会与之冲突。

不过这些是我能想到的唯一方法。还有其他想法吗?

答案1

确保为计算机设置了主机名。假设您连接的每个网络都运行自己的 DNS/dhcp,那么当它获得 dhcp 地址时,它应该(在正常设置中)自动向本地 DNS 服务器注册其主机名

因此,将其设置为 MYAWESOMEWEBSERVER,并告诉所有客户端访问该主机名和魔法(大多数浏览器只需输入http://myawesomewebserver浏览器执行 DNS 并获得本地 IP)

在大多数 Linux 计算机上,只需编辑 /etc/hostname 即可设置主机名

编辑对于最强大/冗余的构建,我建议你有一个启动脚本来测试 LAN 是否有活动的 dhcp/DNS 服务(如果是,则接受 dhcp 地址),如果没有,则在本地启动 DNS/dhcp 服务器并应用静态 ip

答案2

您可以使用 nmap 扫描网络。例如,如果您的 Web 服务器在 tcp:80 上运行,并且您的子网是 192.168.1.0,那么您可以尝试:

nmap 192.168.1.0/24 -p 80

在我的网络上我得到

Starting Nmap 6.47 ( http://nmap.org ) at 2015-04-27 19:36 AEST
Nmap scan report for 192-168-1-1.tpgi.com.au (192.168.1.1)
Host is up (0.022s latency).
PORT   STATE SERVICE
80/tcp open  http

Nmap scan report for 192-168-1-8.tpgi.com.au (192.168.1.8)
Host is up (0.00011s latency).
PORT   STATE  SERVICE
80/tcp closed http

因此,您可以看到地址 192.168.1.1 上有一个 Web 服务器(这是我的路由)。您还可以看到网络上还有另一台机器,但它的 80 端口已关闭,因此它不是 Web 服务器

相关内容