在路由器上转发端口时什么情况下服务无法被识别?

在路由器上转发端口时什么情况下服务无法被识别?

我有一台 Synology NAS(DSM 5.4),在其上运行 OpenVPN 服务器(在端口 上tcp/1194,IP 为192.168.1.10)。我已将外部 IP 上的端口转发64666到访问路由器(TP-Link AS1200)上的该地址和端口。

问题:我无法从互联网主机连接 OpenVPN 客户端:

Tue Aug 23 15:05:37 2016 Attempting to establish TCP connection with [AF_INET]myip:64666 [nonblock]
Tue Aug 23 15:05:47 2016 TCP: connect to [AF_INET]myip:64666 failed, will try again in 5 seconds: Connection timed out
(...)

nmap当从内部网络(NAS所在的网络)运行时,我得到了正确的答复:

C:\Windows\System32>nmap 192.168.1.10 -p 1194 -sV

Starting Nmap 7.12 ( https://nmap.org ) at 2016-08-23 16:46 Central European Daylight Time
Nmap scan report for 192.168.1.10
Host is up (0.00s latency).
PORT     STATE SERVICE VERSION
1194/tcp open  openvpn OpenVPN
MAC Address: 00:11:32:05:92:71 (Synology Incorporated)

nmap来自互联网主机(无防火墙)的相同内容:

nmap -sV myip -p 64666 -P0

Starting Nmap 7.01 ( https://nmap.org ) at 2016-08-23 15:08 UTC
Nmap scan report for myname.mydomain.blah (myip)
Host is up.
PORT      STATE    SERVICE VERSION
64666/tcp filtered unknown

为了确保转发和防火墙缺失是正确的,我在本地主机上启动了一个 Web 服务器,并将端口转发9999到该服务器。这次nmap来自 Internet 的请求经过:

nmap -sV myip -p 9999 -P0

Starting Nmap 7.01 ( https://nmap.org ) at 2016-08-23 15:08 UTC
Nmap scan report for myname.mydomain.blah (myip)
Host is up.
PORT      STATE    SERVICE VERSION
9999/tcp open  http    WSGIServer 0.2 (Python 3.5.2)

我知道这种行为是防火墙环境的典型特征,或者是错误的端口重定向。这就是为什么我在普通端口上进行了测试,只有 OpenVPN 端口有问题。最重要的是,传入(在 NAS 上)和传出流量(在 Internet 主机上)没有防火墙或 IPS。

对于这种行为的可能原因您有什么想法吗?

答案1

不确定这是否是拼写错误,但请确保您使用的是 UDP 而不是 TCP。抱歉,目前无法在评论部分发表评论。

默认情况下,Synology 会在 UDP 端口 1194 下创建端口。因此,请确保您的防火墙对 UDP 开放。

我已经测试了您的方案,并且一切如预期般运行。您尝试过不转换到匿名端口吗?所以,我的意思是,只需在外部使用 1194,在内部重定向到 1194,然后看看是否能按预期运行?

让我知道

埃德

相关内容