Skip to content
TopicTracker
来自 HackerNews查看原文
译文语言译文语言

SSH 隧道实用指南:本地与远程端口转发

本文是一份关于 SSH 隧道的实用指南,详细讲解了本地端口转发与远程端口转发的核心概念、工作原理及实际应用场景。通过清晰的示例和配置说明,帮助读者掌握如何利用 SSH 隧道安全地访问内网服务、绕过防火墙限制以及加密网络流量,是系统学习端口转发技术的优质参考资料。

背景速读

SSH(Secure Shell)是远程登录和管理服务器的标准协议,默认加密所有流量。**端口转发(Port Forwarding)** 是 SSH 的一个高级功能,可以让你把本地端口“映射”到远程机器的某个端口上(反之亦然),从而绕过防火墙、加密非加密协议、或者临时访问被隔离的内部服务。 - **本地转发(Local Forwarding)**:你在本地监听一个端口,所有发到这个端口的流量都会通过 SSH 隧道被送到远程机器上的指定地址。例如:`ssh -L 8080:internal-server:80 user@gateway`。 - **远程转发(Remote Forwarding)**:你在远程机器上监听一个端口,流量会通过 SSH 隧道送回本地。常用于让外网访问你本地的服务(比如演示本地开发的 Web 应用),即使本地没有公网 IP。 - **动态转发(Dynamic Forwarding)**:加上 `-D` 参数,SSH 会变成一个 SOCKS 代理,浏览器等程序可以配置使用这个代理来安全地访问远程网络。 实际工作中最经典的场景是:你只能通过一台跳板机(bastion/jump host)SSH 进入内网数据库,但你的本机工具(比如数据库客户端)需要直连数据库端口——这时用本地转发就能让数据库客户端“以为”数据库就在 localhost 上。