Когда я пытаюсь запустить следующую команду:
echo -e "GET / HTTP/1.1\n\n" | /dev/tcp/74.125.225.19/80
Я получаю следующее сообщение об ошибке:
bash: /dev/tcp/74.125.225.19/80: No such file or directory
Следующая команда работает отлично, поэтому проблема заключается в том, как я использую /dev/tcp
:
echo -e "GET / HTTP/1.1\n\n" | nc 74.125.225.19 80
Я нахожусь в Ubuntu 13.04, поэтому возможность должна быть в моей системе. Что я делаю не так? Каковы правила использования /dev/tcp
должным образом?
Ответы:
Вы должны использовать его в перенаправлениях :
Так:
это правильный способ использовать его.
Когда вы использовали
/dev/tcp/74.125.225.19/80
канал,bash
попытался выполнить команду с именем/dev/tcp/74.125.225.19/80
и сообщил об ошибке, потому что этот файл не существует.Возможность обработки
/dev/tcp/host/port
и/dev/udp/host/port
перенаправления была добавленаbash
в версии 2.04.Вам нужно скомпилировать
bash
с--enable-net-redirections
опцией.источник
/dev/tcp
трактуется как "файл", а не как скрипт.