sshd隧道模式L/R/D
SSH隧道基本原理
- SSH 隧道构建于 SSH 安全协议之上,利用加密和身份验证机制,保证通信安全。
- 建立连接后,可在此加密连接内部“开通”新通道,用于转发数据。
1.搭建 SSH 隧道前的准备
确保以下各项已经准备就绪:
- CentOS 7 系统已安装并启用 SSH 服务。
- 拥有目标服务器的 SSH 登录权限(用户名 + 密钥或密码)。
- 明确想访问的远程服务和端口(如数据库服务、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.com的8080转发到本地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.总结结构一览
