É possível hospedar um servidor Web por trás de um NAT

21

Meu PC está atrás de um roteador NAT que possui um endereço IP público. Se eu quiser hospedar um site, acredito que preciso de um nome de domínio que possa ser adquirido em algum site que prometa resolver todas as solicitações de DNS para esse nome de domínio e enviar o endereço IP do meu roteador NAT (supondo que eu não queira hospedar meu nome de domínio em seus servidores). Agora eu quero hospedar um servidor web no meu computador.

  1. Quais alterações devem ser feitas na configuração do roteador NAT para encaminhar todas as solicitações HTTP de exemplo.com para meu PC na rede interna.
  2. A estratégia acima está correta?
  3. É comumente usado?
Rohit Banga
fonte

Respostas:

12

É possível hospedar um servidor atrás do NAT, como você descreve.
Veja esta página de ajuda do Ubuntu em ServersBehindNAT for basics.

Mais algumas referências,

  1. Hospedando servidor Apache atrás de um NAT
  2. Configurando um servidor atrás de um NAT,
    isso usa um roteador NAT Buffalo AirStation series e exemplos de roteador Linksys
  3. Método de compartilhamento de conexão com a Internet do Windows XP . se você tiver uma máquina Windows executando NAT
  4. [Se você estiver usando o XP, também poderá usar o IIS 6 5 (1 host virtual support) acessando Painel de controle> Adicionar e remover programas> Adicionar componente do Windows> Internet Information Services.

Isso pressupõe que você saiba hospedar um servidor da web e precisa de idéias sobre o NAT.

nik
fonte
1

Outra alternativa pode ser algo como o homelinux, onde seu endereço IP dinâmico pode ser mapeado para um statix .homelinux. URL

Existem também outras opções além de "homelinux"

http://www.dyndns.com/

0x808080
fonte
1
  1. Confira portforward.com . Eles têm instruções detalhadas para esse tipo de coisa, a idéia básica é que você precisa configurar o roteador para encaminhar solicitações TCP na porta 80 para o endereço IP do seu computador. Isso traz outra coisa: você precisará configurar seu computador para ter um IP estático. Se você possui um servidor DHCP em execução no seu roteador (que é o caso em 97% dos casos), certifique-se de atribuir um muito acima ou abaixo dele. Um google para "endereço IP estático da LAN" provavelmente trará instruções sobre como configurá-lo em vários sistemas operacionais.
  2. Funcionará desde que o seu ISP não esteja bloqueando as conexões de entrada na porta 80; alguns fazem isso por razões de segurança.
  3. Talvez. É o que estou fazendo agora com ftp, http, ssh, vnc, xmpp e algumas outras coisas ...

Você também precisa executar um servidor web no seu computador. Basta obter o Apache, ele roda em quase tudo e é o que a maioria dos sites usa.

marcusw
fonte
1

Depois de verificar todas essas respostas e vincular as instruções, concluí que todas envolvem configurações elaboradas com grandes programas (que são feitos parcialmente para outros fins) e arquivos de configuração e outras coisas, então decidi escrever minha própria solução.

https://github.com/rofl0r/nat-tunnel

É um script python de 250 linhas, que você pode executar diretamente no git checkout.

Exemplo: você tem um servidor HTTP escutando em sua máquina local na porta 80. Deseja disponibilizá-lo no IP público do servidor em nuvem / VPS / etc na porta 7000. Usamos a porta 8000 no servidor em nuvem para o canal de controle.

use como

Servidor:

natsrv.py --mode server --secret s3cretP4ss --public 0.0.0.0:7000 --admin 0.0.0.0:8000

Cliente:

natsrv.py --mode client --secret s3cretP4ss --local localhost:80 --admin example.com:8000
the_JQ
fonte
0
  1. port-forward tcp tráfego para seu roteador na porta 80 para seu pc em port_whatever_you_are_running_your_webserver

  2. você não precisa de um nome de domínio para permitir que outras pessoas acessem seu servidor da web; o IP público é suficiente. um nome de domínio para o seu ip público é apenas mais conveniente. caso contrário, seu plano ficará bem.

  3. seu roteador é apenas "um firewall" entre o público e seu servidor. essa configuração é bastante comum.

akira
fonte
0

Tente hospedar seu site estático no IPFS

ou site dinâmico no I2P

Volodimir Kopey
fonte
0

1.) Você precisa encaminhar a porta 80 para o seu endereço IP interno na porta 80

2.) Possivelmente. Se você tem um IP estático do seu ISP, está tudo pronto com essa estratégia. Se você não possui um IP estático, provavelmente precisará usar o Dynamic Dns, que é onde você executa um software no servidor, e ele atualiza continuamente o endereço IP do seu nome de domínio, o que geralmente é algo eles atribuem. No entanto, você pode configurar um registro CNAME no seu domínio apontando para o do provedor de DNS dinâmico.

3.) Eu pessoalmente não diria que é comum, mas também não é incomum.

JCA122204
fonte
-2

Sua estratégia é muito usada e, se você comprou um IP público, é muito bom seguir em frente.

Você deve obter o XAMPP. O XAMMP pré-configurado e o Apache usará a porta 80 por padrão. Verifique se nenhum outro processo está sendo executado na porta 80 ou o Apache não será executado. Geralmente, o Skype (se você usa o skype) pratica esportes estragados e porta de porcos 80, é necessário desativá-lo nas configurações de conexões.

Ele contém Apache, PHP e Mysql, que cuidará de todas as suas necessidades. Só não se esqueça de protegê-lo bem .

Lembre-se de que o XAMPP não é um software de produção, mas deve atender às suas necessidades de hospedagem de um site / blog pessoal.

Mais uma coisa, se você deseja que este site funcione 24 horas por dia, sete dias por semana, você deverá manter seu computador praticamente 24 horas por dia, sete dias por semana.

Se você precisar de um domínio gratuito, poderá obter um co.cc para uso pessoal, que será renovado todos os anos

rzlines
fonte