Как разрешить доступ за пределами локального хоста
Как я могу разрешить доступ вне локального хоста на 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:
- Перейдите в Системные настройки -> Сеть -> Wi-Fi
- Скопируйте IP-адрес ниже статуса (обычно 192.168.1.x)
- Вставьте это в свою нг подачу как:
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/
В Angular версии 11 (и, возможно, в некоторых более ранних версиях)
--public-host
вариант подходит для меня, например:
$ ng serve --host 0.0.0.0 --public-host app.mypublicdomain.com
Вы также можете анализировать весь HTTP-трафик, проходящий через ваши туннели, с помощью ngrok, а затем вы можете использовать ngrok http --host-header=rewrite 4200
ng serve --host 0.0.0.0
позволит вам подключиться к серверу ng, используя ваш IP-адрес вместо локального хоста.Откройте в браузере адрес <IP-АДРЕС>:4200.
С использованием
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
Это будет работать.