如何在 linux 中欺骗传出 UDP 套接字端口号?
how to spoof outgoing UDP socket port number in linux?
问题是标题。
但我想描述我的问题,以便有人可以提出替代解决方案。
我知道当客户端在套接字上向 12.34.56.78:40 发送消息时,客户端的路由器设置了一段时间的规则,允许从 12.34.56.78:40 接收到的任何数据都将被发送到网络上的客户机。
所以我遇到的问题是客户端正在某个端口上发送到服务器,但服务器需要使用不同的套接字(因此是不同的端口)进行回复。但当然服务器的 ip 没有改变。
所以这是我解决问题的第一个想法
欺骗传出端口
多个套接字可以绑定到同一个端口,从而发送具有相同源端口号的数据包,如果每个套接字都设置了SO_REUSEPORT套接字选项。参见 the SO_REUSEPORT socket option and the difference between SO_REUSEADDR and SO_REUSEPORT。
问题是标题。 但我想描述我的问题,以便有人可以提出替代解决方案。 我知道当客户端在套接字上向 12.34.56.78:40 发送消息时,客户端的路由器设置了一段时间的规则,允许从 12.34.56.78:40 接收到的任何数据都将被发送到网络上的客户机。 所以我遇到的问题是客户端正在某个端口上发送到服务器,但服务器需要使用不同的套接字(因此是不同的端口)进行回复。但当然服务器的 ip 没有改变。 所以这是我解决问题的第一个想法 欺骗传出端口
多个套接字可以绑定到同一个端口,从而发送具有相同源端口号的数据包,如果每个套接字都设置了SO_REUSEPORT套接字选项。参见 the SO_REUSEPORT socket option and the difference between SO_REUSEADDR and SO_REUSEPORT。