C#TCP客户端/服务器到外部ip不起作用

C#TCP客户端/服务器到外部ip不起作用,c#,server,client,port,router,C#,Server,Client,Port,Router,所以我有一个服务器/客户机模型,它正在交换数据。这基本上是服务器的网络部分: 服务器: ... listener = new TcpListener(System.Net.IPAddress.Any, 4711); listener.Start(); while(true){ TcpClient c = listener.AcceptTcpClient(); } ... 客户: ... TcpClient c = new TcpClient("myip", 4711); StreamReade

所以我有一个服务器/客户机模型,它正在交换数据。这基本上是服务器的网络部分:

服务器:

...
listener = new TcpListener(System.Net.IPAddress.Any, 4711);
listener.Start();
while(true){
TcpClient c = listener.AcceptTcpClient();
}
...
客户:

...
TcpClient c = new TcpClient("myip", 4711);
StreamReader inStream = new StreamReader(c.GetStream());
...
如果我通过我的客户端连接到“localhost”,它就会正常工作,我的内部ipv4地址也是如此。我假设这也适用于我的外部ip,但不知何故,我并不总是收到服务器拒绝连接的消息

我的路由器是个笨蛋!接线盒6490电缆(kdg)。我在it和防火墙中为4711启用了portforwarding。当我通过4711检查时,它说我的端口关闭了。我想这就是问题所在吧?还是我做错了什么?我通常会给我的客户机提供外部ipv4地址,但这不起作用,如果我提供外部ipv6,它确实起作用,但只适用于我网络中的人(内部ipv6和外部ipv6对我来说是一样的,我认为这可能就是它的方式)

我的ipv4在DS Lite隧道上运行,这是否意味着某人只能通过ipv6连接到我的计算机

此外,我还了解到ipv6会导致端口转发出现问题,因此我在计算机上禁用了ipv6,但这也不起作用


你知道我可以尝试什么吗?

我和我的路由器供应商谈过,他们告诉我对此无能为力。我唯一能改变这一点的方法就是打电话给我的ISP,告诉他们我想要回ipv4。使用DS Lite隧道无法从外部打开端口/连接到我的计算机(这是他们告诉我的)