一款功能强大的 SSH 隧道代理管理工具,专为 Linux 系统设计,用于通过 SSH 服务器搭建代理服务,支持局部和全局代理模式。以下是其使用方法和核心特色:
一、使用方法

  1. 基础操作流程

    配置 SSH 服务器信息(首次使用必须执行)

sudo ./script.sh --config # 或 -c

按提示输入 SSH 服务器地址、端口(默认 22)、用户名,脚本会自动解析服务器 IP、分配代理端口,并选择默认代理模式(全局 / 局部)。
启动代理

sudo ./script.sh --start [模式] # 或 -s [模式]

模式可选:global(全局代理,所有 TCP 流量走代理)、proxychains(局部代理,需用proxychains4前缀)。
若不指定模式,使用配置时设置的默认模式。

停止代理

sudo ./script.sh --stop # 或 -S

会自动清理 iptables 规则、停止 redsocks 和 SSH 隧道。
重启代理

`sudo ./script.sh --restart [模式]  # 或 -r [模式]`

其他常用操作

    测试代理连接:sudo ./script.sh --test(或-t,验证代理是否生效,显示当前 IP)。
    查看状态:sudo ./script.sh --status(或-C,显示隧道、端口、模式等状态)。
    切换默认模式:sudo ./script.sh --mode(或-m,在全局 / 局部模式间切换)。
    帮助信息:sudo ./script.sh --help(或-h)。

二、核心特色

  1. 双代理模式,灵活适配场景

    局部代理(proxychains 模式)
    仅对指定命令生效,需用proxychains4前缀(如proxychains4 curl http://example.com),不影响系统全局网络,适合临时代理需求。
    全局代理(global 模式)
    系统所有 TCP 流量自动通过代理(依赖 redsocks 和 iptables),无需手动添加前缀,适合需要全局翻墙的场景(如浏览器、软件更新等)。

  2. 自动化与智能化

    自动依赖管理:根据系统包管理器(apt/yum/pacman)自动识别并安装缺失依赖(如 proxychains4、redsocks 等),支持多发行版(Debian/Ubuntu、CentOS、Arch)。
    端口自动分配:在指定范围(10000-10100、10101-10200)内自动查找可用端口,避免冲突。
    配置自动保存:SSH 服务器信息、端口、模式等配置保存在~/.ssh_proxy_config,无需重复输入。

  3. 安全性与稳定性

    流量过滤:全局代理模式下,自动排除本地内网 IP(如 192.168.x.x、10.x.x.x)和 SSH 服务器自身 IP,避免流量循环或内网访问异常。
    资源自动清理:脚本终止时(如 Ctrl+C)会自动清理 iptables 规则、停止隧道,防止残留配置影响系统网络。
    详细日志记录:所有操作记录(启动 / 停止 / 错误)保存至~/.ssh_proxy.log,便于排查连接失败等问题。

  4. 易用性优化

    状态可视化:通过--status命令可直观查看 SSH 隧道、redsocks、iptables 规则等运行状态,以及当前公网 IP。
    代理测试工具:--test命令自动检测代理连通性,显示当前出口 IP,验证代理是否生效。
    模式灵活切换:支持通过--mode命令随时切换默认代理模式,无需重新配置服务器信息。

总结
该脚本的核心优势在于 “一键化管理复杂代理配置”,将 SSH 动态转发、proxychains 局部代理、redsocks+iptables 全局代理整合为简单的命令操作,既适合新手快速搭建代理,也满足进阶用户对代理模式的灵活需求,同时兼顾了安全性和系统兼容性