首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >/dev/tcp未找到

/dev/tcp未找到
EN

Unix & Linux用户
提问于 2015-11-06 06:53:24
回答 1查看 34.5K关注 0票数 28

当我尝试运行以下命令时:

代码语言:javascript
运行
复制
echo -e "GET / HTTP/1.1\n\n" | /dev/tcp/74.125.225.19/80

我收到以下错误消息:

代码语言:javascript
运行
复制
bash: /dev/tcp/74.125.225.19/80: No such file or directory

下面的命令工作得很好,因此问题涉及我如何使用/dev/tcp

代码语言:javascript
运行
复制
echo -e "GET / HTTP/1.1\n\n" | nc 74.125.225.19 80

我在Ubuntu13.04,所以功能应该在我的系统上。我做错了什么?正确使用/dev/tcp的规则是什么?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2015-11-06 07:03:16

您必须在重定向中使用它:

Bash在重定向中使用时特别处理几个文件名,如下表所述:. /dev/ TCP / host /port如果主机是有效的主机名或Internet地址,而端口是整数端口号或服务名称,则Bash尝试打开相应的TCP套接字。

所以:

代码语言:javascript
运行
复制
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/dev/udp/host/port的能力是在2.04版本中添加到bash中的。

您需要使用bash选项编译--enable-net-redirections

票数 48
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/241174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档