Sockets 我可以将客户端套接字绑定到不属于任何接口的ip吗?

Sockets 我可以将客户端套接字绑定到不属于任何接口的ip吗?,sockets,routing,ip,iptables,Sockets,Routing,Ip,Iptables,对于客户端套接字,我可以使用bind()将其绑定到特定的源Ip地址,以选择特定的接口。或者我可以直接使用connect(),然后它将根据路由表选择源ip 我想知道是否可以将客户端套接字绑定到不属于任何接口的ip?例如:我有两个接口: eth0:ip0 eth1:ip1 (1) 如果我将客户端套接字绑定到ip2。这是否可行? (2) 如果(1)是可行的,则假定客户端套接字通过eth0发送数据包。然后我在这个客户机主机中配置iptables,将所有传入的数据包转发到ip0(eth0)。在这种情况下,

对于客户端套接字,我可以使用bind()将其绑定到特定的源Ip地址,以选择特定的接口。或者我可以直接使用connect(),然后它将根据路由表选择源ip

我想知道是否可以将客户端套接字绑定到不属于任何接口的ip?例如:我有两个接口: eth0:ip0 eth1:ip1

(1) 如果我将客户端套接字绑定到ip2。这是否可行? (2) 如果(1)是可行的,则假定客户端套接字通过eth0发送数据包。然后我在这个客户机主机中配置iptables,将所有传入的数据包转发到ip0(eth0)。在这种情况下,如果有数据包从服务器端发回,目标ip地址为ip2(假设该数据包将到达我的客户机主机)。我的客户端套接字是否会接收数据包


提前谢谢。

我不太明白你的问题,但这里是:

对于客户端套接字,您通常希望操作系统及其路由表使用任何可用端口为您选择最佳接口。在这种情况下,您将绑定到INADDR_ANY(0)和端口0。或者根本不显式调用bind。只要调用connect(),它就会做正确的事情

如果需要通过特定接口进行客户端连接,则将套接字绑定到特定IP地址。然后,操作系统将尝试将该接口用于随后的连接调用以及之后的所有通信

尝试将套接字绑定到不属于本地接口的IP肯定会导致错误


不知道你说的iptables是什么意思。听起来很危险。

我想做的是让一个程序充当网络流量生成器。我有一个客户机主机和一个服务器主机,中间有一个交换机。我想在客户端和服务器之间发送流量,这些流量应该有多个客户端ip服务器ip对(模拟我们有多个订阅者和服务器的情况)。例如:客户端ip范围为20.0.0.0-20.0.0.9,服务器ip范围为21.0.0.0-21.0.0.9在这种情况下,我需要在客户端主机中有10个套接字,每个套接字都应该与20.0.0-20.0.0.9之间的ip绑定。但我的界面将有另一个IP(至少不会有所有这些IP)。iptables是linux命令,用于在linux中设置防火墙规则。