如何从Linux下的特定接口发送UDP数据包?

时间:2018-05-18 09:25:13

标签: linux networking rust

我有几个带有IPv4链路本地地址的以太网接口,这意味着我在不同接口上有多条到169.254.0.0/16的路由。 (这些接口不一定在同一个第2层网络上,因此不同接口上的不同系统可以使用此范围内的相同IP。)

当发送UDP数据包到169.254.0.0/16中的地址时,我无法选择使用哪个接口来使用Rust的标准库UdpSocket发送数据包,但是没有指定接口,很可能使用错误的。

如何从特定接口发送UDP数据包?

(IPv6 Link-Local fe80::/64有类似的问题,但SocketAddrV6有一个scope_id,可用于设置要使用的接口的索引。

1 个答案:

答案 0 :(得分:2)

假设您知道哪个本地IP地址属于哪个网络,您可以使用bind将套接字绑定到该IP地址。