通过 Nginx 代理 OpenVPN UDP?

通过 Nginx 代理 OpenVPN UDP?

我正在使用 Nginx 流模块通过 UDP 反向代理 OpenVPN。反向代理其他协议(如 DNS)有效,但当我尝试反向代理 UDP 时,我收到来自 OpenVPN 的消息:

Sun Sep  4 14:45:32 2016 us=371479 MULTI: multi_create_instance called
Sun Sep  4 14:45:32 2016 us=371587 127.0.0.1:54025 Re-using SSL/TLS context
Sun Sep  4 14:45:32 2016 us=371618 127.0.0.1:54025 LZO compression initialized
Sun Sep  4 14:45:32 2016 us=371692 127.0.0.1:54025 Control Channel MTU parms [ L:1542 D:1212 EF:38 EB:0 ET:0 EL:3 ]
Sun Sep  4 14:45:32 2016 us=371723 127.0.0.1:54025 Data Channel MTU parms [ L:1542 D:1450 EF:42 EB:143 ET:0 EL:3 AF:3/1 ]
Sun Sep  4 14:45:32 2016 us=371764 127.0.0.1:54025 Local Options String: 'V4,dev-type tun,link-mtu 1542,tun-mtu 1500,proto UDPv4,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-server'
Sun Sep  4 14:45:32 2016 us=371790 127.0.0.1:54025 Expected Remote Options String: 'V4,dev-type tun,link-mtu 1542,tun-mtu 1500,proto UDPv4,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-client'
Sun Sep  4 14:45:32 2016 us=371823 127.0.0.1:54025 Local Options hash (VER=V4): '530fdded'
Sun Sep  4 14:45:32 2016 us=371855 127.0.0.1:54025 Expected Remote Options hash (VER=V4): '41690919'
RSun Sep  4 14:45:32 2016 us=371915 127.0.0.1:54025 TLS: Initial packet from [AF_INET]127.0.0.1:54025, sid=a7c6a891 9390f563
WWWW

并且客户端从未完成连接。我该如何正确设置此代理?

答案1

基本上,免费 Nginx 版本对 UDP 代理的支持仅限于 DNS 请求,并且它从不假设 UDP 会话可能会超过几毫秒

你应该坚持使用 TCP 来代理 OpenVPN 或者安装NGINX Plus 商业版本,这实际上支持UDP 连接的状态文件允许它们持久存在(这是否则不可用的功能之一)。

PS 另一个选择是等待几个月,直到他们将全部功能纳入开源版本。根据其功能发布框架判断,它应该会在 2017 年初免费提供......

相关内容