NAS应用商店
专为飞牛、群晖、威联通等Nas打造的通用应用商店

sshuttle - 透明代理式的简易隧道工具

应用介绍

sshuttle 是一种“透明代理”式的简易 VPN/隧道工具,基于 SSH 通道将客户端的子网流量转发到远端主机,通常用于快速把内网(如 NAS 所在局域网)桥接到可访问的跳板机。其优势是配置简单、无需服务端特定软件(只需 SSH),但在高并发与复杂路由场景下不如专门的隧道/VPN。

sshuttle 原生以命令行方式运行,虽然并无官方 Docker 镜像,但可通过容器封装在 NAS 上运行,从而以 docker-compose 管理其生命周期。

安装说明

前提依赖

  • 可 SSH 访问的公网跳板机(Linux 用户,开放 22 端口)
  • 家庭 NAS(Docker 环境)
  • 跳板机具备路由到目标内网/或可作为出口访问公网

安装配置

示例:以容器运行 sshuttle,把 NAS 子网流量经 SSH 转发到跳板机。

version: "3.8"
services:
  sshuttle:
    image: python:3.12-slim
    container_name: sshuttle
    restart: unless-stopped
    network_mode: host
    environment:
      - SSH_HOST=user@your-cloud-ip-or-domain
      - SUBNETS=192.168.1.0/24
    entrypoint: ["/bin/sh","-c"]
    command: >
      "pip install --no-cache-dir sshuttle &&
       ssh-keyscan -H your-cloud-ip-or-domain >> /root/.ssh/known_hosts || true &&
       sshuttle -r ${SSH_HOST} ${SUBNETS} -D"
    volumes:
      - ~/.ssh:/root/.ssh:ro

说明:

  • 通过挂载宿主机的 ~/.ssh,容器可使用已有私钥进行 SSH 免密登录
  • SUBNETS 设置需要转发的网段;亦可仅转发若干主机 CIDR
  • -D 以守护进程运行(必要时可移除,便于调试)

使用说明

  • 确保 NAS 到跳板机的 SSH 免密已配置(或容器内可交互输入密码,但不推荐)
  • 启动容器后,容器日志应显示路由建立成功
  • 在 NAS(或同网段设备)访问目标内网地址时,流量将经 SSH 通道转发
  • 若需中断,停止容器即可;如需多子网同时转发,可在 SUBNETS 中以空格追加

开源信息