端口转发错误:端口转发未转发到服务器
Port forwarding error: Port forwarding is not forwarding to server
所以,我用c ++做了一个客户端和一个服务器。我的服务器将端口设置为 htons(54000)。我的客户端也有端口 htons(54000)。
我的问题是,当我尝试将我的客户端连接到我的机器(我的服务器托管在哪里,机器 ip 是:例如 80.60.117.24)时,什么也没发生!
我发现我需要使用端口转发。我的路由器是华为B525 - 23。我尝试从 WAN 端口 54000 转发到 LAN 端口 54000 和计算机的本地 IP:192.168.8.50。
好吧,它不起作用。
尽管它可以在服务器和客户端位于同一 LAN 上的情况下工作。(我将服务器在客户端上的IP地址设置为192.168.8.50(我的机器,服务器托管在这里))。
服务器
.cppsockaddr_in hint;
hint.sin_family = AF_INET;
hint.sin_port = htons(54000);
hint.sin_addr.s_addr = inet_addr("0.0.0.0");
bind(listening, (sockaddr*)& hint, sizeof(hint));
listen(listening, SOMAXCONN);
//客户端
.cppstring ipAddress = "80.60.117.24"; // IP Address of the server
int port = 54000;
sockaddr_in hint;
hint.sin_family = AF_INET;
hint.sin_port = htons(port);
那么,我做错了什么?我怎么转发端口错误?
嗯,我想通了。我所做的只是将服务器托管在不同的网络上(我家里有 2 个连接)。端口转发设置正确。谢谢你们的帮助,也很抱歉我的艰难描述。:)
让我看看我是否理解这个场景。您连接到服务器的客户端是否使用与服务器相同的互联网连接? 您将 IP 设置为允许流量工作的同一子网让我认为这就是这种情况。 如果是这种情况,那么它可能不起作用,因为流量会向外路由到您的路由器。路由器会查看它并说它在外部 NAT 上有该流量。它会将流量路由到 NAT,而 NAT 又会应用您的端口转发规则。 挑战在于,当服务器响应时,它将响应NAT地址而不是LAN地址。当该流量到达路由器时,端口转发将再次抓取流量并将其发送到服务器。这样客户端就可以到达服务器,但服务器最终只会与自己通信。 我会尝试从不同的位置连接(如在不同的互联网连接中)。如果这有效,那么你就知道你正在发生这个循环。 话虽如此,正如@RemyLebeau指出的那样,通常您的服务器上不会有公共IP,除非您有一系列公共IP,并且路由器的公共IP与服务器的公共IP不同。如果服务器具有单独的公共 IP,请确保路由器的 WAN 端口和服务器位于同一 VLAN 上。因此,您必须将交换机上的流量引入没有 VIP 设置的隔离 VLAN。但是,像这样完全暴露服务器是相当危险的。 如果您将服务器设置为与路由器相同的IP,那么您会遇到完全不同的问题。 您将希望服务器的 IP 是本地 LAN 上的内容,并且 PAT 设置为将流量转发到该本地 IP。因此,如果您的机器有 192.168.8.50,那么您的服务器可能有 192.168.8.40。静态的东西,不在 DHCP 范围内,并且在子网内(我假设是/24 网络 - 255.255.255.0)。 希望这是有帮助的。 如果我错过了标记或您的设置与任何这些场景不同,请提供有关网络配置拓扑的更多详细信息。
- "unknown ca"自生成的 CA、证书和客户端/服务器
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 正在折叠转发引用
- 有没有办法知道Tracer是否成功地完全连接到了jaegerclientcpp中的jaeger后端服务器
- 从服务器传输到客户端的消息不会出现
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- OpenSSL TLS服务器-使用客户端证书白名单
- 我正在开发服务器,ip作为参数传递不起作用
- 我可以与 python 服务器而不是 c++ 客户端建立 tcp/ip 套接字吗?
- 提升 Asio TCP 服务器 处理多个客户端
- 如何在 Minecraft 服务器上执行命令
- 调试编译的服务器在数据库打开时崩溃
- C++套接字客户端到 Python 服务器未创建连接
- 用于解析 win64 堆栈跟踪的命令行客户端(可以访问符号服务器)
- 将相机数据从服务器实时流式传输到客户端
- 为什么创建服务器后C++ httplib 库阻塞了我的主线程?
- 每个服务器请求的内存预算
- 端口转发错误:端口转发未转发到服务器
- 具有多个客户端的服务器:如何将消息从一个客户端转发到另一个客户端