Objective c UPnP端口映射,服务不接受连接

Objective c UPnP端口映射,服务不接受连接,objective-c,cocoa,sockets,upnp,Objective C,Cocoa,Sockets,Upnp,我设置了一个简单的套接字,它将接受端口1337上的连接。 它通过本地主机接受连接: $ nc -vv localhost 1337 found 0 associations found 1 connections: 1: flags=82<CONNECTED,PREFERRED> outif lo0 src ::1 port 57224 dst ::1 port 1337 rank info not available TCP aux info available Connect

我设置了一个简单的套接字,它将接受端口1337上的连接。 它通过本地主机接受连接:

$ nc -vv localhost 1337
found 0 associations
found 1 connections:
 1: flags=82<CONNECTED,PREFERRED>
outif lo0
src ::1 port 57224
dst ::1 port 1337
rank info not available
TCP aux info available

Connection to localhost port 1337 [tcp/menandmice-dns] succeeded!
^C
它返回YES,在我的路由器UPnP端口映射表中,我可以看到在外部端口1337上有一个活动的TCP映射,在我的计算机本地IP上有一个内部端口1337

但是,通过外部IP连接到服务不起作用:

$ nc -vv xxx.89.136.xx 1337
nc: connectx to xxx.89.136.xx port 1337 (tcp) failed: Connection refused

如果我在路由器中手动设置端口转发规则,连接将正常工作。为什么即使我的路由器说它可以工作,UPnP端口映射也不能工作?

事实证明,端口映射在我的网络之外工作。当我从其他地方连接服务器时,而不是通过外部IP从本地计算机连接时

$ nc -vv xxx.89.136.xx 1337
nc: connectx to xxx.89.136.xx port 1337 (tcp) failed: Connection refused