SSH隧道

这章继续介绍基础知识,前面讲到有的服务在127.0.0.1监听,外网无法访问,我们怎么访问呢,可以用SSH隧道。

什么是SSH隧道?

SSH隧道(SSH Tunneling)是一种使用SSH协议在两个网络节点之间建立加密通道的技术。

就像时空门一样,我们从这个空间进入,出来的时候却发现是另一个空间。

SSH隧道的三种模式

本地转发(Local Forwarding)

这是最常用的模式,将远程服务映射到本地端口。

命令格式是ssh -L 本地端口:目标主机C:目标端口 跳板机B。如果在电脑A上运行命令后,本地进程访问本地端口就相当于访问目标主机C的目标端口。

这个目标主机C必须是跳板机B可以访问到的。我们一般看到目标主机C是127.0.0.1,这种情况下C就是B。

# 将跳板机B的22端口映射到本地10022端口
ssh -L 10022:127.0.0.1:22 B

# 访问本地10022端口就相当于访问跳板机B的ssh
ssh -p 10022 localhost

目标主机C也可以不是127.0.0.1,比如A可以访问B的ssh服务,B可以访问C的ssh服务,A却不能访问C的ssh服务,那么A可以通过下面的方式访问C的ssh服务。

# 将C的22端口映射到本地10022端口
ssh -L 10022:C:22 B

# 访问本地10022端口就相当于访问C的ssh
ssh -p 10022 localhost

对于这种情况其实还可以修改ssh的配置文件C:\Users\test\.ssh\config,让ssh自动转发。

Host B
        HostName x.x.x.x
        Port 22
        User root
Host C
        HostName y.y.y.y
        Port 22
        User root
        ProxyJump B

在A上运行ssh C就会通过跳板机B访问目标主机C。

如果命令格式是ssh -L 0.0.0.0:本地端口:目标主机C:目标端口 跳板机B。运行命令后,其他电脑访问这台电脑A的本地端口就相当于访问目标主机C的目标端口。注意这台电脑A的防火墙要允许访问这个端口。

远程转发(Remote Forwarding)

将本地服务映射到远程端口。

这个可能比较难理解,举个例子,有台服务器A只能用远程桌面登录,IT把ssh端口封了,我想用ssh登录怎么办。

首先要找台A能用ssh登录的服务器B,然后在A上执行ssh -R 11222:127.0.0.1:22 B,然后我登陆到B,执行ssh -p 11222 localhost,就可以ssh登录A了。

像前面一样,命令格式也支持ssh -R 0.0.0.0:本地端口:目标主机C:目标端口 跳板机B。这里的跳板机就像一个内鬼,把外部无法访问的端口暴露出来了,所以要小心啊。

动态转发(Dynamic Forwarding)

创建一个SOCKS5代理。命令格式是ssh -D 本地端口 跳板机B。电脑A上的应用程序设置了这个代理,就可以用跳板机B来收发数据包,相当阿于披了个马甲。

另外介绍一下Windows下面SOCKS5代理转HTTP代理的程序Privoxy,可以在https://sourceforge.net/projects/ijbswa/files/Win32/下载。

在配置文件config.txt主要看两个地方:

# HTTP代理的端口
listen-address  127.0.0.1:8118
# SOCKS5代理的端口
forward-socks5 / 127.0.0.1:1080 .

ssh服务配置

/etc/ssh/sshd_config文件中,把下面一些选项打开,不然有时候会转发失败,不要忘记重启sshd。

AllowAgentForwarding yes
AllowTcpForwarding yes
GatewayPorts yes

暂无介绍....

延伸阅读:

部署deepseek-r1

最近DeepSeek-R1模型很火,我也蹭个热点,本文介绍如何在VPS上使用Ollama部署DeepSeek-R1模型,...

leon
2025年2月23日
MySQL备份与还原

我们的VPS可能会硬盘损坏需要重装OS,或者运营商跑路了,所以需要定时备份数据库,以防不测。备份使用mysqldump导...

leon
2025年2月22日
SSH隧道

这章继续介绍基础知识,前面讲到有的服务在127.0.0.1监听,外网无法访问,我们怎么访问呢,可以用SSH隧道。什么是S...

leon
2025年2月20日
部署第一个网络服务

前面介绍了不少基础知识,今天介绍如何部署一个网站,demo在这里。下面是一些前面介绍过的预备知识:- Caddy介绍- ...

leon
2025年2月19日
域名介绍

什么是域名?这个正常人都知道,就不介绍了。为什么有一个域名是极好的,可以查看前面的文章。如何获取免费域名?1. Free...

leon
2025年2月17日