У меня есть 2 порта Ethernet на моем компьютере, оба получают свои IP-адреса через DHCP.
Я хотел бы запустить на машине два веб-сервера. Технически я хотел бы запустить Apache на одной комбинации адреса / порта, а Node.js прослушивать порт 80 на другом порту Ethernet.
Вся документация Apache, которую я нашел, упоминается с использованием Слушать директива для указания, какой адрес / порт должен прослушивать Apache. Единственная проблема в том, что мои IP-адреса динамические, и я не хочу беспокоиться об изменении конфигурации каждый раз, когда мой IP-адрес меняется.
Есть ли способ указать Apache привязаться к определенному MAC-адресу?
Я почти уверен, что ответ отрицательный, учитывая розетку связывать функция, похоже, требует IP-адреса, если только она не достаточно умна, чтобы взять MAC или имя порта и найти связанный IP.
TCP / IP - это что-то на уровне OSI 3 и 4. В то время как MAC-адреса находятся на уровне OSI 2.
Связывающие сокеты могут работать только на уровне TCP / IP и не имеют доступа к уровню 2. Итак, то, что вы пытаетесь сделать, невозможно сделать так, как вы хотите.
Вы можете решить эту проблему, указав статическую аренду DHCP для вашего MAC, чтобы MAC всегда получал фиксированный IP из пула DHCP.
Серверы просто не предназначены для работы на динамических IP-адресах. Я не верю, что вы можете заставить apache прослушивать MAC-адрес, но я могу предложить два возможных решения: