我在本地计算机的 3000 端口上运行 Express 服务器。由于我与其他人共享本地网络,因此我想阻止使用计算机的本地地址 ( 192.168.1.X
) 连接到我的服务器。我在 Windows 上。
我还很好奇,人们是否能够“发现”我的服务器,而无需明确知道我的机器的本地地址正在运行服务器以及服务器托管的端口?
答案1
当你启动任何监听某个端口的服务器时,你还需要选择它应该绑定到哪个网络接口。你的机器上现在至少有两个网络接口:一个以太网/无线接口和一个回送接口。每个接口都有一个 IP 地址:您的以太网/无线接口可能具有类似于的地址192.168.0.42
(最后两个数字可能不同)。相比之下,环回接口总是有一个 IP 地址127.0.0.1
。这是惯例。
Loopback 接口比较特殊,字面意思就是“从主机本身连接到主机本身”。
当您的服务器绑定到以太网/无线接口时,它可以接受来自它所连接的网络中任何设备的连接。但是当服务器绑定到环回接口时,它只能接受来自主机本身的连接。
因此,为了防止其他人连接到为您的应用程序提供服务的主机,您需要做的就是将服务器配置为仅绑定到环回接口 - 127.0.0.1
。您需要检查快递文件找出如何做到这一点。
奖金。
服务器也可以绑定到0.0.0.0
IP地址,字面意思是“监听所有可用的接口”。
奖金。发现。
是的,其他人可以扫描网络并查看其他机器的 IP 地址。接下来,他们可以扫描每台机器的端口以查看哪些端口已打开(可能的端口只有 65536 个)。但是,他们可能不知道那台机器是你的——扫描无法提供此类信息。他们可以使用其他启发式方法来收集有关每台机器的更多信息(例如,他们可以相当准确地猜测操作系统类型)。但所有这些都是间接信息。