Sim, isso é chamado de GatewayPorts
no SSH. Um trecho de ssh_config(5)
:
GatewayPorts
Specifies whether remote hosts are allowed to connect to local
forwarded ports. By default, ssh(1) binds local port forwardings
to the loopback address. This prevents other remote hosts from
connecting to forwarded ports. GatewayPorts can be used to spec‐
ify that ssh should bind local port forwardings to the wildcard
address, thus allowing remote hosts to connect to forwarded
ports. The argument must be “yes” or “no”. The default is “no”.
E você pode usar localhost
em vez de M
no encaminhamento, quando estiver encaminhando para a mesma máquina que está usando o SSH - se eu entendi sua pergunta corretamente.
Então, o comando se tornará assim:
ssh -L 2222:localhost:8888 -N -o GatewayPorts=yes hostname-of-M
e ficará assim em netstat -nltp
:
tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN 5113/ssh
Agora qualquer um que acesse esta máquina na porta 2222 TCP irá realmente falar com localhost: 8888 como visto na máquina M. Note que isto não é o mesmo que o encaminhamento simples para a porta 8888 de M.