SSH 命令 -L 使用

ssh -L 是 SSH 命令中的一个端口转发选项,用于将本地计算机的端口(本地端口)映射到远程计算机的端口(远程端口)。这种技术通常用于访问远程服务器上的某些服务,而这些服务可能被防火墙阻止,或者你想通过加密的 SSH 通道来保护数据传输。

ssh -L 的基本语法:

ssh -L [本地地址:]本地端口:远程地址:远程端口 user@远程主机
  • 本地地址:可选,表示绑定的本地 IP 地址。默认情况下,它会绑定到 localhost,即只允许本地计算机访问。
  • 本地端口:本地计算机上你希望监听的端口。
  • 远程地址:要访问的远程计算机上的地址,通常是远程计算机上的某个服务的地址。如果是 localhost,则表示目标服务就在远程主机上。
  • 远程端口:远程计算机上的端口,通常是你想访问的服务的端口。
  • user@远程主机:SSH 登录的远程主机及用户名。

例子:

  1. 本地端口 8080 映射到远程主机的 80 端口:

    ssh -L 8080:localhost:80 user@remote_host
    

    这条命令将本地计算机的 8080 端口转发到远程主机 remote_host 的 80 端口。通过访问本地 http://localhost:8080,你实际上是在访问远程主机上的 Web 服务。

  2. 绑定到特定的本地 IP 地址:

    ssh -L 192.168.1.62:8080:localhost:80 user@remote_host
    

    这条命令将本地 IP 地址 192.168.1.62 上的 8080 端口映射到远程主机的 80 端口。只有在本地网络上 192.168.1.62 地址的机器可以访问此端口。

  3. 多级转发:

    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 时,确保你不会意外地覆盖本地已经被其他服务占用的端口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值