这是我对问题本身发表的评论的后续行动。
要允许客户端(客户端)直接访问远程计算机(服务器)上的端口,或通过与服务器(网关)位于同一网络的另一台计算机通过 SSH 访问,您只需使用 -L 标志。
直接从客户端到服务器(客户端机器上的端口 8080 将通过隧道连接到服务器上的 80):
ssh -L 8080:localhost:80 server
通过网关从客户端到服务器(客户端机器上的端口 8080 将通过隧道连接到服务器上的 80):
ssh -L 8080:server:80 gateway
从 ssh 的手册页中,您可以使用 -L 标志:
-L [bind_address:]port:host:hostport
Specifies that the given port on the local (client) host is to be
forwarded to the given host and port on the remote side. This
works by allocating a socket to listen to port on the local side,
optionally bound to the specified bind_address. Whenever a
connection is made to this port, the connection is forwarded over
the secure channel, and a connection is made to host port
hostport from the remote machine. Port forwardings can also be
specified in the configuration file. IPv6 addresses can be
specified by enclosing the address in square brackets. Only the
superuser can forward privileged ports. By default, the local
port is bound in accordance with the GatewayPorts setting.
However, an explicit bind_address may be used to bind the
connection to a specific address. The bind_address of
``localhost'' indicates that the listening port be bound for
local use only, while an empty address or `*' indicates that the
port should be available from all interfaces.