【发布时间】:2015-01-14 12:13:45
【问题描述】:
有谁知道我如何让socat 监听分配给一个特定网络接口的所有接口?我不确定这是否可能。
如果我想将socat 绑定到特定的IP:PORT,我总是从ip 命令的输出中解析IP 信息,然后像这样将socat 绑定到它:
NETIFC=$(ip -o -4 addr list eth0 | awk '{print $4}' | cut -d/ -f1)
socat -d -d TCP4-LISTEN:1234,fork,bind=$(NETIFC) UNIX-CLIENT:/tmp/foo.sock
我认为我可以通过像这样运行 socat 来实现我所追求的目标:
socat -d -d TCP4-LISTEN:1234,fork,so-bindtodevice=eth0 UNIX-CLIENT:/tmp/foo.sock
但我相信我缺少一些低级网络编程知识,因此不太了解这个选项应该做什么,我只是希望它应该做我想做的事情,但实际上它实际上绑定到所有网络接口。
【问题讨论】:
-
物理接口(eth0)是否有多个IP地址或虚拟接口(vlan等)?您希望收听的流量的目标 IP 和端口是什么?
标签: linux sockets network-programming socat