Como permitir acesso fora do host local

184

Como posso permitir acesso fora do host local no Angular2? Posso navegar localhost:3030/panelfacilmente, mas não consigo navegar quando escrevo meu IP, como 10.123.14.12:3030/panel/.

Você poderia me permitir como consertar? Não estou usando npm(gerenciamento do projeto do nó - instalação do nó / início do nó) para instalar e executar o projeto.

Se você quiser, eu posso fornecer o meu package.jsone index.html.

Tonyukuk
fonte
1
você usa ng serve?
mast3rd3mon
1
sim eu estou usando ng servidor
tonyukuk
2
você tentou ng serve --host 10.123.14.12?
precisa saber é o seguinte
1
Eu cansei de servir e diz "Tenho que estar dentro de um projeto angular - cli para usar o comando servir".
tonyukuk

Respostas:

338

Usar ng serve --host 0.0.0.0permitirá que você se conecte ao ng serveusando seu ip em vez de localhost.

EDITAR

Nas versões mais recentes do CLI, você deve fornecer o seu endereço IP local

EDIT 2

Nas versões mais recentes do cli (acho que v5 e acima), você pode usar 0.0.0.0como o ip novamente para hospedá-lo para qualquer pessoa na sua rede conversar.

mast3rd3mon
fonte
1
ele diz "você precisa estar dentro de um projeto angluar - cli para usar o comando serve" com o aviso vermelho quando eu escrevo ng sreve e também uma mensagem amarela indicando que estou executando a versão 6.2.2 do Node, que não será suportada em versões futuras do CLI depois de escrever ng servir
tonyukuk
1
primeiro, o nó tente atualizar, em segundo, tente reiniciar seu terminal / vscode
mast3rd3mon
1
Eu atualizei-lo de json pacote para 6.0.46 como "@ tipos / nó": "6.0.46", mas ainda obter a mesma mensagem
tonyukuk
1
Não entendo como as pessoas votam nas minhas perguntas e não sei quem o faz. Até você entende a pergunta errada e me dá respostas erradas que elas ainda dão "-" reputação. Eu mesmo encontrei a resposta. Era para eu adicionar "" servidor ": "Webpack-dev-servidor --inline --progress --host 0.0.0.0 --port 3000"," para packagejson
tonyukuk
7
Isso funcionou para mim:ng serve --open --host 0.0.0.0 --disable-host-check
Jonathan.Brink
39

Usuários de Mac:

  1. Vá para Preferências do sistema -> Rede -> Wi-Fi
  2. Copie o endereço IP abaixo de Status (geralmente 192.168.1.x)
  3. Cole-o no seu ng servir como: ng serve --host 192.168.1.x

Em seguida, você deve poder ver sua página em outros dispositivos 192.168.1.x:4200.

Sajad
fonte
1
Costumava trabalhar para mim e não funciona mais. Querendo saber o porquê. Sinto como se tivesse tentado de tudo! Meu firewall está desativado. ng serve --host 10.xxx - verificação de host desativável / serve para ng --host 0.0.0.0 - verificação de host desativável -> Não acessível a partir de uma máquina remota Windows que esteja na mesma rede com 10.xxx : 4200
Rafaël Moser 03/07/19
Funciona bem em Angular 7 e MacOS 10.14.6
BKS
Pelo que vale a pena, a resposta aceita está funcionando para mim no MacOS a partir de outubro de 2019.
Alexander Nied
Isso funciona para mim e, depois de pesquisar em toda parte, é a única resposta que vi para especificar esta etapa chave: na barra de endereços do navegador iphone safari, conecte: 192.168.1.x: 4200, em que x = dígitos finais do seu endereço IP. Incluindo o ": 4200" foi a diferença para mim.
gt53wS 31/10/19
@ RafaëlMoser você resolveu? Eu tenho o mesmo problema e realmente não tenho noção.
Maaddy
29

comando de execução

ng serve --host=0.0.0.0 --disable-host-check

isso desativará a verificação do host e permitirá o acesso de fora (em vez de localhost) com o endereço IP

Palla
fonte
3
Eu não precisava de --disable-host-check. ng serve --host 0.0.0.0funciona bem para mim. O que a verificação do host deve fazer?
Andrew
5
Eu precisava pela primeira vez do disabled-host-checkcontrário, recebi a mensagem "Cabeçalho de host inválido"
GameDroids 27/03/19
existe uma maneira de defini-lo em um arquivo de configuração para evitar mencioná-lo sempre?
Ayush Kumar
12

Você pode usar o seguinte comando para acessar com seu ip.

ng serve --host 0.0.0.0 --disable-host-check

Se você estiver usando o npm e quiser evitar executar o comando toda vez, podemos adicionar a seguinte linha ao arquivo package.json na seção scripts .

