Веб‑сервер на Chromebook (Crostini): установка и тестирование
Ключевые варианты запроса: установить веб‑сервер на Chromebook, Crostini Apache, nginx на Chromebook, тестировать сайт на Chromebook, локальная разработка ChromeOS
Причина и краткий план
Crostini — это Linux‑окружение на Chromebook. Оно отлично подходит для разработки и локального тестирования веб‑проекта. В статье показаны практические шаги: установить сервер, убедиться в запуске, узнать IP контейнера и открыть тестовую страницу в браузере.
Шаг 1: Установка веб‑сервера на Chromebook
Установить любой поддерживаемый веб‑сервер в контейнере Debian просто: используйте стандартный apt. Перед установкой полезно обновить список пакетов:
sudo apt update && sudo apt upgradeПример установки Apache:
sudo apt install apache2Пример установки Nginx:
sudo apt install nginxAPT автоматически загрузит и запустит сервер, если пакет настроен на автозапуск.
Важно: после установки проверьте статус службы и логи, если нужно.
sudo systemctl status apache2.service
sudo journalctl -u apache2.service --no-pager --since "5 minutes ago"Если система сообщает, что systemctl недоступен, посмотрите вывод статуса пакета через apt или логи в /var/log/apache2 или /var/log/nginx.
Как проверить, что сервер запущен
- Используйте top или htop и ищите имя демона (apache2, nginx).
- Можно просмотреть список процессов и отфильтровать по имени:
ps aux | grep serverЗамените server на apache2 или nginx в зависимости от установленного ПО.
Вы также можете проверить, что процесс слушает порт 80 (HTTP) или 443 (HTTPS):
ss -tuln | grep :80Шаг 2: Найдите IP‑адрес Linux‑контейнера
Узнать IP контейнера можно так:
ip addressНайдите секцию с интерфейсом eth0 и значение inet. Пример строки:
inet 192.168.XXX.YYY/24 brd 192.168.XXX.255 scope global eth0Этот адрес — приватный и виден только для самого Chromebook (внутри хоста). На нём и будут доступны ваши тестовые сайты в браузере Chrome на Chromebook.
Шаг 3: Подключаемся к серверу
Откройте в браузере Chrome адрес вида http://
Примечания:
- Apache обычно использует корневую папку /var/www/html. Для nginx это /var/www/html или каталог, указанный в конфигурации.
- Чтобы посмотреть содержимое ответа, можно использовать curl:
curl -I http://192.168.XXX.YYY/Ожидаемый ответ должен содержать строку HTTP/1.1 200 OK.
Проверка доступа и базовая отладка
Если страница не открывается:
- Проверьте, что служба запущена: sudo systemctl status apache2.service.
- Убедитесь, что сервер слушает порт 80: ss -tuln | grep :80.
- Проверьте права на файлы в /var/www и владельца (обычно www-data для Apache).
- Проверьте SELinux/AppArmor — в стандартном Crostini SELinux обычно не включён, но AppArmor может влиять на доступ.
Если нужно тестировать со второго устройства (другой компьютер или телефон):
- Учтите, что IP, полученный внутри контейнера, часто недоступен напрямую из внешней сети.
- Для внешнего доступа используйте безопасные туннели (ngrok, localtunnel) или деплойте на удалённый тестовый сервер.
- Альтернативно, настройте SSH‑туннелирование с хоста Chromebook на внешний хост.
Мини‑методология разработки и тестирования на Chromebook
- Создайте структуру сайта локально (например, в /home/
/project). - Скопируйте (или смонтируйте) файлы в /var/www/html для простого теста.
- Проверяйте логи ошибок при неудаче: /var/log/apache2/error.log или /var/log/nginx/error.log.
- Тестируйте отдельные эндпоинты через curl или Postman.
- Используйте git в контейнере для управления версионированием.
Безопасность и простая жёсткая конфигурация
- Не запускайте веб‑сервер от root; используйте штатного пользователя демона (www‑data).
- Ограничьте права на каталог сайта: sudo chown -R www-data:www-data /var/www/html && sudo chmod -R 750 /var/www/html.
- При необходимости включите брандмауэр UFW внутри контейнера:
sudo apt install ufw
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable- Для тестирования HTTPS используйте самоподписанные сертификаты или локальные прокси; для публичных тестов применяйте Let’s Encrypt на реальном домене.
Роли и чек‑лист перед релизом
Для разработчика:
- Страница открывается по http://
/ и возвращает 200. - Отладочные сообщения отключены, логи чисты.
- Права файлов корректны.
Для тестировщика:
- Покрыты базовые сценарии (главная, статические файлы, формы).
- Проверено поведение при ошибках (404, 500).
Для оператора:
- Понимаете, как получить доступ к логам и перезапустить сервис.
- Имеется план отката (вернуть старую версию из git и перезапустить сервис).
Когда это не подойдёт
- Если нужен публичный доступ из интернета — лучше сразу разместить проект на удалённом тестовом сервере или использовать платные туннели. Crostini удобен для локальной разработки, но не как публичный хост.
- Для тяжёлых нагрузок Chromebook не заменит полноценный сервер.
Критерии приёмки
- Главная страница доступна по http://
/ и возвращает 200. - Статические ресурсы (CSS, JS, изображения) загружаются корректно.
- Логи сервера не содержат критических ошибок при простом запросе.
Частые ошибки и решения
- “Connection refused”: сервер не запущен или слушает другой порт — проверьте systemctl и ss.
- Неверный IP: используйте ip address и смотрите на eth0, а не на lo.
- Права на файлы: проверьте владельца и права в /var/www/html.
Короткий глоссарий
- Crostini — Linux‑контейнер на ChromeOS.
- Apache/Nginx — популярные веб‑серверы.
- UFW — простой интерфейс для управления iptables.
Важные заметки
Важно: все описанные шаги выполняются внутри Linux‑контейнера Crostini. Изменения в конфигурации ChromeOS не требуются. Для публикации сайта в интернет используйте надёжный удалённый хост.
Короткое резюме
- Установите веб‑сервер через apt и запустите его systemctl.
- Узнайте IP контейнера командой ip address (интерфейс eth0).
- Откройте этот IP в браузере Chrome для проверки.
- Для внешнего доступа используйте туннели или полноценный сервер.
FAQ
Как узнать, на какой папке сервер ищет файлы?
Проверьте конфигурацию: для Apache это /etc/apache2/sites-enabled/000-default.conf, для nginx — /etc/nginx/sites-enabled/default.
Можно ли использовать HTTPS в Crostini?
Да. Можно сгенерировать самоподписанный сертификат или использовать прокси для HTTPS. Для публичного домена используйте Let’s Encrypt на полном сервере.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone