socket为什么不能用传统命令访问?socket文件不能通过普通的文件读写命令操作(比如说echo "xxx" > socket.file)它。因为它是在网络上面工作的。只能通过socket读写函数去操作它。
socat和ncat命令其实通过的linux命令socat和ncat可以去操作socket。
其中-U指定了该文件是Unix域socket文件类型,ncat实现了类似于cat命令的访问unix socket。
ncat -U /tmp/tbsocket1
ncat也可以通过映射socket文件到监听的端口上。那么通过curl可以发送请求到该监听端口,实现写操作。
代码语言:javascript复制# 映射tcp的8080流量到unix socket
ncat -vlk 8080 -c 'ncat -U /tmp/tbsocket1'
# 通过curl发起http请求访问
curl http://localhost:8080也可以使用功能更强大的socat来实现。
代码语言:shell复制# 映射8080/tcp 到unix socket
socat -d -d TCP-LISTEN:8080,fork UNIX:/tmp/tbsocket1