Можно ли прослушивать TCP порт только с помощью оболочки, без дополнительных инструментов? [закрыто]

Мне нужен очень простой веб-сервер на очень маленькой встраиваемой системе с процессором MISP. Я подумал, что простейшим сервером может быть shell-скрипт, прослушивающий TCP-порт.

Проблема в том, что в системе нет даже perl. Только какой-то базовый shell /bin/sh. Я искал в Интернете "как прослушивать порт из оболочки", но все ответы, которые я нашел, ссылались на некоторые другие инструменты, такие как nc, которых у меня нет.

Возможно ли это вообще сделать?

В системе, это маршрутизатор, установлен busybox и некоторые другие двоичные файлы в каталоге /bin, это:

#ls /bin
chown        df           fatattr      gzip         login        mount
ping         rm           shuf         touch        usleep
busybox      comgt        dmesg        fgrep        hostname     ls
mv           ping6        rmdir        sleep        true         vi
busybox-new  cp           echo         flock        ip           mkdir
netstat      printf       sdparm       split        umount       watch
cat          date         egrep        grep         kill         mknod
nice         ps           sed          sync         uname        wget
chmod        dd           false        gunzip       ln           more
pidof        pwd          sh           tar          unlink       zcat

И busybox:

Currently defined functions:
[, arp, ash, awk, basename, busybox, cat, chmod, chown, cp, crond,
cut,date, dd, df, dirname, dmesg, du, echo, egrep, env, expr, false,
fdisk, fgrep, find, free, ftpget, getty, grep, head, hexdump,
hostname, ifconfig, init, insmod, ip, kill, killall, klogd, ln,
login, ls, lsmod, md5sum, mkdir, mknod, mkswap, modprobe, more,
mount, mv, netstat, nslookup, passwd, pidof, ping, ping6, ps, pwd,
readlink, reboot, renice, rm, rmdir, rmmod, route, sed, seq, sh,
sleep, sort, swapoff, swapon, sync, sysctl, syslogd, tail, tar,
taskset, test, tftp, time, top, touch, tr, traceroute, true, udhcpd,
umount, uname, unzip, uptime, usleep, vi, watch, wc, which,
xargs, yes

У него также есть некоторые другие вещи в других местах из PATH, но нет nc, нет httpd или чего-то подобного

5
задан 2 October 2019 в 16:59
1 ответ

Нет, основная оболочка Границы/POSIX (/bin/sh), как могут ожидать, не будет включать встроенных средств для соединений TCP. См. сравнение командных процессоров в Википедии.

Эти bash оболочка имела бы TCP и клиентские возможности UDP со специальной обработкой определенных имен файлов: например, использование /dev/tcp/<hostname>/<port> в перенаправлении ввода/вывода на командной строке вызывает bash подключение к указанному хосту и порту, и используйте соединение в качестве входного источника или произведите место назначения. Но bash не может послушать на порте: это не может действовать как сервер TCP.

Эти zsh оболочка имела бы обе функциональности клиента и сервера, но только использование TCP. С другой стороны, zsh не простая оболочка: это является, вероятно, самым многофункциональным (и так самое большое) общих оболочек стиля Unix насколько я знаю. Нахождение zsh в маленькой встроенной системе было бы довольно маловероятно.

, В то время как я писал свой ответ, Вы указали в комментариях, что Вы нашли" lighthttpd" двоичный файл. Это - возможно, это? https://www.lighttpd.net /

5
ответ дан 3 December 2019 в 01:36

Теги

Похожие вопросы