ssr怎么使用udp转发(udp包通过路由器)

2023-05-12 13:54:36

一、ssr怎么使用udp转发


SSR支持UDP转发的原理相当于”把
UDP协议转换为TCP协议”。
1.首先,需要在服务器端将UDP协议转换为TCP协议,即在服务器上安装一个SSR客户端,并将其配置为“UDP转发”模式;
2.然后,在客户端上安装一个SSR客户端,并将其配置为“TCP转发”模式;
3.当UDP数据通过SSR客户端传输到服务器时,服务器将会将UDP协议转换为TCP协议;
4.当TCP数据通过SSR客户端传输到客户机时,客户机将其转换为UDP协议;
5.最后,客户机将收到的UDP数据进行处理。


二、udp包通过路由器


把目的MAC地址改成你的PC的MAC地址

呵呵,不好意思,没看仔细。

我是这样理解的:

QQ或者其他应用程序发送的UDP包是给外部服务器的,路由器在收到由内向外的UDP包后,对UDP包做适当的调整,然后为其建立端口转发,外部服务器回复UDP包(目的IP是路由器的),根据刚刚建立的端口转发规则,把目的IP改成你的PC的IP,然后转发给你的PC。

再看你单独发送的UDP包,路由器收到后可能会建立端口转发(我说的是可能,因为还有一种可能,路由器为安全考虑会不为指向自身的连接建立端口转发),但是这条端口转发规则根本不会被使用,因为路由器没有义务响应这个UDP包,收到这个UDP包之后就丢弃了,不会有任何回复,也就不会转发给你的PC。

换种说法,PC收到通过路由器的UDP包有两个必备条件:1是有UDP包从外网发到路由器;2是路由器里存在相应的转发规则。你发的UDP包可能建立了第2个条件,但是一直都不具备第1个条件,因为你的UDP包是从内网发出来(它是从内网发出的,目的地址就是路由器,路由器把它交给自己就完成任务了,如果穿透然后到你的PC反而不对了;而QQ服务器答复的UDP是从外网发出的,路由器有责任根据转发规则把这个包发到内网)。

设置成DMZ可以收到你发出的UDP包也就很容易理解,那是因为路由器在收到这个UDP包之后,检查到设置了DMZ,于是发给路由器的不管任何端口上的数据包都要发给你的PC,所以路由器先把这个UDP包发给你的PC,然后在自己的系统内丢弃这个包。

当然,你在路由器里手动添加一条端口映射规则,也可以收到这个UDP包,需要映射的端口号就是你的UDP包使用的端口号。