Я просто установил Ubuntu 17.10 и Мини-сетевые 2.2.2 от Пакетов (sudo apt-get install mininet
) на моем ноутбуке. Исходно, т.е. реальная ОС на реальной машине, никаких виртуальных машинах любого вида. Ноутбуком является MacBook Pro 2017 13 дюймов без touchbar (MacBookPro14,1), и Ubuntu работает на быстрой флеш-карте; просто пишущий для полноты, я не думаю, что это релевантно.
Мне нужен доступ CLI к каждому Мини-сетевому хосту, который я собираюсь создать, чтобы запустить пользовательские тесты и наблюдать трафик, который проходит мимо в каждом узле.
На моем прежнем ноутбуке у меня была подобная установка, но с более старыми версиями Ubuntu и вероятно также Мини-сети, и мне удалось смочь метать икру xterm
s от каждого Мини-сетевого хоста, который я хотел. Проблема, я не помню вообще, как я сделал это =).
echo $DISPLAY
возвраты :0
выполняю ли я его в регулярной оболочке или в Мини-сетевом хосте, но в регулярной оболочке xterm
открывает xterm окно. Скажем, h1
мой Мини-сетевой хост. Я запускаю Мини-сеть с sudo mn
и я добираюсь:
h1 echo $DISPLAY
--> :0
xterm h1
-> ничто, и ничего не происходитh1 xterm &
-> ничто, и ничего не происходитh1 xterm
--> No protocol specified. Warning: This program is an suid-root program or is being run by the root user. The full text of the error or warning message cannot be safely formatted in this environment. You may get a more descriptive message by running the program as a non-root user or by removing the suid bit on the executable. xterm: Xt error: Can't open display: %s
Вся информация, которую я мог найти, связана с передачей X11 с ssh и всем, что я попробовал отказавший.
Какая-либо идея?
Выполненный xhost +local:
в терминале, не будучи суперпользователем для устранения проблемы. Ниже деталей.
Проблема происходит из-за xterm, не работающего по умолчанию при аутентификации как суперпользователь (Мини-сеть должна быть выполнена как суперпользователь), из соображений безопасности.
Можно проверить - ли это проблема путем выполнения xterm
и sudo xterm
в терминале зарегистрированный, как обычно (если Вы сделали что-то как sudo su
прежде чем эта проверка бессмысленна). Если xterm
открывается, но sudo xterm
не делает, затем необходимо работать
xhost +local:
sudo xterm
должен работать теперь, а также h1 xterm
в Мини-сети. Это вызвано тем, что с той командой Вы обеспечили графический доступ сервера к приложениям, работающим как sudo
или su
.
Установка не сохранится между перезагрузками, и она может вернуться с xhost -
.
Обратите внимание на то, что путем выполнения этого, Вы даете любому пользователю в системе или доступе к сети к Вашему $DISPLAY без аутентификации (https://wiki.archlinux.org/index.php/Xhost).