命令解析1
ssh -N -L 9999:c.c.c.c:1343 admin@b.b.b.b
ssh:使用 SSH 连接远程服务器。 -N:不执行远程命令,仅用于端口转发(适用于隧道场景)。
-L 9999:c.c.c.c:1343
:设置本地端口转发,其中: 9999(本地端口):本地机器(执行该命令的机器)的 9999 端口。c.c.c.c:1343
(目标地址):SSH 服务器 (b.b.b.b) 能够访问的目标主机 c.c.c.c 的 1343 端口。 这意味着本地 9999 端口的数据会通过 b.b.b.b 这个跳板机,最终转发到c.c.c.c:1343
。admin@b.b.b.b
:以 admin 用户身份连接 b.b.b.b(跳板机/中转服务器)。 实际作用:你在本地 (localhost) 访问localhost:9999
,相当于在 b.b.b.b 机器上访问c.c.c.c:1343
。 这种方式常用于:访问内网服务(如数据库、Web 服务等)。通过 SSH 隧道穿透防火墙或 NAT 限制。保护数据传输,避免直接暴露内网服务。
命令解析2
ssh -N -L 0.0.0.0:9999:c.c.c.c:1343 admin@b.b.b.b
相比命令1,指定了本机ip,允许非localhost进行连接。例如本机上部署的docker、k8s都可以用这种方式连接。如果是localhost的话是连不通的
要指定0.0.0.0,需要编辑/etc/ssh/sshd_config
,添加GatewayPorts yes
,之后重启ssh服务sudo systemctl restart sshd
参考
PREVIOUSistio cors config