/dev/tcp를 찾을 수 없습니다

/dev/tcp를 찾을 수 없습니다

다음 명령을 실행하려고 하면:

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?

답변1

당신은 그것을 사용해야합니다리디렉션:

Bash는 다음 표에 설명된 대로 리디렉션에서 여러 파일 이름을 사용할 때 특별히 여러 파일 이름을 처리합니다.

...

/dev/tcp/호스트/포트

호스트가 유효한 호스트 이름 또는 인터넷 주소이고 포트가 정수 포트 번호 또는 서비스 이름인 경우 Bash는 해당 TCP 소켓을 열려고 시도합니다.

그래서:

printf "GET / HTTP/1.1\n\n" > /dev/tcp/74.125.225.19/80

올바른 사용법입니다.

/dev/tcp/74.125.225.19/80파이프라인에서 사용할 때 bash이름이 지정된 명령을 실행 /dev/tcp/74.125.225.19/80하고 파일이 존재하지 않기 때문에 오류를 보고해 보세요.


/dev/tcp/host/port버전 2.04에는 처리 및 리디렉션 기능이 추가되었습니다 ./dev/udp/host/portbash

bash옵션을 사용하여 컴파일 해야 합니다 --enable-net-redirections.

관련 정보