TCP 客户端和服务器端口转发

TCP 客户端和服务器端口转发

我制作了一个 TCP 客户端和服务器程序。我的问题是,当在两台单独的机器上运行客户端和服务器时,这些机器通过互联网上的不同防火墙路由器,哪个路由器的端口转发重要吗?例如,只有客户端机器使用的路由器才能转发正确的 TCP 端口并建立客户端服务器连接吗?

答案1

需要在路由器上转发端口,以便连接的接收端。无论您在客户端做什么(除了创建到服务器网络的直接网络连接),都不会影响服务器通过防火墙/路由器的可达性。

当您从客户端连接到服务器时,客户端会发送第一个数据包。如果该数据包无法到达服务器(如果未转发端口,则无法到达),则连接将超时。

答案2

可以使用 ssh 建立反向 ssh 隧道

使用 ssh -R

您运行任意服务器,并使用 ssh.exe -R 将您的 ssh 客户端连接到他的 ssh 服务器,这会在他身上创建一个代理端口,他可以连接到该端口,然后该连接将转发到您正在运行的任意服务器。这样,您就避免了在路由器上进行端口转发,即使您正在运行他正在访问的任意服务器。

建立了两个连接。一个是 ssh 连接,另一个是通过该连接建立隧道的连接,在本例中是朝另一个方向的。

相关内容