如果我将一个http服务绑定到192.168.1.2,它是否会向我的路由器发出额外的请求,以确定我的本地IP是什么,或者将IP与本地networkingconfiguration进行比较,如果它们匹配不通,
另外为什么我不能将服务绑定到127.0.0.1:8888?
如果您的主机已经configuration了192.168.1.2作为其IP地址,则不需要对路由器进行额外的请求,以便在具有该IP的端口上进行绑定和侦听。
但是,许多HTTP服务器将对IP进行反向DNS查找,以试图了解与此IP关联的主机名。 这可能是你不需要担心的事情。
我想说,你的第一个问题是依赖于操作系统,但是没有现代的操作系统,我能想到的就是这样。 如果将该IP分配给本地机器的NIC,则stream量不会离开NIC。
至于第二个问题,你需要让我们知道你正在使用的HTTP服务器和你在哪个操作系统上。
如果在networking接口上本地configuration了特定IP,则服务器将匹配您将IP提供给IP所在接口的IP。 它只会监听通过该设备传输的stream量。 (不需要在networking上进行“检查”)。
这可能是一个很好的安全措施,例如,如果您只有本地需要的服务(例如MySQL),请不要将其绑定到您的面向互联网的界面。
通常情况下,如果你给一个服务一个本地不存在的IP,它会沿着“无法绑定到X”的方向返回一个错误。 但是,在某些情况下,您需要将服务绑定到当前可能不存在的IP上。 一个例子是在一个高度可用的设置中,IP可以在服务器之间移动。
在这种情况下,sysctl设置net.ipv4.ip_nonlocal_bind
可以让你这样做没有错误。