Comment autoriser l'accès en dehors de localhost

184

Comment puis-je autoriser l'accès en dehors de l'hôte local sur Angular2? Je peux naviguer localhost:3030/panelfacilement mais je ne peux pas naviguer lorsque j'écris mon adresse IP telle que 10.123.14.12:3030/panel/.

Pourriez-vous s'il vous plaît me permettre de résoudre ce problème? Je n'utilise pas npm(node ​​project manage - node install / node start) pour installer et exécuter le projet.

Si vous le souhaitez, je peux fournir mon package.jsonet index.html.

Tonyukuk
la source
1
utilisez-vous ng serve?
mast3rd3mon
1
oui j'utilise le serveur ng
Tonyukuk
2
avez-vous essayé ng serve --host 10.123.14.12?
Digvijay
1
Je suis fatigué de servir et il dit: "Je dois être à l 'intérieur d' un projet angular - cli pour pouvoir utiliser la commande serve".
Tonyukuk

Réponses:

338

L'utilisation ng serve --host 0.0.0.0vous permettra de vous connecter à l' ng serveaide de votre ip au lieu de localhost.

ÉDITER

Dans les versions plus récentes du cli, vous devez fournir votre adresse IP locale à la place

MODIFIER 2

Dans les versions plus récentes du cli (je pense que la v5 et les versions ultérieures), vous pouvez à nouveau l'utiliser 0.0.0.0comme adresse IP pour l'héberger à tout le monde sur votre réseau.

mast3rd3mon
la source
1
il dit "vous devez être dans un projet angluar-cli pour utiliser la commande serve" avec l'avertissement rouge quand j'écris ng sreve et aussi un message jaune indiquant que j'exécute la version 6.2.2 de Node, qui ne sera pas pris en charge dans les futures versions de la CLI après l'écriture de ng serve
Tonyukuk
1
d'abord, essayez de mettre à jour le nœud, deuxièmement, essayez de redémarrer votre terminal / vscode
mast3rd3mon
1
Je l'ai mis à jour du package json vers la version 6.0.46 en tant que "@ types / node": "6.0.46", mais je reçois toujours le même message
Tonyukuk
1
Je ne comprends pas comment les gens donnent - votent à mes questions et je ne sais pas qui le fait. Même vous comprenez mal la question et me donnez de fausses réponses, ils donnent encore "-" réputation. J'ai trouvé la réponse moi-même. J'étais censé ajouter "" server ":" webpack-dev-server --inline --progress --host 0.0.0.0 --port 3000 "," à packagejson
Tonyukuk
7
Cela a fonctionné pour moi:ng serve --open --host 0.0.0.0 --disable-host-check
Jonathan.Brink
39

Utilisateurs Mac:

  1. Allez dans Préférences Système -> Réseau -> Wi-Fi
  2. Copiez l'adresse IP sous Statut (généralement 192.168.1.x)
  3. Collez-le dans votre ng serve comme: ng serve --host 192.168.1.x

Ensuite, vous devez pouvoir voir votre page sur d'autres appareils via 192.168.1.x:4200.

Sajad
la source
1
J'avais l'habitude de travailler pour moi et de ne plus travailler. Je me demande pourquoi. J'ai l'impression d'avoir tout essayé! Mon pare-feu est désactivé. ng serve --host 10.xxx --disable-host-check / ng serve --host 0.0.0.0 --disable-host-check -> Non accessible depuis une machine distante Windows qui se trouve sur le même réseau que 10.xxx : 4200
Rafaël Moser
Fonctionne bien dans Angular 7 et MacOS 10.14.6
bks
Pour ce que ça vaut, la réponse acceptée fonctionne pour moi sur MacOS à partir d'octobre 2019.
Alexander Nied
Cela fonctionne pour moi, et après une recherche très large, c'est la seule réponse que j'ai vue pour spécifier cette étape clé: dans la barre d'adresse de votre navigateur safari iphone, branchez: 192.168.1.x: 4200, où x = chiffres finaux de votre adresse IP. Y compris le ": 4200" était la différence pour moi.
9gt53wS
@ RafaëlMoser l'avez-vous résolu? J'ai le même problème et je n'ai vraiment aucune idée.
Maaddy
29

commande run

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

cela désactivera la vérification de l'hôte et permettra l'accès de l'extérieur (au lieu de l'hôte local) avec l'adresse IP

Palla
la source
3
Je n'avais pas besoin de --disable-host-check. ng serve --host 0.0.0.0fonctionne bien pour moi. Que doit faire la vérification de l'hôte?
Andrew
5
J'ai eu besoin pour une fois de le disabled-host-checksinon j'ai reçu le message "Invalid Host header"
GameDroids
existe-t-il un moyen de le définir dans un fichier de configuration pour éviter de le mentionner à chaque fois?
Ayush Kumar
12

