一世贪欢的私域

一世贪欢的私域

SSH隧道

2025-10-23
SSH隧道

SSH隧道

想记录一下SSH隧道,那就开始吧,今天下午是行动力爆棚的一下午。
251120补充,写的好烂。不过是给自己看的,能看明白。

一、介绍

ssh隧道是一种隧道技术,可以实现内网穿透的效果。主要分为三种,本地端口转发,远程端口转发,动态隧道代理。

二、本地端口转发

本地启动一个端口,数据会通过SSH隧道,访问服务器端的某个端口。

ssh -L 9999:127.0.0.1:6666 user@host_ip
  • -L 代表本地端口转发
  • 9999 代表本地启动的端口
  • 127.0.0.1:6666 代表要访问的目的地址,127.0.0.1肯定是相对服务器端的

此时访问本地端口,就相当于访问远程的某个服务。

本地端口转发示意图

三、远程端口转发

和本地转发相反,让服务器端访问本地的某个服务。

远程服务器启动一个端口,数据会通过SSH隧道到达本地的某个端口

ssh -R 8989:127.0.0.1:8888 user@host_ip
  • -R 代表远程服务器启动一个端口
  • 8989 代表远程服务器启动的端口
  • 127.0.0.1:8888 代表本地的服务端口

此时,远程服务器就可以通过远程端口访问到本地的服务。

远程端口转发示意图

注意

默认情况下,服务器只能监听localhost 的端口,即使以下这种方式指定也不可以。

ssh -R 0.0.0.0:8989:127.0.0.1:8888 user@host_ip

除非,sshd 的配置文件 /etc/ssh/sshd_config 加个参数GatewayPorts

GatewayPorts yes

四、动态代理

本地启动一个socks 代理,将流量都转发到服务器,让服务器来代替我们访问资源。

ssh -D 1080 user@host_ip
  • -D 代表动态代理
  • 1080 代表socks 代理服务器的端口

动态代理示意图

五、封面图

封面图