编辑
2025-11-14
工具
00

还在为异地访问公司内网发愁?教你用SSH隧道+Clash代理实现安全高效的内网穿透,支持Docker容器化部署,与现有代理服务完美共存!

当我们在异地,想要访问家中或者公司网络中的设备或者服务时,可以怎么做呢?

之前讲到过frp代理和NAT内网穿透的方案

今天讲讲SSH隧道+Clash代理的方案,访问局域网

想象这样一个场景,你在公司又一堆服务,他们在192.168.3.0/24 这个网段上,你希望在外地访问这个在局域网中的服务

就可以利用一个中继服务器,一般是一个可以访问 192.168.3.0/24 这个网段 的带公网IP的服务器

在这个服务器上启动一个 sshd 服务,在本地通过 ssh 建立 socket 隧道,就可以转发本地的 内网请求到 公司的服务上

[你的设备] --SSH客户端--> [VPS上的SSH服务器(sshd)] --> [公司内网]

一般的流程是,将本地的 ssh 公钥放在 中继服务器上

[你的设备] ↓ 生成密钥对 [私钥 id_rsa] ← 保密,留在本地 [公钥 id_rsa.pub] ← 放在 VPS 中 ↓ [负责人] ↓ 添加到 VPS [VPS: /home/tiiny/.ssh/authorized_keys] ↓ [你连接 VPS] ssh -N -D 1080 tiiny@101.132.170.158 ↓ [VPS 验证你的公钥] ↓ [验证通过,建立 SSH 隧道]

利用 ssh 的动态端口转发技术,就可以访问整个网段

ssh -N -D 1080 net-proxy

ssh 隧道包括

  • 本地端口转发(Local Port Forwarding)
  • 远程端口转发(Remote Port Forwarding)
  • 动态端口转发(Dynamic Port Forwarding)

需要注意的是,ssh 隧道建立的是一个 socket5 协议的代理,在系统中需要特别设置之后,才会起到系统代理的效果

image-20251112233315799

讲到系统代理,就要提到

  • 系统代理
  • 虚拟网卡代理
  • 应用代理

系统代理就是在操作系统级别设置的代理配置,影响所有通过系统网络堆栈的应用程序

虚拟网卡代理是通过注册一个虚拟的网卡,将系统所有流量都通过代理软件进行代理的方式,可以避免有应用程序不遵守系统代理规则

应用代理指的是在程序内部配置的选项,可以选择是否走系统代理,或者单独设置的自己的代理

当我们通过 命令创建一个代理服务时,不太好管理他的开启和关闭,对于我比较习惯使用 docker,因为docker配置化的方式创建容器,同时可以使用可视化 软件管理 docker,就像管理服务一样

ssh -N -D 1080 net-proxy

image-20251112235931724

简单写一个 Dockerfile 或者利用 Agent IDE 帮我创建和配置,可以很轻松的创建一个 docker容器

FROM alpine:3.19 RUN apk add --no-cache openssh-client autossh && \ mkdir -p /root/.ssh COPY ssh_config /root/.ssh/config COPY start-tunnel.sh /start-tunnel.sh RUN chmod +x /start-tunnel.sh EXPOSE 1080 CMD ["/start-tunnel.sh"]

image-20251113000114617

通过 docker创建的服务,但是还是有一个问题,这个专门的代理,占用了系统代理,导致我的 clash 无法同时开启,那也很麻烦。

实际上,我们可以手动配置 clash 订阅文件,配置规则让 公司内网网段的请求都走到 专门的规则中,从而也不占用系统代理的通道,实现共存

yaml
# 1. 添加代理节点 (Proxies) proxies: # ... 其他节点 ... - { name: "公司内网 (SSH)", type: socks5, server: 127.0.0.1, port: 1080, udp: true } # 2. 添加代理组 (Proxy Groups) proxy-groups: # ... 其他组 ... - { name: "内网访问", type: select, proxies: ["公司内网 (SSH)", DIRECT] } # 3. 添加规则 (Rules) rules: # 将内网IP段和域名的流量指向 "内网访问" 策略组 - IP-CIDR, 192.168.3.0/24, 内网访问 # ... 其他规则 ...

image-20251113000457575

到此,我们就实现了通过中继服务的方式,访问某些局域网的方式,这种方式是可控、加密、且兼容性强的,大家可以试试使用这种方式访问自己家中的服务,或者公司的服务

image-20251113001220942

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:pepedd864

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!