"scripts": {
    ...
    "start": "ng serve --host 0.0.0.0 --disable-host-check"
    ...
}

Em seguida, você pode executar seu aplicativo usando o comando abaixo para ser acessado a partir de outro sistema na mesma rede.

npm start
Kutagolla Mahammad Irshad
fonte
3
É agora -disableHostCheck = true | false na minha versão, angular 8.
Tony
8

Eu apenas edito o angular.jsonarquivo no meu projeto como abaixo e funciona

...

    "serve": {
      "builder": "@angular-devkit/build-angular:dev-server",
      "options": {
        "browserTarget": "project:build",
        "host": "0.0.0.0"
      },

...

Farzad
fonte
8

você também pode inspecionar todo o tráfego HTTP que passa pelos seus túneis usando o ngrok e pode expor usandongrok http --host-header=rewrite 4200

Zumbi
fonte
4

Abra o cmd e navegue até o local do projeto, ou seja, onde você executa o npm install ou ng serve para o projeto.

e execute o comando - ng serve --host 10.202.32.45onde 10.202.32.45está o seu endereço IP.

Você poderá acessar sua página 10.202.32.45:4200onde 4200 é o número da sua porta.

Nota: Se você veicular seu aplicativo usando este comando, não poderá acessarlocalhost:4200

Rakesh Ranjan
fonte
É possível acessar nos dois sentidos?
Zishan paya
ele funciona thanks..i acho que eu estava olhando para o endereço IP errado
Tejashri Patange
Sei que parece bobagem, mas verifique se o telefone está usando a mesma rede wifi que você usa na máquina. Eu estava usando uma rede de convidados ... +1 para a única resposta que funcionou para mim.
greg
3

Para o problema era Firewall. Se você estiver no Windows, verifique se o nó é permitido através insira a descrição da imagem aqui

TSR
fonte
Não consegui acessar da mesma rede mesmo depois de servido com ng serve --host 0.0.0.0. Mas a permissão do firewall foi o problema que você mencionou. Obrigado por reservar um tempo para compartilhar este.
Sandy B
3

Uma solução rápida que pode ajudar alguém:

Adicione esta linha como valor para iniciar ng serve --host 0.0.0.0 --disable-host-check no seupackage.json

ex:

{
"ng": "ng",
"start": "ng serve --host 0.0.0.0 --disable-host-check",
"build": "ng build",
}

E então simplesmente faça startounpm run start

você poderá acessar seu projeto a partir de outros IPs locais.

Vikash Kumar
fonte
1

Se você enfrentar o mesmo problema dentro do Docker, poderá usar abaixo CMDno Dockerfile.

CMD ["ng", "serve", "--host", "0.0.0.0"]

Ou complete o Dockerfile

FROM node:alpine
WORKDIR app
RUN npm install -g @angular/cli
COPY . .
CMD ["ng", "serve", "--host", "0.0.0.0"]
Adiii
fonte
-1

Crie proxy.conf.jsone cole esta configuração

{  
"/api/*":
    {    
        "target": "http://localhost:7070/your api project name/",
        "secure": false,
        "pathRewrite": {"^/api" : ""}
    }
}

Substituir:

let url = 'api/'+ your path;

Execute a partir da CLI:

ng serve  --host port.number —-proxy-config proxy.conf.json
Gaurav Srivastava
fonte
-1

para mim ele funciona usando "ng serve --open --host 0.0.0.0", mas há um aviso


AVISO: Este é um servidor simples para uso local em testes ou depurações de aplicativos Angular. Não foi revisado por problemas de segurança.

A ligação deste servidor a uma conexão aberta pode resultar em comprometimento do seu aplicativo ou computador. Usar um host diferente daquele transmitido para o sinalizador "--host" pode resultar em problemas de conexão com o websocket. Pode ser necessário usar "--disableHostCheck" se for esse o caso.

Yonas
fonte
-1

Não é necessário alterar o package.json.

Para mim, funciona usando:

ng serve --host = 0.0.0.0 --port = 5999 --disable-host-check

Anfitrião: http: // localhost: 5999 /

Consule
fonte
-1
  • Use ng serve --host<Your IP> --port<Required if any>.

  • ng serve --host = 192.111.1.11 --port = 4545.

  • Agora você pode ver a linha abaixo no final da compilação.

O Angular Live Development Server está ouvindo 192.111.1.11:4545, abra o navegador em http://192.111.1.11:4545/**.

Nanda Kishore Allu
fonte
-3

Para as pessoas que estão usando o gerenciador de projetos do nó, também essa linha incluída no package.json será suficiente. Para usuários angulares da CLI, a resposta do mast3rd3mon é verdadeira.

Você pode adicionar

"server": "webpack-dev-server --inline --progress --host 0.0.0.0 --port 3000"

para package.json

Tonyukuk
fonte