Ім'я хоста для Localhost з портом - OSX [закрито]


14

Я намагаюся запустити декілька Node.jsвеб-серверів локально на своїй машині.

Оскільки код, який я пишу, повинен посилатися на доменне ім’я, я хотів би дотримуватися конвенції dev.myHost.comта вказувати на сервіс non-port-80, що працює від Node (технічно я запускаю один на Harp.js та one on Sails.js).

  • Так dev.hostOne.comслід вказувати наlocalhost:123
  • і dev.hostTwo.comслід вказувати наlocalhost:456

Чи можливо це? Якщо так, то як.

Відповіді:


23

З мого розуміння, здається, що ви використовуєте лише одну локальну машину розробки, що не підключено до жодної мережі, яка забезпечує DNS.

Якщо я маю рацію, я б запропонував налаштувати такі речі, як описано нижче:

крок 1: Призначте принаймні дві IP-адреси для вашої ОС MAC (по одній на домен), скажімо:

192.168.0.10
192.168.0.11

Щоб встановити другий IP, вам доведеться додати другий адаптер Ethernet (логічний, а не фізичний).

Крок 2. Оскільки у вас немає сервера DNS, ви можете налаштувати /etc/hostsфайл, додавши:

192.168.0.10     dev.hostone.com
192.168.0.11     dev.hosttwo.com

Крок 3: Призначте псевдоніми до інтерфейсу петлі:

sudo ifconfig lo0 192.168.0.10 alias
sudo ifconfig lo0 192.168.0.11 alias

Крок 4: Налаштування ipfwдля переадресації пакетів:

sudo ipfw add fwd 127.0.0.1,123 tcp from me to 192.168.0.10 dst-port 80
sudo ipfw add fwd 127.0.0.1,456 tcp from me to 192.168.0.11 dst-port 80

Ви закінчили!

Зараз:

введіть тут опис зображення введіть тут опис зображення


Я налаштував два Node.jsвеб-сервери для перевірки вашої справи:

$ netstat -anp tcp | grep -E "123|456"
tcp4    0    0  127.0.0.1:123    *.*    LISTEN
tcp4    0    0  127.0.0.1:456    *.*    LISTEN

Важливо: зауважте, що ipfwпсевдоніми та псевдоніми інтерфейсу правил не є стійкими і більше не існуватимуть після перезавантаження. Тому подумайте про додавання сценарію запуску.


1
Працювали КРАСИВО. Це ТОЧНО те, що я хотів.
мондо

1
Радий, що працює! я був майже впевнений, що це не зовсім "дублікат";)
krisFR

на Mac OS Sierra отримує sudo: ipfw: команда не знайдена
ClintM

3
@ClintM: ipfwзамінено на pfctl. Приклад того, як відкрити порт: gauravsohoni.wordpress.com/2015/04/14/mac-osx-open-port
Джо Атцбергер

Було б дуже приємно оновити відповідь у очікуваному форматі pfctl.
Саймон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.