sshd隧道模式L/R/D

SSH隧道基本原理

  • SSH 隧道构建于 SSH 安全协议之上,利用加密和身份验证机制,保证通信安全。
  • 建立连接后,可在此加密连接内部“开通”新通道,用于转发数据。

1.搭建 SSH 隧道前的准备

确保以下各项已经准备就绪:

  1. CentOS 7 系统已安装并启用 SSH 服务。
  2. 拥有目标服务器的 SSH 登录权限(用户名 + 密钥或密码)。
  3. 明确想访问的远程服务和端口(如数据库服务、Web 服务等)。

2.SSH 隧道转发方式详解

2.1.本地端口转发(Local Port Forwarding, -L

  • 功能:将本地端口的流量转发至远程主机的指定端口。

  • 命令模板

    1
    ssh -L <本地端口>:<远程地址>:<远程端口> 用户名@SSH服务器
  • 示例:将本地 63333 端口流量转到远程 db.example.com:5432

    1
    ssh -L 63333:db.example.com:5432 user@ssh.example.com
  • 结果:你可以在本地访问 localhost:63333 来连接远程数据库。

2.2.远程端口转发(Remote Port Forwarding, -R

  • 功能:转发远程主机端口的访问到本地机器。

  • 命令模板

    1
    ssh -R <远程端口>:<本地地址>:<本地端口> 用户名@SSH服务器
  • 示例:将远程服务器 ssh.example.com8080 转发到本地 80

    1
    ssh -R 8080:localhost:80 user@ssh.example.com
  • 效果:远程访问 http://localhost 可访问你本地的 Web 服务。

2.3.动态端口转发(Dynamic Port Forwarding, -D

  • 功能:在本地开启一个可供 SOCKS 代理使用的端口,实现灵活的代理访问。

  • 命令模板

    1
    ssh -D <本地端口> 用户名@SSH服务器
  • 示例:在本地创建 SOCKS 代理(端口 1080):

    1
    ssh -D 1080 user@ssh.example.com
  • 使用方式:在浏览器或系统代理设置中配置 SOCKS 代理,就能通过该代理安全访问网络。


3. 安全注意事项建议

为了增强隧道使用的安全性,文章强调以下几条最佳实践:

  • 建议使用 强密码或密钥对 进行身份验证,优于弱密码。
  • 更换默认 SSH 端口(22)以降低被攻击风险。
  • 定期更新 SSH 服务软件,避免已知漏洞被利用。
  • 监控 SSH 日志,及时发现异常登录或多次失败登录等可疑行为。

4.总结结构一览

mermaid-1757144363541.png