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

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_serverHostName target_server_ipUser userProxyCommand ssh -W %h:%p jump_host_user@jump_host_ip

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

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

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

Host *ControlMaster autoControlPath ~/.ssh/sockets/%r@%h:%pControlPersist 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.mrgr.cn/news/58598.html

相关文章:

  • ECharts图表图例知识点小结
  • 经典功率谱估计的原理及MATLAB仿真(自相关函数BT法、周期图法、bartlett法、welch法)
  • 跨时钟域处理(单bit)_2024年10月21日
  • 1.CentOS安装
  • 第二章:信息建模:对象和变量的类型4
  • 利用 Google AI 工具提升应用智能化:ML Kit、TensorFlowLite、Cloud Vision、AutoML、Gemini
  • LeetCode Hot 100:二分查找
  • Visual Studio中无法打开Qt中UI文件,简单快捷处理方法
  • Zookeeper客户端工具 Apache Curator 最佳实践
  • 10340 文本编辑器(vim)
  • Swift 是一种由苹果公司开发的强大而直观的编程语言,主要用于开发 iOS、macOS、watchOS 和 tvOS 等苹果平台的应用程序。
  • C++中如何使用文件系统路径
  • AcWing 89:a^b ← 快速幂
  • 136.只出现一次的数字
  • 【开源项目】经典开源项目数字孪生工地——开源工程及源码
  • fpga系列 HDL: 竞争和冒险 01
  • 计算机网络:网络层 —— IPv4 协议的表示方法及其编址方法
  • python 线程间通信用什么手段
  • 微软投资比特币:将总资产1%投资于BTC?股东投票决定最终结果!
  • 洛谷 P1060 [NOIP2006 普及组] 开心的金明
  • C++ 移动语义
  • Vue学习记录之二十 postcss自定义插件及Unocss的使用
  • 遇到这3种接口测试问题,其实,你可以这么办~
  • 混个1024勋章
  • 2023年12月中国电子学会青少年软件编程(图形化)等级考试试卷(二级)答案 + 解析
  • CMU生成式人工智能大模型:从入门到放弃(九)