当前位置: 首页 > article >正文

SSH 的 N 大黑科技玩法

在日常开发与运维工作中,SSH 是一款不可或缺的工具,几乎每一个开发者都用它来连接远程服务器。但 SSH 的能力绝不仅限于远程登录,它有很多令人惊叹的黑科技玩法,让你的开发效率成倍提升。今天,我们就来聊聊 SSH 的那些你可能不知道的玩法,让你从入门走向高阶。

1. SSH 隧道 - 打破内网屏障

SSH 隧道是开发者常用的技术,能够帮助我们实现内网穿透,访问一些处于防火墙后面的资源。利用 SSH 隧道可以将本地的某个端口映射到远程服务器的端口,从而绕过防火墙。例如:

ssh -L 8080:localhost:80 user@remote_server

上面的命令将本地 8080 端口与远程服务器的 80 端口连接在了一起。这样,你在浏览器中访问 http://localhost:8080,就等于访问了远程服务器的 80 端口。这种方式在本地开发调试、内网穿透中非常有用。

2. SSH 反向隧道 - 反向连接更方便

与普通的 SSH 隧道相反,SSH 反向隧道能够将远程服务器的端口映射到本地,用于远程访问位于内网的机器。假设你的本地计算机处于内网,而你想让远程服务器访问你的本地服务,可以使用如下命令:

ssh -R 8080:localhost:3000 user@remote_server

这样,远程服务器上的用户可以通过 localhost:8080 访问你本地的 3000 端口,非常方便进行远程调试或提供服务。

3. SSH 代理跳板 - 一站到底

很多企业网络架构复杂,需要通过跳板机(Bastion Host)才能访问目标服务器。每次登陆都需要先连接跳板机,再通过跳板机去访问目标服务器,非常繁琐。其实 SSH 可以通过配置 ~/.ssh/config 文件,轻松实现一站到底的功能:

Host target_server
    HostName target_server_ip
    User user
    ProxyCommand ssh -W %h:%p jump_host_user@jump_host_ip

通过以上配置,你只需执行 ssh target_server,SSH 就会自动通过跳板机连接到目标服务器,省去了每次登录跳板机的步骤,提升了效率。

4. SSH 多路复用 - 减少连接时间

每次使用 SSH 连接远程服务器,都会经历认证与加密协商的过程,这会浪费不少时间。SSH 支持多路复用技术,能够通过一个已建立的 SSH 连接来复用多次会话,大幅减少连接时间。只需要在 ~/.ssh/config 中添加以下内容:

Host *
    ControlMaster auto
    ControlPath ~/.ssh/sockets/%r@%h:%p
    ControlPersist 10m

这样,所有对同一服务器的新 SSH 连接都将复用已经存在的连接,大幅提升多次操作的效率。

5. SSH 端口转发 - 灵活运用网络资源

SSH 的端口转发技术分为本地端口转发和远程端口转发。通过灵活的端口转发,开发者可以实现各种复杂网络环境中的资源访问。例如,你可以将一台处于防火墙后的数据库服务器端口转发到你本地,从而方便开发时直接访问数据。

ssh -L 3306:database_server:3306 user@remote_server

这样你可以在本地通过 localhost:3306 直接访问远程的数据库服务器,大大简化了调试过程。

6. SSHFS - 把远程文件挂载到本地

SSHFS(SSH File System)是一个通过 SSH 挂载远程文件系统的工具,它能让你像操作本地文件一样直接操作远程服务器上的文件。只需一行命令:

sshfs user@remote_server:/remote/directory /local/mountpoint

这样,你就可以在 /local/mountpoint 目录下看到远程服务器上的文件,进行编辑、拷贝、删除等操作,非常方便在本地 IDE 中编辑远程文件。

7. 动态端口转发 - 让 SSH 变身 SOCKS 代理

SSH 还可以充当 SOCKS 代理,通过动态端口转发实现安全上网。例如你想通过某台国外的服务器来访问网络,只需要执行以下命令:

ssh -D 1080 user@remote_server

然后在浏览器中配置 SOCKS5 代理指向 localhost:1080,所有的流量就会通过这台远程服务器中转,从而实现匿名、安全的访问。

结语

以上就是 SSH 的几大黑科技玩法,每一个都能帮助你大幅提升日常工作中的效率和便捷性。无论是打破内网屏障的隧道技术,还是减少重复登录的多路复用,每一个技巧都是 SSH 深厚功能的体现。

希望你能从这些技巧中找到适合自己的玩法,让 SSH 成为你工作中得力的工具。SSH 并不是只有登录远程服务器这一种用途,善用这些技巧,你会发现它的无限可能。

(本文介绍的 SSH 黑科技玩法均为实际开发中常用,建议读者结合自己的需求进行应用。)


http://www.kler.cn/news/365273.html

相关文章:

  • 利用客户端导入有关联的业务数据(DBeaver+sql)
  • 学习webservice的心得
  • 如何接受Date范围的数据
  • 为Windows Terminal 配置zsh + Oh-My-Zsh!
  • Helper types and functions (libevent
  • 《IDE 巧用法宝:使用技巧全解析与优质插件推荐》
  • 力扣 困难 52.N皇后II
  • 线性可分支持向量机的原理推导 9-28支持向量机优化中的可行性条件 公式解析
  • mysql的卸载与安装
  • 论文翻译 | A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT (下)
  • 【Javaee】网络原理—TCP协议的核心机制
  • 智能园艺:Spring Boot植物健康系统
  • Ubuntu 16上安装Go
  • 【数据分享】全国科技-产品质量国家监督抽查(1995-2021年)
  • TLS协议基本原理与Wireshark分析
  • HTTP Cookie深入解析
  • Java如何实现站内消息系统的设计与实现
  • frida脚本,自动化寻址JNI方法
  • 【论文+源码】基于spring boot的垃圾分类网站
  • YOLOv8改进,YOLOv8引入EffectiveSE注意力机制,二次创新C2f结构
  • 4K双模显示器7款评测报告
  • C++新增的类功能和可变参数模板
  • filebeat收集日志直接输出到elasticsearch
  • Redis的RDB执行原理
  • MyBatis 如何映射 Enum(使用 EnumTypeHandler、自定义 TypeHandler)
  • 判断特定时间点开仓的函数(编程技巧)