Как разрешить доступ за пределами локального хоста

Как я могу разрешить доступ вне локального хоста на Angular2? Я могу ориентироваться на localhost:3030/panel легко но не могу ориентироваться когда пишу свой IP такой как 10.123.14.12:3030/panel/,

Не могли бы вы позволить мне, как это исправить? Я не пользуюсь npm (управление проектом узла - установка узла / запуск узла) для установки и запуска проекта.

Если хотите, я могу предоставить package.json а также index.html,

21 ответ

Решение

С помощью ng serve --host 0.0.0.0 позволит вам подключиться к ng serve используя ваш ip вместо localhost,

РЕДАКТИРОВАТЬ

В более новых версиях Cli, вы должны указать свой локальный IP-адрес

РЕДАКТИРОВАТЬ 2

В более новых версиях Cli (я думаю, v5 и выше) вы можете использовать 0.0.0.0 как IP-адрес снова, чтобы разместить его для любого в вашей сети, чтобы поговорить с.

Запустите команду-" ng serve --host=0.0.0.0 --disable-host-check "

это отключит проверку хоста и разрешит доступ извне (вместо localhost) с IP-адресом

Пользователи Mac:

  1. Перейдите в Системные настройки -> Сеть -> Wi-Fi
  2. Скопируйте IP-адрес ниже статуса (обычно 192.168.1.x)
  3. Вставьте это в свою нг подачу как: ng serve --host 192.168.1.x

Тогда вы сможете увидеть свою страницу на других устройствах через 192.168.1.x:4200,

Вы можете использовать следующую команду для доступа со своим ip.

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

Если вы используете npm и не хотите запускать команду каждый раз, мы можем добавить следующую строку в файл package.json в разделе скриптов.

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

Затем вы можете запустить приложение, используя приведенную ниже команду, чтобы к нему можно было получить доступ из другой системы в той же сети.

npm start

Я просто редактирую angular.json файл в моем проекте, как показано ниже, и он работает

...

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

...

Нет необходимости изменять package.json.

Для меня это работает с использованием:

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

Хост: http://localhost:5999/

Ибо проблема была в брандмауэре. Если вы работаете в Windows, убедитесь, что узел разрешен через

В Angular версии 11 (и, возможно, в некоторых более ранних версиях) --public-host вариант подходит для меня, например:

$ ng serve --host 0.0.0.0 --public-host app.mypublicdomain.com

Вы также можете анализировать весь HTTP-трафик, проходящий через ваши туннели, с помощью ngrok, а затем вы можете использовать ngrok http --host-header=rewrite 4200

  1. ng serve --host 0.0.0.0позволит вам подключиться к серверу ng, используя ваш IP-адрес вместо локального хоста.

    Откройте в браузере адрес <IP-АДРЕС>:4200.

  2. С использованием ng serve --host 0.0.0.0 --disable-host-checkпозволит вам подключиться к серверу ng, используя ваш домен вместо локального хоста.

    Откройте в браузере адрес <ДОМЕННОЕ ИМЯ>:4200.

Если вы столкнулись с такой же проблемой внутри Docker, вы можете использовать ниже CMD в Dockerfile.

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

Или заполните Dockerfile

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

Откройте cmd и перейдите в местоположение проекта, т.е. где вы запускаете npm install или ng serve для проекта.

а затем выполните команду - ng serve --host 10.202.32.45 где 10.202.32.45 ваш IP-адрес

Вы сможете получить доступ к своей странице по адресу 10.202.32.45:4200 где 4200 - номер вашего порта.

Примечание. Если вы обслуживаете свое приложение с помощью этой команды, вы не сможете получить доступ кlocalhost:4200

Быстрое решение, которое может кому-то помочь:

Добавьте эту строку как значение для начала ng serve --host 0.0.0.0 --disable-host-checkв твоем package.json

пример:

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

А потом просто сделай start или npm run start

вы сможете получить доступ к своему проекту с других локальных IP-адресов.

Использование команды ng serve --host 0.0.0.0 решило мою проблему. Используйте 192.168.xx:5200, чтобы получить доступ к приложению с другого компьютера.

Кроме того, проверьте правила брандмауэра на клиенте и сервере (временно отключите брандмауэр или создайте правило, разрешающее трафик)

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

Это сработало для меня отлично (даже с использованием общедоступного IP-адреса с хостом, указанным на этот IP-адрес).

      @angular/cli@12.0.1
ng serve --host=0.0.0.0 --disableHostCheck

Создайте proxy.conf.json и вставьте эту конфигурацию

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

Заменить:

let url = 'api/'+ your path;

Запускаем из CLI:

ng serve  --host port.number —-proxy-config proxy.conf.json
  • Использовать ng serve --host<Your IP> --port<Required if any>.

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

  • Теперь вы можете увидеть следующую строку в конце компиляции.

Angular Live Development Server прослушивает 192.111.1.11:4545, откройте браузер на http://192.111.1.11:4545/ **.

Для меня он работает с использованием "ng serve --open --host 0.0.0.0", но есть предупреждение


ВНИМАНИЕ! Это простой сервер для локального тестирования или отладки приложений Angular. Он не проверялся на предмет безопасности.

Привязка этого сервера к открытому соединению может привести к компрометации вашего приложения или компьютера. Использование другого хоста, отличного от того, который передан флагу "--host", может привести к проблемам с подключением к веб-сокету. В этом случае вам может потребоваться использовать "--disableHostCheck".

Для людей, использующих менеджер проектов узлов, также будет достаточно добавить эту строку в package.json. Для пользователей угловых CLI ответ mast3rd3mon верен.

Вы можете добавить "" сервер ": "webpack-dev-server --inline --progress --host 0.0.0.0 --port 3000"в package.json

Решение для "Вы должны быть внутри проекта angular-cli, чтобы использовать команду подачи" простое. Это говорит о том, что вы должны быть внутри вашей папки проекта. То есть вам нужно перейти к местоположению вашего проекта в командной строке или что-то еще. Просто используйте команду cd, чтобы перейти к папке вашего проекта. Как только вы окажетесь в папке вашего проекта, введите

ng serve

Это будет работать.

Другие вопросы по тегам