Vous pouvez utiliser la commande suivante pour accéder avec votre ip.

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

Si vous utilisez npm et que vous souhaitez éviter d'exécuter la commande à chaque fois, nous pouvons ajouter la ligne suivante au fichier package.json dans la section scripts .

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

Ensuite, vous pouvez exécuter votre application à l'aide de la commande ci-dessous pour être accessible à partir de l'autre système du même réseau.

npm start
Kutagolla Mahammad Irshad
la source
3
Il est maintenant -disableHostCheck = true | false dans ma version, Angular 8.
Tony
8

Je viens d'éditer le angular.jsonfichier dans mon projet comme ci-dessous et cela fonctionne

...

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

...

Farzad
la source
8

vous pouvez également introspecter tout le trafic HTTP en cours d'exécution sur vos tunnels en utilisant ngrok , puis vous pouvez exposer en utilisantngrok http --host-header=rewrite 4200

Zombi
la source
4

Ouvrez cmd et accédez à l'emplacement du projet, c'est-à-dire où vous exécutez npm install ou ng serve pour le projet.

puis exécutez la commande - ng serve --host 10.202.32.4510.202.32.45est votre adresse IP.

Vous pourrez accéder à votre page à l' 10.202.32.45:4200endroit où 4200 est votre numéro de port.

Remarque: si vous diffusez votre application à l'aide de cette commande, vous ne pourrez pas accéderlocalhost:4200

Rakesh Ranjan
la source
Est-il possible d'accéder dans les deux sens?
zishan paya
ça marche merci..je suppose que je cherchais une mauvaise adresse IP
Tejashri Patange
sachez que cela semble idiot, mais assurez-vous que votre téléphone utilise le même réseau wifi que votre machine de développement. J'utilisais un réseau invité ... +1 pour la seule réponse qui a fonctionné pour moi.
greg le
3

Car le problème était le pare-feu. Si vous êtes sous Windows, assurez-vous que le nœud est autorisé à passer entrez la description de l'image ici

TSR
la source
Je n'ai pas pu accéder à partir du même réseau même après avoir été servi avec ng serve --host 0.0.0.0. Mais l'autorisation du pare-feu était le problème, comme vous l'avez mentionné. Merci d'avoir pris le temps de partager celui-ci.
Sandy B le
3

Une solution rapide qui pourrait aider quelqu'un:

Ajoutez cette ligne comme valeur de départ ng serve --host 0.0.0.0 --disable-host-check dans votrepackage.json

ex:

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

Et puis simplement faire startounpm run start

vous pourrez accéder à votre projet à partir d'autres adresses IP locales.

Vikash Kumar
la source
1

Si vous rencontrez le même problème dans Docker, vous pouvez utiliser ci-dessous CMDdans Dockerfile.

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

Ou complète Dockerfile

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

Créez proxy.conf.jsonet collez cette configuration

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

Remplacer:

let url = 'api/'+ your path;

Exécuter à partir de la CLI:

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

pour moi cela fonctionne en utilisant "ng serve --open --host 0.0.0.0" mais il y a un avertissement


AVERTISSEMENT: il s'agit d'un serveur simple à utiliser pour tester ou déboguer localement des applications Angular. Il n'a pas été examiné pour des problèmes de sécurité.

Lier ce serveur à une connexion ouverte peut compromettre votre application ou votre ordinateur. L'utilisation d'un hôte différent de celui passé à l'indicateur "--host" peut entraîner des problèmes de connexion websocket. Vous devrez peut-être utiliser "--disableHostCheck" si tel est le cas.

Yonas
la source
-1

Aucun package.json n'est nécessaire pour changer.

Pour moi, cela fonctionne en utilisant:

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

Hôte: http: // localhost: 5999 /

Consule
la source
-1
  • Utilisez ng serve --host<Your IP> --port<Required if any>.

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

  • Vous pouvez maintenant voir la ligne ci-dessous à la fin de la compilation.

Angular Live Development Server écoute sur 192.111.1.11:4545, ouvrez votre navigateur sur http://192.111.1.11:4545/**.

Nanda Kishore Allu
la source
-3

Pour les personnes qui utilisent le gestionnaire de projet de nœud, cette ligne s'ajoutant à package.json sera également suffisante. Pour les utilisateurs de CLI angulaire, la réponse de mast3rd3mon est vraie.

Vous pouvez ajouter

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

à package.json

Tonyukuk
la source