SSH 端口转发(本地/远程)
掌握本地和远程端口转发,以安全访问内部服务或将本地服务暴露给远程网络
SSH 端口转发(本地/远程) 是 CoddyKit 上的免费 Linux Server Deployment & SSH Mastery 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Linux Server Deployment & SSH Mastery 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Linux Server Deployment & SSH Mastery 课程共包含 4 节课。
使用 SSH 建立安全隧道
SSH 不只是用于登录!它还可以创建安全的“隧道”,转发网络流量。
这种技术称为端口转发,可以让您访问通常无法访问或不安全的服务。
您可以把它理解为在不同网络端口之间建立一座私有的加密桥梁。
为什么要使用端口转发?
端口转发对开发人员和系统管理员非常有用:
- 访问内部服务:从本地计算机访问私有网络中的数据库或网页界面。
- 公开本地服务:与远程网络中的其他人共享本地开发服务器。
- 绕过防火墙:安全地连接到限制严格的防火墙后方的服务。
本地端口转发(L)
本地端口转发会先从您的本地计算机创建一条通往远程服务器的隧道,再连接到另一个目标。
这就像是在说:“嘿,请将我计算机上发送到 localhost:8000 的所有流量通过 SSH 发送到 remote-server,然后再从那里转发到 internal-db:5432。”
本地转发语法
本地端口转发命令使用 -L 标志:
ssh -L [LOCAL_PORT]:[REMOTE_HOST]:[REMOTE_PORT] [SSH_USER]@[SSH_SERVER]
- LOCAL_PORT:您计算机上的端口。
- REMOTE_HOST:SSH 服务器连接到的主机。
- REMOTE_PORT:
REMOTE_HOST上的端口。 - SSH_SERVER:您通过 SSH 登录的服务器。
本地转发场景
假设有一个数据库运行在 db.internal.network:5432。您的 SSH 服务器(my-server.com)可以访问它,但您的笔记本电脑无法访问。
您希望使用本地工具(例如数据库客户端工具或 psql)连接到此数据库。
本地转发正好可以实现这一点!
本地转发实战
让我们通过 my-server.com,将本地端口 5432 连接到远程数据库 db.internal.network:5432,建立一条隧道。
ssh -L 5432:db.internal.network:5432 user@my-server.com
现在,计算机上连接到 localhost:5432 的任何连接都会安全地到达 db.internal.network:5432。
远程端口转发(R)
远程端口转发与此相反:它会从远程服务器反向创建一条通往本地计算机的隧道,然后连接到目标。
这就像是在说:“嘿,请将发送到 my-server.com:8080 的所有流量通过 SSH 发送到我的笔记本电脑,然后再从那里转发到 localhost:3000。”
远程转发语法
远程端口转发命令使用 -R 标志:
ssh -R [REMOTE_PORT]:[LOCAL_HOST]:[LOCAL_PORT] [SSH_USER]@[SSH_SERVER]
- REMOTE_PORT:SSH 服务器上的端口。
- LOCAL_HOST:SSH 服务器连接到的主机(通常为
localhost)。 - LOCAL_PORT:
LOCAL_HOST上的端口。 - SSH_SERVER:您通过 SSH 登录的服务器。
远程转发场景
您正在笔记本电脑上开发一个运行于 localhost:3000 的网页应用。您想把它展示给同事,但对方位于不同的网络。
您可以使用远程转发,让其他人通过公共 SSH 服务器上的端口访问您的本地应用(例如 my-server.com:8080)。
远程转发实战
让我们通过 my-server.com 上的 8080 端口公开运行于 localhost:3000 的本地网页应用。
ssh -R 8080:localhost:3000 user@my-server.com
现在,您的同事可以在浏览器中访问 http://my-server.com:8080 来打开您的应用!
端口转发测验
SSH 端口转发是一个功能强大的工具。哪些说法准确描述了它的用途?
隧道已加固!
您已经掌握了 SSH 端口转发!
- 本地转发(
-L)将您的本地端口连接到远程服务。 - 远程转发(
-R)将远程服务器的端口连接到您的本地服务。
这些技术可以创建安全的加密隧道,让您能够有效管理网络访问。请继续练习,将它们融入您的工作流程!
常见问题解答
「SSH 端口转发(本地/远程)」课时是免费的吗?
是的 — 「SSH 端口转发(本地/远程)」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Linux Server Deployment & SSH Mastery 课程的其余内容,请升级到 CoddyKit PRO。 Linux Server Deployment & SSH Mastery 课程共包含 4 节课。
「SSH 端口转发(本地/远程)」这节课中我会学到什么?
掌握本地和远程端口转发,以安全访问内部服务或将本地服务暴露给远程网络 你通过在浏览器中直接运行的动手代码来练习 Linux Server Deployment & SSH Mastery,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Linux Server Deployment & SSH Mastery 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Linux Server Deployment & SSH Mastery 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「SSH 端口转发(本地/远程)」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Linux Server Deployment & SSH Mastery 课中编写并运行代码吗?
能。每节 Linux Server Deployment & SSH Mastery 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- SSH 端口转发(本地/远程)
- SSH 隧道与 SOCKS 代理
- SSH 代理与多跳连接
- 使用 SCP、SFTP 和 rsync 安全传输文件