我的机器上有 2 个以太网端口,均通过 DHCP 接收其 IP 地址。
我想在机器上运行两个 Web 服务器。从技术上讲,我想在一个地址/端口组合上运行 Apache,在另一个以太网端口上运行监听端口 80 的 Node.js。
我发现的所有 Apache 文档都提到使用听指令用于指定 Apache 应侦听哪个地址/端口。唯一的问题是我的 IP 地址是动态的,我不想每次 IP 更改时都费心更改配置。
有没有办法告诉 Apache 绑定到特定的 MAC 地址?
我很确定答案是否定的,考虑到插座绑定该功能似乎需要 IP 地址,除非它足够智能,可以获取 MAC 或端口名称,并查找关联的 IP。
答案1
TCP/IP 位于 OSI 第 3 层和第 4 层。而 MAC 地址位于 OSI 第 2 层。
并且绑定套接字只能在 TCP/IP 级别工作,无法访问第 2 层。因此,您尝试执行的操作不可能按照您希望的方式实现。
您可以通过为您的 MAC 指定静态 DHCP 租约来解决该问题,以便 MAC 始终从 DHCP 池中获取固定 IP。
答案2
服务器不适合在动态 IP 上运行。我不相信您可以让 apache 监听 MAC 地址,但我可以建议两种可能的解决方法:
- 让两个 Web 服务在不同的端口而不是不同的 IP 上运行 - 简单
- 破解 Apache 启动脚本,使其检测两个网卡上的 IP 地址,然后在实际启动服务器之前编辑配置文件 - MESSY HACK