Possível duplicado:
como usar o DNS para redirecionar o domínio para uma porta específica no meu servidor
Eu quero enganar meu navegador para ir para localhost:3000 em vez de xyz.com. Entrei em /etc/hosts no OS X 10.5 e adicionei a seguinte entrada:
127.0.0.1:3000 xyz.com
Isso não funciona, mas sem especificar a porta o truque funciona. Existe uma maneira de fazer isso especificando a porta?
Não, o arquivo hosts é simplesmente uma maneira de resolver nomes estaticamente quando nenhum servidor DNS está presente.
O arquivo hosts é para resolução DNS. O DNS resolve nomes para endereços IP e não tem nada a ver com portas, receio. Você precisará usar outra coisa em conjunto com o arquivo hosts para redirecionar a porta (dê um rascunho no cabeçalho TCP alterando a porta de destino).
Com iptables:
O MAC OS usa iptables / netfilter (eu acho que não)..? Se o OS X usa iptables, você pode apontar xyz.com para algum ip no arquivo hosts como 157.166.226.25 e depois:
:-)
Você não precisa especificar uma porta no arquivo hosts. apenas faça a entrada como você fez omitindo a porta, como em 127.0.0.1 xyz.com, isso irá direcioná-lo para o seu host local, então simplesmente adicione a porta 3000 ao final do seu URL ... http://xyz.com :3000
Supondo que você esteja tentando interceptar http e não https, você teria que estar ouvindo na porta 80 em sua máquina local, mas então você poderá usar os recursos de encaminhamento de porta do ssh ssh'ing para localhost com
-L80:localhost:3000
, mas você' Vou ter que fazer isso como root.Provavelmente seria melhor ter o que quer que esteja sendo executado na porta 3000 apenas para ouvir a porta 80.
Se você controlar o roteador entre você e xyz.com, poderá configurar uma regra de encaminhamento de porta.
A solução DNS para isso é usar registros SRV:
http://en.wikipedia.org/wiki/SRV_record
Essa é uma maneira de permitir que o DNS, que era originalmente um banco de dados distribuído "nome para número" ou "número para nome", inclua "nome para ponto de extremidade de serviço", que pode (opcionalmente) incluir um protocolo e uma porta.
A má notícia é que os aplicativos precisam ser desenvolvidos para usar registros SRV, portanto, não é uma solução imediata para o que você está tentando fazer.
Acho que você precisa usar algum tipo de servidor proxy ou talvez algo com software de firewall para redirecionar as conexões de porta...
Chief-AG está certo em que o arquivo hosts é usado para resolver nomes estaticamente (a presença de DNS é irrelevante). No entanto, pode haver uma combinação de coisas que você pode fazer.
Parece ser um pouco de trabalho, mas cumpriria o que você está pedindo.
Como alternativa aos hosts virtuais de ;, você pode criar um túnel ssh escutando na porta 80 e encaminhando para localhost:3000.
estou assumindo que isso é para o desenvolvimento de trilhos? em caso afirmativo, execute script/server -p 80 para executá-lo na porta da web padrão. então seu xyz.com funcionará
Se você estiver usando o Apache como um servidor web em xyz.com, você pode usar o Apache
ProxyPass
para 'converter' para uma porta diferente.