我有一个具有以下结构的网络。
PC2 中的服务器是 8080 端口的简单套接字服务器 TCP。
我需要通过套接字客户端从其他外部网络访问 PC2。此套接字客户端知道公网 IP(85.xxx.xxx.x)、私网 IP(192.168.0.21)和端口。
如何在没有路由器端口转发的情况下访问 PC2?
如果可能的话,我希望有任何编程语言可以对此案例进行参考。
答案1
如何在没有路由器端口转发的情况下访问 PC2?
假设有一个 NAT 路由器(在 192.168.0.0/24 内部网络的情况下几乎可以肯定),如果没有路由器上的端口转发功能,您就无法执行此操作。或者类似的东西。
例如,如果您可以通过 SSH 连接到路由器,然后连接到服务器,则可以使用 SSH 隧道(这是一种端口转发形式)。
您还可以让 PC2 通过 SSH 连接到公共服务器并在那里提供隧道端点。(您可能需要 netcat 或 socat 之类的工具来协助完成此操作)
一般来说,在路由器上进行端口转发是可行的方法。
NAT 穿越协议
有方法可以实现这种通信而无需手动配置端口转发,但它们通常依赖于路由器支持和/或外部连接代理。
一般的
具体的
我希望有这种情况下的任何编程语言的参考
如果您在两端编写软件,那么可能有很多示例可以遵循。
例如,参见