所以我有一个虚拟服务器设置在亚马逊,我将调用OSERV,在3个不同的端口上运行openvpn。 所有的OpenVPN服务器都充当了路由网关。 在TCP上运行的服务器中的2个工作得很好,但是我的UDP服务器虽然能够进行本地连接,但总是超时用于外部IP。 我将称之为UDPSERV。
所以当我通过UDPSERV到OSERV ssh,它工作正常。 但是,当我尝试通过UDPSERV在其他任何地方ssh(或执行任何其他types的活动)时,连接超时。 我将调用我正在testing的外部服务器作为EXSERV。 我已经在冗长级别6观看了日志,并且在尝试连接到EXSERV时看到发送和接收的数据包。 所以我知道这是有效的。 我也在客户端机器上运行了wireshark,并看到它发送和接收数据包也很好,当SSH到EXSERV。
ssh root@ESERV -o ConnectTimeout=60 Connection reset by ESERV port 22
虽然奇怪,当我通过UDPSERV到OSERV进行活动时看日志,似乎并没有显示出来。
我已经确认MTU不是问题。 有趣的是,我实际上可以推送> 4000字节作为MTU。 我曾尝试将其设置为500。
所以我认为这就是设置这个问题的一切。 如果有人能帮我弄清楚为什么这不起作用,我真的很感激。 在这下面是所有我的configuration。
[编辑]哦,是的。 我通过UDPSERV从我的客户端到EXSERV做了一个netcat,它工作正常。
所有3个openvpn服务器configuration都具有以下相关设置:
dev tun ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" keepalive 10 120 comp-lzo persist-key persist-tun
不同的设置:
Serv1 :
port 80 proto tcp server 10.8.0.0 255.255.255.0
Serv2 :
port 443 proto tcp server 10.8.1.0 255.255.255.0
UDPSERV :
port 123 proto udp server 10.8.2.0 255.255.255.0
亚马逊的安全设置有以下的限制:
传入ACCEPT :TCP22,TCP80,TCP443,UDP123
外发ACCEPT :一切
以下是我的iptables设置:
#Clear everything out iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -t raw -F iptables -t raw -X #All connections iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT #Serv1 iptables -I FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -m conntrack --ctstate NEW -j ACCEPT iptables -t nat -I POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE #Serv2 iptables -I FORWARD -i tun1 -o eth0 -s 10.8.1.0/24 -m conntrack --ctstate NEW -j ACCEPT iptables -t nat -I POSTROUTING -o eth0 -s 10.8.1.0/24 -j MASQUERADE #UDPSERV iptables -I FORWARD -i tun2 -o eth0 -s 10.8.2.0/24 -m conntrack --ctstate NEW -j ACCEPT iptables -t nat -I POSTROUTING -o eth0 -s 10.8.2.0/24 -j MASQUERADE
我也尝试了UDPSERV的以下设置:
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 123 -j ACCEPT iptables -I FORWARD -i tun2 -j ACCEPT iptables -I FORWARD -i tun2 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -t nat -I POSTROUTING -o eth0 -s 10.8.2.0/24 -j MASQUERADE
以下是详细级别为6的openvpn日志。客户端从45.16.1.12连接。 然后我连接到OSERV的ssh。 然后,我尝试连接到30秒后超时的EXSERV SSH。 OpenVPN日志 。 请让我知道如果您无法下载文件,我会尝试不同的服务。
所以事实certificate,问题是,我在udp端口123(ntpd端口)上运行。 我想有一些路由器必须有特殊的编码,只允许小数据包,或什么的端口。 有时间find一个不同的普通udp端口来运行。