linux中的一个特殊文件: /dev/tcp
linux中的一个特殊文件: /dev/tcp ,打开这个文件就类似于发出了一个socket调用,建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据。
/dev/[tcp|upd]/host/port
只要读取或者写入这个文件,相当于系统会尝试连接:host 这台机器,对应port端口。如果主机以及端口存在,就建立一个socket 连接。
将在,/proc/$$/fd目录下面,有对应的文件出现。
1.打开/dev/tcp
以读写方式打开/dev/tcp,并指定服务器名为: www.youkuaiyun.com,端口号为:80,指定描述符为8。
exec 8<>/dev/tcp/www.csdn.net/80
要注意的是:/dev/tcp本身是不存在的。
- 向文件中写入数据
向文件中随便写一些数据:
echo -e "GET / HTTP/1.0\n" > &8;
GET请求发送给socket连接。
- 读文件
读取返回的信息:
cat 0 < &8
从socket读取返回信息,显示为标准输出
4.关闭文件
exec 8<&-;
exec 8>&-;
关闭socket的输入,输出
5.同时可以用tcpdump
来监控我们本机对80端口的访问
tcpdump -X -nn -i ens33 port 80
-X 可以返回详细的访问内容,不加的话,只会出现请求以及响应的摘要
原文
https://blog.youkuaiyun.com/zhjutao/article/details/8622751
https://www.cnblogs.com/chengmo/archive/2010/10/22/1858302.html
https://www.jianshu.com/p/b07deeda6d64