Вопрос или проблема
Я создал приложение Angular в CentOs7 и смог открыть его в веб-браузере в моей виртуальной машине CentOs7, используя http://localhost:4200/. Мне нужно иметь возможность получить к нему доступ из моей виртуальной машины Windows 10, но когда я попробовал изменить IP, оно все еще работало в Cent, но выдавало ошибку, говоря, что порт 4200 уже используется. Это не работает в Windows с любым из адресов. Как мне настроить это так, чтобы оно было доступно в моей виртуальной машине Windows?
Чтобы получить доступ к приложению Angular, размещенному на сервере CentOS 7, из виртуальной машины Windows 10 (VM), вы можете следовать этим шагам:
1. Убедитесь, что приложение Angular запущено
Запустите сервер разработки Angular, используя:
ng serve –host 0.0.0.0 –port 4200
Флаг –host 0.0.0.0 позволяет доступ с внешних машин.
Флаг –port 4200 указывает порт, на котором работает приложение (по умолчанию 4200).
Проверьте, что приложение запущено на CentOS, обратившись к http://localhost:4200 непосредственно на машине CentOS.
- Проверьте правила фаервола CentOS
Убедитесь, что фаервол CentOS позволяет входящий трафик на порт приложения Angular (по умолчанию 4200). Используйте следующие команды:
Проверьте текущие правила фаервола:
sudo firewall-cmd –list-all
Добавьте порт 4200 в фаервол:
sudo firewall-cmd –permanent –add-port=4200/tcp
sudo firewall-cmd –reload
-
Найдите IP-адрес CentOS
Определите IP-адрес сервера CentOS, используя:
ip addr
Ищите IP в поле inet в активном сетевом интерфейсе (например, eth0 или ens33). -
Обеспечьте сетевую подключенность
Убедитесь, что машины CentOS и Windows находятся в одной сети (физической или виртуальной).
Если они находятся в виртуальной сети, настройте сетевые параметры VM:
Режим моста: позволяет VM использовать сетевой адаптер хоста для внешнего доступа.
NAT/Переадресация портов: перенаправьте порт приложения CentOS (4200) на машину Windows. -
Получите доступ к приложению Angular с Windows
Откройте браузер на виртуальной машине Windows 10.
Введите URL-адрес, используя IP и порт сервера CentOS, например:
http://:4200
Замените на фактический IP-адрес из Шага 3.
6. Советы по устранению неполадок
Тест ping: Проверьте подключение между Windows и CentOS, используя ping из командной строки Windows.
Логи фаервола: Проверьте логи фаервола CentOS на наличие заблокированных запросов, если вы сталкиваетесь с проблемами.
Консоль браузера: Проверьте инструменты разработчика браузера на наличие сетевых ошибок.
Сборка Angular: Если приложение используется в производственной среде, соберите приложение и запустите его с помощью сервера статических файлов (например, Nginx или Apache):
ng build –prod
Этот подход должен обеспечить беспрепятственный доступ к приложению Angular, размещенному на CentOS 7, из вашей виртуальной машины Windows 10.
Ответ или решение
Для доступа к приложению Angular, развернутому на сервере CentOS 7, из виртуальной машины Windows 10, требуется выполнить ряд конфигураций на обеих платформах. Ниже приведены детализированные шаги для достижения этой цели.
Теория: Для обеспечения доступности веб-приложения, запущенного на одном сервере, с других устройств в той же сети, необходимо убедиться, что приложение настроено на прослушивание запросов не только с localhost, но и с доступных IP-адресов хоста. Также необходимо проверить сетевую конфигурацию и настройки безопасности, такие как брандмауэр и сетевые интерфейсы.
Пример:
-
Запуск Angular приложения на CentOS 7
- Используйте команду
ng serve --host 0.0.0.0 --port 4200
чтобы запустить сервер разработки Angular. Оно позволит принимать запросы с любых внешних адресов благодаря использованию--host 0.0.0.0
. - Проверьте, что приложение успешно работает на CentOS, открыв в браузере URL
http://localhost:4200
.
- Используйте команду
-
Настройка правил брандмауэра CentOS
- Убедитесь, что брандмауэр CentOS позволяет входящий трафик на порт 4200. Выполните следующие команды:
sudo firewall-cmd --permanent --add-port=4200/tcp sudo firewall-cmd --reload
- Убедитесь, что брандмауэр CentOS позволяет входящий трафик на порт 4200. Выполните следующие команды:
-
Определение IP-адреса CentOS
- Используйте команду
ip addr
для получения информации об IP-адресе вашего CentOS сервера. Найдите адрес в полеinet
активного сетевого интерфейса (например,eth0
илиens33
).
- Используйте команду
-
Проверка сетевой подключаемости
- Убедитесь, что машины CentOS и Windows находятся в одной сети. Если вы используете виртуальную сеть, настройте параметры сети виртуальной машины:
- Режим моста (Bridged Mode): Позволяет VM использовать сетевой адаптер хоста для доступа к внешним сетям.
- NAT/Протоколирование портов (Port Forwarding): Перенаправьте порт 4200 приложения на машину Windows.
- Убедитесь, что машины CentOS и Windows находятся в одной сети. Если вы используете виртуальную сеть, настройте параметры сети виртуальной машины:
-
Доступ к приложению из Windows
- Откройте браузер в Windows 10 VM.
- Введите URL, включающий IP-адрес сервера CentOS и порт:
http://<IP-адрес>:4200
.
Применение:
- Запустите тестирование соединения, используя команду
ping <IP-адрес>
из командной строки Windows, чтобы проверить доступность CentOS. - Просмотрите логи брандмауэра CentOS на предмет заблокированных запросов, если возникают проблемы.
- Используйте инструменты разработчика браузера для проверки ошибок сети.
Данный подход позволит вам успешно получить доступ к Angular приложению на CentOS 7 из вашей Windows 10 VM, минимизируя потенциальные проблемы конфигурации сети и безопасности.