百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

5 分钟学懂 SSH 隧道技术

ahcoder 2025-02-06 13:54 10 浏览


概述

本文将介绍一些关于 SSH 隧道技术的小技巧,并且给出一个网络拓扑图更好地解释在做的东西。

网络基础

假设我的网络情况是这样的一个简化拓扑:

图 1:简化网络拓扑

那么这里有几种可能的操作,分别是:

  • 从 Home PC 直接 SSH Office PC
    • 从 Office PC SSH 到 Home PC 同理
  • 从 Home PC 直接 SSH 到 VPS
    • 从 Office PC SSH 到 VPS 同理
  • 从 VPS SSH 到 Home(Office) PC

在这几个场景中,最简单实现的就是:从 Home PC SSH 到 VPS,这也是我们平时最常见的一个操作。只所以我们可以轻松地实现这个原理,是因为 VPS 拥有公网 IP,我们可以直接从 Home PC 中路由到 VPS,反之,因为我们的 Home PC 没有公网 IP,所以 VPS 无法直接 SSH 到我们的 Home PC。

那么这里就会有同学有想法了,那么我们的 Home PC 能不能有公网 IP,答案肯定是可以的,从上图中可以看到,简单来说,PC 和 VPS 的差异就在于 PC 还接了一次路由器,那么如果直接将 PC 介入 ISP 网络中,是不是就可以拥有公网 IP 了。这个问题很复杂,答案可能是,这依赖于你的 ISP 如果提供网络给你,在以前 ADSL 时代,基本上都是可以提供公网 IP 的,但是,随着光纤的普及,即使你不使用路由器,你也不是直接介入 ISP 的骨干网了,而是 ISP 的一个分线器,例如 FTTB 系列。所以,这里设想让 PC(路由器) 拥有公网 IP 的想法不具有通用性,加上即使有,ISP 可能也会限制一些端口,因此用的也不多。

SSH 隧道

所以,终于进入到本文的主题了,既然没法直接连接到 PC,那么可不可以反过来,让 PC 自己主动来发起请求,这就是 SSH 隧道的原理了:

[root@liqiang.io]# ssh -qngfNTR 9999:localhost:8888 root@192.168.29.48

命令行快速使用

[root@liqiang.io]# cat ~/.ssh/config
Host jump
  HostName 10.0.0.102
  Port 22
  User root
  IdentityFile /root/.ssh/id_rsa
  ForwardAgent yes
Host 10.0.0.87
  HostName 10.0.0.87
  ProxyJump jump
  User zhangsan
  • 首先需要确保可以直接登录跳板机:10.0.0.102
  • 10.0.0.87 是通过 10.0.0.102 这个跳板机访问的;

Tips

反向隧道只监听 localhost

[root@liqiang.io]# cat /etc/ssh/sshd_config
GatewayPorts = yes

代理 UDP

反向代理

  • 本地机器:
[root@liqiang.io]# yum install -y nc
  [root@liqiang.io]# mkfifo /tmp/fifo
  [root@liqiang.io]# nc -l -p 1162 < /tmp/fifo | nc -u localhost 1163 > /tmp/fifo
  • 这里的意思是说监听机器上的 1162 端口发出来的数据,然后以 UDP 的形式将数据发送给 localhost:1163
  • 远程机器
[root@liqiang.io]# mkfifo /tmp/fifo
  [root@liqiang.io]# nc -l -u -p 1163 < /tmp/fifo | nc localhost 1162 > /tmp/fifo
  • 这里的意思是在机器上监听 1163 端口的 UDP 协议,然后将收到的 UDP 流量通过 TCP 链路 localhost:1162 发送出去。
  • 注意要点
    • 必须先在本地执行完命令之后再去远程服务器执行,不然,服务器这边会因为没有数据而导致无法正常运行;
    • 在使用过程中我遇到了一个问题就是这种方式只能接收一次 UDP,第二次就无法接收成功了;
    • 这是反向代理的例子,正向代理反过来即是。

参考文档

  • How to make a SSH tunnel publicly accessible?
  • Performing UDP tunneling through an SSH connection
  • How to use ansible openstack modules with a ssh socks proxy
  • SSH Tunneling Technology Guide

相关推荐

全新架构!腾讯推出基于NT架构的全新Linux版QQ

