Nome do host para o host local com porta - OSX [fechado]

14

Estou tentando executar vários Node.jsservidores web localmente na minha máquina.

Como o código que estou escrevendo precisa fazer referência a um nome de domínio do qual gostaria de manter uma convenção dev.myHost.come apontar para o serviço que não seja da porta 80 em execução no Node (tecnicamente, estou executando um em Harp.jum e outro em Sails.js).

  • Então dev.hostOne.comdeve apontar paralocalhost:123
  • e dev.hostTwo.comdeve apontar paralocalhost:456

Isso é possível? Se sim, como.

mondo
fonte

Respostas:

23

Pelo que entendi, parece que você usa apenas uma máquina local de desenvolvimento, significa não conectado a nenhuma rede que forneça um DNS.

Se eu estiver certo, sugiro configurar coisas como as descritas abaixo:

Etapa 1: atribua pelo menos dois endereços IP ao seu MAC OS (um por domínio), digamos:

192.168.0.10
192.168.0.11

Para configurar o segundo IP, você precisará adicionar um segundo adaptador Ethernet (lógico, não físico).

Etapa 2: como você não possui um servidor DNS, você pode configurar seu /etc/hostsarquivo adicionando:

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

Etapa 3: atribua aliases à sua interface de loopback:

sudo ifconfig lo0 192.168.0.10 alias
sudo ifconfig lo0 192.168.0.11 alias

Etapa 4: Configuração ipfwpara encaminhar pacotes:

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

Você terminou !

Agora :

insira a descrição da imagem aqui insira a descrição da imagem aqui


Eu configurei dois Node.jsservidores web para testar seu caso:

$ 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

Importante: observe que ipfwregras e aliases da interface de loopback não são persistentes e não existirão mais após uma reinicialização. Portanto, considere adicionar um script de inicialização.

krisFR
fonte
1
Trabalhou muito bem. Isto é exatamente o que eu queria.
mondo
1
Que bom que funciona! Eu tinha certeza que não era totalmente um "duplicado";)
krisFR
no Mac os sierra obtendo o sudo: ipfw: comando não encontrado
ClintM 20/17/17
3
@ClintM: ipfwfoi substituído por pfctl. Para um exemplo de como a abrir uma porta: gauravsohoni.wordpress.com/2015/04/14/mac-osx-open-port
Joe Atzberger
Seria muito bom atualizar a resposta no formato esperado pfctl.
21717 Simon