0Pricing
Linux Server Deployment & SSH Mastery · 课时

SSH 隧道与 SOCKS 代理

创建用于加密通信的安全 SSH 隧道,并设置 SOCKS 代理以实现匿名浏览或绕过网络限制

SSH 隧道与 SOCKS 代理 是 CoddyKit 上的免费 Linux Server Deployment & SSH Mastery 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Linux Server Deployment & SSH Mastery 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Linux Server Deployment & SSH Mastery 课程共包含 4 节课。

SSH 隧道简介

欢迎学习 SSH 隧道!它们不是实体隧道,而是让您能够通过 SSH 服务器转发网络流量的安全连接。

您可以把它理解为通过公共网络创建一条秘密的加密通道。这条通道可以让您访问原本可能被阻止或不安全的服务。

为什么要使用 SSH 隧道?

SSH 隧道对开发人员和系统管理员来说非常灵活。它们可以帮助您:

  • 绕过防火墙:访问未向公共互联网开放的内部服务。
  • 保护未加密的流量:加密通常会以不安全方式传输的数据(例如旧式协议传输的数据)。
  • 访问受限资源:从公共网络访问私有网络中的服务,或反过来访问。

详解本地端口转发

本地端口转发是指将本地计算机上的端口连接到远程计算机上的端口(通过 SSH 服务器)。

SSH 服务器充当中间人。本地应用连接到本地端口,而 SSH 会将这些流量安全地转发到指定的远程主机和端口。

本地转发:命令

本地端口转发的语法很简单:

ssh -L [local_port]:[remote_host]:[remote_port] [user]@[ssh_server]

下面举例说明如何通过 ssh-gateway 服务器访问运行在 db-server 上的数据库(端口 3306):

ssh -L 8080:db-server:3306 user@ssh-gateway.com

本地转发:实际应用

运行上一场景中的命令后,您现在可以将本地数据库客户端连接到 localhost:8080。

您发送到 localhost:8080 的所有流量都会通过 ssh-gateway.com 安全地转发到 db-server:3306。这对于访问私有数据库或网页服务非常有用。

详解远程端口转发

远程端口转发与本地转发相反。它允许您将运行在本地计算机上的服务公开到远程 SSH 服务器上的端口。

这意味着其他人可以连接到远程 SSH 服务器上的端口,而他们的流量会被安全地转发到您的本地服务。

远程转发:命令

远程端口转发的语法使用 -R 标志:

ssh -R [remote_port]:[local_host]:[local_port] [user]@[ssh_server]

假设您在本地端口 8000 上运行了一个网页服务器,并希望通过 ssh-gateway 的 8888 端口让其他人访问它:

ssh -R 8888:localhost:8000 user@ssh-gateway.com

远程转发:实际应用

建立远程隧道后,任何能够访问 ssh-gateway.com 的人,都可以通过连接到 ssh-gateway.com:8888 来访问您的本地网页服务器。

这对于与团队成员共享本地开发服务器,或让需要访问您本地计算机的网页钩子正常工作非常有用。

通过 SSH 使用 SOCKS 代理

SOCKS 代理可以让您将应用的所有流量(例如网页浏览器、聊天客户端)通过 SSH 服务器进行路由。这通常用于匿名浏览或绕过网络限制。

-D 标志会在本地端口上创建 SOCKS 代理:

ssh -D 9999 user@ssh-gateway.com

为 SOCKS 配置客户端

运行 ssh -D 9999 user@ssh-gateway.com 后,您将在 localhost:9999 上运行一个 SOCKS 代理。

然后,将网页浏览器(或其他应用)配置为使用 localhost 作为 SOCKS5 代理,端口为 9999。现在,该应用产生的所有互联网流量都会通过您的 ssh-gateway 安全地进行路由。

隧道知识检查

您正在尝试从本地计算机(localhost)访问运行在 internal-app.local:80 上的私有内部网页服务。您拥有对 jump-host.com 的 SSH 访问权限。

您会使用哪条 SSH 命令,将本地端口 8080 转发到内部网页服务?

隧道与代理总结

您已经掌握了 SSH 隧道!本节介绍了:

  • 本地端口转发(-L):从本地计算机访问远程服务。
  • 远程端口转发(-R):将本地服务公开给远程 SSH 服务器。
  • SOCKS 代理(-D):通过 SSH 服务器路由所有应用流量,以保护隐私或绕过限制。

这些技术是开发和系统管理中实现安全、灵活网络访问的强大工具。

常见问题解答

「SSH 隧道与 SOCKS 代理」课时是免费的吗?

是的 — 「SSH 隧道与 SOCKS 代理」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Linux Server Deployment & SSH Mastery 课程的其余内容,请升级到 CoddyKit PRO。 Linux Server Deployment & SSH Mastery 课程共包含 4 节课。

「SSH 隧道与 SOCKS 代理」这节课中我会学到什么?

创建用于加密通信的安全 SSH 隧道,并设置 SOCKS 代理以实现匿名浏览或绕过网络限制 你通过在浏览器中直接运行的动手代码来练习 Linux Server Deployment & SSH Mastery,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Linux Server Deployment & SSH Mastery 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Linux Server Deployment & SSH Mastery 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「SSH 隧道与 SOCKS 代理」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Linux Server Deployment & SSH Mastery 课中编写并运行代码吗?

能。每节 Linux Server Deployment & SSH Mastery 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. SSH 端口转发(本地/远程)
  2. SSH 隧道与 SOCKS 代理
  3. SSH 代理与多跳连接
  4. 使用 SCP、SFTP 和 rsync 安全传输文件
← 返回 Linux Server Deployment & SSH Mastery