1

Проблема: серверы, кажется, сломаны в моем chroot Ubuntu. Независимо от того, какой сервер я пытаюсь запустить, все они кажутся не отвечающими (сервер VLC не отвечает клиенту, mkRemote не перемещает курсор, Apache выдает ошибку о привязке к порту 80 и не запускается, и т.д.).).

Если я не ошибаюсь, то, что обычно должно происходить внутри chroot, это то, что все порты разделены между chroot и хостом, поэтому, если другая машина попытается подключиться к хосту через порт 80, она все равно увидит chrooted веб-сервер. Однако здесь это не то, что происходит.

Когда я запускаю netstat из chroot, каждый отдельный процесс перечисляет внешний адрес 0.0.0.0:*, что означает, что единственным компьютером, который может действовать как клиент, является локальный хост. Это явно неправильное и ненормальное поведение, поскольку любой процесс на моей основной машине, предназначенный для публичного просмотра, перечисляет внешний адрес ::: * (что, как я предполагаю, означает, что любой клиент может видеть его с любого порта).
Редактировать: игнорировать это; очевидно, что внешний адрес различает только то, прослушивает ли он соединения IPv4 или IPv6, поэтому здесь он не имеет значения.

Пока Google не вернул ничего ценного, и я в основном в тупике. Есть идеи? Может ли это быть какой-то настройкой того, какой из разработчиков chroot patch включен по умолчанию, или это кажется более сложной проблемой?

Дополнительный контекст: http://rootzwiki.com/topic/14682-webos-servers-inside-chrooted-ubuntu/

1 ответ1

1

У меня была та же проблема, и я нашел этот вопрос, когда искал ответ в Интернете, и я только что нашел решение! Я пытался запустить сервер Ruby on Rails WEBrick на моей изолированной Ubuntu на сенсорной панели. Я неожиданно правильно установил все свои драгоценные камни и запустил сервер rails. Я перешел на localhost:3000 в моем браузере на сенсорной панели, и он отлично загрузил мой проект. Однако когда я попытался перейти на сервер моей сенсорной панели на рабочем столе, посетив 192.168.x.x:3000 , запрос истек. Я знал, что это должно быть проблема с брандмауэром, но при регистрации в моей изолированной Ubuntu я понял, что брандмауэр отключен, а iptables даже не установлен. Я начал думать и выдвинул теорию, что WebOS блокирует связь на всех портах. Я сканировал порты с помощью сетевого сканера на моем компьютере, и ничего не было открыто. Это будет пинг-понг, но нет доступа к порту. После еще нескольких поисков я обнаружил, что сенсорная панель использует iptables в WebOS. Простой способ получить доступ к Linux, лежащему в основе WebOS, - это использовать XTerm (вы, вероятно, установили его вместе с Xecutah и XServer из Preware). Просто запустите Xecutah и нажмите Start XTerm. Я набрал эти команды, чтобы разрешить любой доступ ко всем портам для WebO, что, в свою очередь, дает доступ ко всем портам для chroot Ubuntu:

sudo iptables-save > /firewall.rules

iptables -X

iptables -t nat -F

iptables -t nat -X

iptables -t mangle -F

iptables -t mangle -X

iptables -P INPUT ACCEPT

iptables -P FORWARD ACCEPT

iptables -P OUTPUT ACCEPT

iptables -F

Не беспокойтесь, если iptables -X выдаст ошибку ссылки. Если после того, как вы закончили тестирование вашего сервера, вы хотите восстановить брандмауэр в WebOS, просто запустите эту команду:

iptables-restore < /firewall.rules

Это все, что заставило мой сервер работать на chrooted Ubuntu. То же самое должно работать для вас.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .