OpenVPN可以在一个configuration中同时在tcp和udp上运行吗?
据我所知,一个隧道不能同时使用udp和tcp。
另一方面,我有运行configuration与隧道代理支持传入TCP连接和单独的configuration文件中定义的udp连接。
只需在不同协议的不同端口上运行两个opevpn守护进程。
这是一个老问题,但通常你不想在TCP下使用OpenVPN,因为它会导致更多的networkingstream量。
例如在UDP下的OpenVPN,发送单用户tcp消息如下所示:
client: <OpenVPN UDP msg1><user TCP msg0> server: <OpenVPN UDP msg2><user TCP ack0>
在TCP下的OpenVPN,每个OpenVPN消息也是TCP,所以它必须得到ack,包括embeddedstream的一部分。 相同的消息是这样的:
client: <OpenVPN TCP msg1><user TCP msg0> server: <TCP ack1> server: <OpenVPN TCP msg2><user TCP ack0> client: <TCP ack2>
另外TCP头部有点大。
使用UDP上的OpenVPN,内部的TCP层将负责任何重传。 UDP的主要缺点是连接不能确定是否真正启动。 默认的OpenVPNconfiguration通过设置一个周期性的keepalive ping来处理。