据之前的报道,QQ作为经典的聊天软件在经历多次的功能调整后,正式选择基于新技术开发新版本的QQ。而在今日,基于NT架构的全新QQLinux版已结束内测,并正式为其推出官网新界面,并为所有用户提供下载...

Linux系统区别英文字母大小写(linux是否区分大小写)

我们一般在Windows系统开发程序并进行功能测试,如果上线的时候选择Windows服务器的话,是什么问题都没有。但是当选择Linux系统的时候,就必须注意Linux系统是严格的区别文字大小。Wind...

微软赞助LinuxCon北美峰会:向Linux表达爱意

IT之家讯8月24日消息,LinuxCon北美峰会在美国西雅图举行,与往年相比本次峰会最大的亮点是:微软作为赞助商出席了峰会,再次向世人宣布“微软爱Linux”。在本次峰会中,微软为大家准备了印有“...

现在越来越注重知识产权,你在设计中有知道哪些字体是可商用吗?

在设计海报中字体是很重要的一部分,近年来知识产权的越来越注重,不少设计公司用了有版权字体踩坑也时常可见。那么我们怎样去区别字体有没有版权呢。(文章结尾有文章领取方法)1.Windows库中自带的字体...

Linux 快速安装当前目录及子目录下的所有字体

源码随时更新sh/fonts-install.sh·main·JetsungChan/sh-files·极狐GitLabsh-files/fonts-install.shatma...

开源字体编辑器TruFont(开源字体库)

TruFont是一款跨平台的开源字体编辑器,它支持.otf、.ttf、.ttx、.pfa、.pfb、.woff等字体格式。支持Linux、MacOSX、以及Windows平台。htt...

告别字体侵权,100+个免费可商用字体大集合(附字体包)

作为设计师,我们在作图时要使用大量的字体来达到我们想要的效果,但是字体都是有版权的,据说前几年暴风、保洁被方正告,赔了几百上千万(我的天呐,吓死宝宝了)最近,在群里看到了又有人收到律师函,去年底我也收...

办公小技巧:告别侵权 PPT字体自己造

很多朋友还不知道,我们每天面对的字体都是有版权保护的,如果对这方面的内容不了解,一不小心就可能造成侵权。那么我们在日常设计PPT文稿的时候,如何避免字体侵权呢?首先我们得懂得如何查看版权信息,另外还需...

在linux中添加Windows字体(linux使用windows字体)

linux中添加字体第一步:WINDOWS/FONTS中的字体文件,上传到linux服务器上/usr/share/fonts/myfonts第二步:将copy到的字体文件夹copy到系统字体文件夹中并...

在Ubuntu系统中如何更换字体(ubuntu如何调整字体大小)

在Ubuntu中,默认情况下已经安装了很多字体,但是可能有一段时间你需要安装一些额外的字体。本文介绍如何在Ubuntu18.04中安装字体。环境Ubuntu18.04.3LTS下载并解压字体首先...

在麒麟Linux上安装Elasticsearch的步骤

在麒麟Linux上安装Elasticsearch的步骤如下,分为基于Debian(如Ubuntu)和基于RPM(如CentOS)的两种常见场景。请根据你的麒麟Linux版本选择对应的安装方式:1.系...

Linux实战之:version `GLIBC_2.27&#39; not found

通过ldd命令查看缺失的依赖,发现有个插件一直提示:“/lib/x86_64-linux-gnu/libm.so.6:version`GLIBC_2.27'notfound”,通过ap...

32、64位版本!揭Ubuntu 14.10系统性能

1Ubuntu14.10新平台性能比拼从phoronix.com的消息获悉,Ubuntu的支持人BryanQuigley正在考虑将Ubuntu16.04作为最后一个32位发行版本。2016年4月...

Ubuntu 25.04内核确定,Linux 6.14带来全新体验

IT之家12月14日消息,Canonical工程师TimoAaltonen昨日(12月13日)在Ubuntu论坛发帖,确认Ubuntu25.04发行版将使用Linux...

2020年最漂亮的7个Linux发行版(最新linux发行版)

请关注本头条号,每天坚持更新原创干货技术文章。如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习1.前言对于想学习Linux的朋友们,心中一定有疑问,哪个Linux版本比较好入门,Li...