ssh -L本地端口转发远端
本地端口转发通过远端主机请求内网服务
1 | ssh -i xxx.key \ |
命令参数结束
1. ssh
使用 SSH 客户端 建立到远程主机的安全连接。
2. -i xxx.key
指定 私钥文件 xxx.key 来进行认证,而不是用密码。
3. -L 1010:10.1.1.1:5555
做 本地端口转发(Local Port Forwarding):
- 本地机器监听
127.0.0.1:1010 - 任何连接本地
1010端口的流量会通过 SSH 隧道 - 最后由远程主机
12.12.12.1转发到 内网地址10.1.1.1:5555
这样你在本地访问
localhost:1010,等价于在远程内网访问10.1.1.1:5555
4. root@12.12.12.1
SSH 连接的远程主机:
- 用户:
root - 主机:
12.12.12.1
5. -p 1212
远程 SSH 服务监听在 1212 端口(不是默认的 22)。
6. -o ServerAliveInterval=30
保持心跳:
- 每隔 30 秒向远程发送一个 keepalive 消息
- 避免连接长时间空闲被防火墙或 NAT 中断
7. -N
告诉 SSH 不执行远程命令,只做端口转发(常见于隧道场景)。
8. -f
让 SSH 在认证成功、建立好隧道后 转入后台运行。
** 总结一句话:**
这条命令会在本地 127.0.0.1:1010 建立一个 SSH 隧道,流量通过远程 12.12.12.1:1212,最终转发到内网主机 10.1.1.1:5555,并且用密钥登录,30 秒发一次心跳,隧道在后台运行。