我在一台机器上有一个OpenVPN服务器,它只能通过IPv6连接,因为我的ISP对IPv4地址不太慷慨。
为了解决这个问题,我创建了一个DigitalOcean液滴,并在其上安装了Nginx,目的是使用该液滴通过IPv6将任何传入的IPv4流量转发到上述服务器。
我知道DO液滴和我的服务器之间的连接很好,因为我可以通过SSH和OpenVPN连接到我的主服务器,也可以通过液滴连接到我的主服务器。我的问题是,根据OpenVPN客户端日志Sat Apr 20 23:03:02 2019 read UDP: Unknown error (code=10054)
,每当我试图从任何地方连接到家庭VPN时,通过DO水滴(按原计划),连接似乎会丢失。
我还知道所需的vpn客户端和液滴之间的连接正在工作,因为我可以从它进入液滴机器。我还检查了防火墙端口,所需的端口使用所需的协议打开。
所以从理论上讲,连接的两个部分都应该是好的,但我仍然会得到网络连接错误。我尝试了许多不同的方法来配置nginx,但似乎没有一种方法有效。
TL;DR
我想使用隧道将我的IPv4请求转发到只能从IPv6访问的服务器,但是我的连接在途中丢失了。
我的Nginx配置:
stream{
upstream backend {
server [2a02:ab88:5081:7e00:b4b6:fef2:5742:b12f]:1194;
}
server {
listen 1194 udp;
proxy_pass backend;
}
}
发布于 2019-04-20 21:28:47
我试图解决这个问题已经有几个小时了,在我提交问题之后,我设法解决了它。
解决方案不是用Nginx,而是用socat
。这个命令很简单,并且是自我描述的:socat UDP6-LISTEN:1194,fork UDP6:[2a02:ab88:5081:7e00:b4b6:fef2:5742:b12f]:1194
https://serverfault.com/questions/963926
复制相似问题