Запустите программу xinetd при подключении через telnet

835
jon.s

Я пытаюсь настроить ASCII Art Telnet Server, как классический проект ASCII Star Wars:

telnet towel.blinkenlights.nl

https://github.com/nitram509/ascii-telnet-server

У меня был успех в настройке сервера telnet, но я пропускаю последний шаг запуска asciiplayer при входе в telnet. (В идеале, я бы хотел, чтобы он работал как полотенце.blinkenlights.nl, где вы не необходимо войти в систему, и фильм ASCII немедленно запускается.)

НАСТРОЙКА ТЕЛНЕТА

Вот шаги, которые я выполнил, используя свежую дроплет Digital Ocean под управлением Ubuntu 16.04.2 x64 после настройки брандмауэра и открытия порта 23.

установить telnetd и xinetd: sudo apt-get install xinetd telnetd

создайте файл telnet в /etc/xinetd.d: sudo nano /etc/xinetd.d/telnet

# default: on # description: The telnet server serves telnet sessions; it uses # unencrypted username/password pairs for authentication. service telnet { disable = no flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID } 

Перезапустите сервис xinetd: sudo service xinetd restart

ПОЛУЧЕНИЕ РАБОТЫ ASCIIPLAYER

Я подтвердил, что это разрешает доступ через telnet (используя имя пользователя / пароль)

Я загрузил папку asciiplayer в /opt/

Согласно README для asciiplayer, мне нужно заменить приведенную выше конфигурацию на /etc/xinetd.d/telnetбит ниже:

# default: on # description: An telnet service playing an ASCII movie service telnet { disable = no socket_type = stream protocol = tcp port = 23 user = root wait = no instances = 10  log_type = FILE /var/log/asciiplayer log_on_success += PID HOST DURATION log_on_failure = HOST server = /usr/bin/python server_args = -u -OO /opt/asciiplayer/ascii_telnet_server.py -f /opt/asciiplayer/sw1.txt --stdout } 

После этого я больше не могу telnet на сервер. Это просто возвращает:

telnet: невозможно подключиться к удаленному хосту: соединение отклонено

Какую часть процесса я пропускаю? Я чувствую, что это очень близко. Я проделал описанный выше процесс несколько раз и просто не могу заставить ascii_telnet_server.py работать при telnetting. Мир нуждается в большем количестве ASCII фильмов по телнету! Любая помощь будет принята с благодарностью ...

0
Правильный ли путь (вы действительно установили `ascii_telnet_server.py` в` / opt`)? Вы пытались запустить `/opt/asciiplayer/ascii_telnet_server.py -f /opt/asciiplayer/sw1.txt --stdout` напрямую от имени пользователя root? dirkt 6 лет назад 0
Хорошая идея @dirkt, я обновил вопрос ... Похоже, это была проблема с путями в Python ... `python /opt/asciiplayer/ascii_telnet_server.py -f /opt/asciiplayer/sw1.txt --stdout` теперь работает ! когда залогинен как root. Сейчас я собираюсь поиграть с тем, чтобы он запускался, когда кто-то телнетит к коробке (надеюсь, без имени пользователя / пароля, как в классическом джеме). jon.s 6 лет назад 0
Пожалуйста, добавьте ответ и опишите, что именно вы сделали. dirkt 6 лет назад 0

1 ответ на вопрос

0
jon.s

Благодаря комментарию / подсказке @ dirkt, я смог найти простое решение.

Запуск /opt/asciiplayer/ascii_telnet_server.py -f /opt/asciiplayer/sw1.txt --stdoutнапрямую от имени пользователя root привел к следующей ошибке:

/opt/asciiplayer/ascii_telnet_server.py: line 43:   : No such file or directory from: can't read /var/mail/__future__ /opt/asciiplayer/ascii_telnet_server.py: line 46: import: command not found /opt/asciiplayer/ascii_telnet_server.py: line 47: import: command not found from: can't read /var/mail/optparse from: can't read /var/mail/ascii_telnet.ascii_movie from: can't read /var/mail/ascii_telnet.ascii_player from: can't read /var/mail/ascii_telnet.ascii_server /opt/asciiplayer/ascii_telnet_server.py: line 55: syntax error near unexpected token `(' /opt/asciiplayer/ascii_telnet_server.py: line 55: `def runTcpServer(interface, port, filename):' 

Который выглядел как проблема была простой Python вопрос путь ... Итак, я заменил # !/usr/bin/env pythonв opt/asciiplayer/ascii_telnet_server.pyс # !/usr/bin/python(что это путь, который which pythonдал мне)

Для вашего удовольствия ASCII, попробуйте: telnet 138.197.212.250(IP-адрес может быть изменен, так как я продолжаю разработку)