SSH Tunnel
本地端口转发
localhost
本地 → 隧道 → 远程
ssh -L 8080:localhost:8080 root@192.168.xx.xx
参数 | 含义 |
---|---|
8080 (冒号前) |
本地端口,也就是你本机的 8080 端口,会被 SSH 占用并监听 |
localhost:8080 (冒号后) |
远程目标地址和端口,SSH 登录的服务器上要访问的服务 |
数据流示意
- 你在本机访问
http://localhost:8080
- SSH 客户端捕获这个连接,并把流量通过 SSH 隧道发到 SSH 服务器
- 服务器再把流量转发到
localhost:8080
(服务器自己本地的 8080) - 响应沿隧道返回到你的本机
所以:
- 左边的 8080 → 本地监听端口
- 右边的 8080 → 远程服务器的目标端口
两者不冲突,因为 SSH 会把本地流量映射到远程流量,通过隧道转发,而不是同时在本机占用两次端口。
remote
把本地 127.0.0.1:8080
暴露到 0.0.0.0:8081
。
ssh -N -L 8081:localhost:8080 root@localhost
如果用同一个端口,会提示被占用。
bind [127.0.0.1]:8080: Address already in use