ssh -L 是 SSH 命令中的一个端口转发选项,用于将本地计算机的端口(本地端口)映射到远程计算机的端口(远程端口)。这种技术通常用于访问远程服务器上的某些服务,而这些服务可能被防火墙阻止,或者你想通过加密的 SSH 通道来保护数据传输。
ssh -L 的基本语法:
ssh -L [本地地址:]本地端口:远程地址:远程端口 user@远程主机
本地地址:可选,表示绑定的本地 IP 地址。默认情况下,它会绑定到localhost,即只允许本地计算机访问。本地端口:本地计算机上你希望监听的端口。远程地址:要访问的远程计算机上的地址,通常是远程计算机上的某个服务的地址。如果是localhost,则表示目标服务就在远程主机上。远程端口:远程计算机上的端口,通常是你想访问的服务的端口。user@远程主机:SSH 登录的远程主机及用户名。
例子:
-
本地端口 8080 映射到远程主机的 80 端口:
ssh -L 8080:localhost:80 user@remote_host这条命令将本地计算机的 8080 端口转发到远程主机
remote_host的 80 端口。通过访问本地http://localhost:8080,你实际上是在访问远程主机上的 Web 服务。 -
绑定到特定的本地 IP 地址:
ssh -L 192.168.1.62:8080:localhost:80 user@remote_host这条命令将本地 IP 地址
192.168.1.62上的 8080 端口映射到远程主机的 80 端口。只有在本地网络上192.168.1.62地址的机器可以访问此端口。 -
多级转发:
ssh -L 192.168.1.62:1302:gin.study.cn:443 root@43.142.140.60实际场景:
只有在服务器【43.142.140.60】 上 可以访问 https://gin.study.cn/ 为了方便本地测试,通过配置多级转发,实现访问192.168.1.62:1302,实际上是服务器【43.142.140.60】 帮你访问https://gin.study.cn/ ,可以通过这种即使有些域名配置白名单也可以实现访问
使用场景:
- 绕过防火墙:通过 SSH 隧道,你可以绕过公司或组织的防火墙,访问被封锁的远程服务。
- 保护数据传输:使用 SSH 隧道,你可以确保敏感的数据传输是加密的,即使是非加密的协议(如 HTTP 或 MySQL)也可以通过加密通道进行安全传输。
- 访问远程数据库:如果远程数据库服务器对外不可直接访问,可以使用
ssh -L将本地端口映射到远程数据库端口。
注意事项:
- 端口映射后,数据将通过 SSH 连接传输,因此 SSH 会话需要保持活跃。
- 默认情况下,端口转发只对本地机器开放,远程主机或其他网络上的机器无法直接访问这个端口。
- 使用
-L时,确保你不会意外地覆盖本地已经被其他服务占用的端口。

6009

被折叠的 条评论
为什么被折叠?



