Skip to content

jooekong/socks5-proxy

Repository files navigation

SOCKS5 Proxy

一个轻量的 SOCKS5 代理,用于通过单一端口转发多个数据库连接。

使用场景

通过堡垒机访问多个内网数据库时,传统 SSH 端口转发需要为每个数据库建立单独隧道。本工具用一个 SOCKS5 代理替代多个端口转发,通过域名映射到真实 IP。

开发者 → SSH隧道(1080) → 堡垒机(SOCKS5代理) → 多个数据库

快速开始

安装

cargo build --release
sudo cp target/release/socks5-proxy /usr/local/bin/

配置

# config.toml
[proxy]
listen = "127.0.0.1:1080"
timeout = 30
max_connections = 1000
log_level = "info"

[backends]
"mysql.local" = "10.1.1.10:3306"
"redis.local" = "10.1.1.20:6379"
"pg.local" = "10.1.1.30:5432"

[security]
allowed_ips = []  # 空=允许所有,或 ["127.0.0.1", "192.168.1.0/24"]

运行

# 堡垒机上启动代理
socks5-proxy config.toml

# 本地建立 SSH 动态转发
ssh -D 1080 -N user@bastion

# 通过 proxychains 连接数据库
proxychains4 mysql -h mysql.local -u root -p
proxychains4 redis-cli -h redis.local

配置参考

配置项 说明 默认值
proxy.listen 监听地址 127.0.0.1:1080
proxy.timeout 连接超时(秒) 30
proxy.max_connections 最大并发连接 1000
proxy.log_level 日志级别 info
security.allowed_ips IP白名单 []

作为服务运行

Linux (systemd):

sudo cp scripts/socks5-proxy.service /etc/systemd/system/
sudo systemctl enable --now socks5-proxy

macOS (launchd):

cp scripts/com.socks5-proxy.plist ~/Library/LaunchAgents/
launchctl load ~/Library/LaunchAgents/com.socks5-proxy.plist

开发

cargo build          # 编译
cargo test           # 测试
cargo run -- config.toml  # 运行

License

MIT

About

No description, website, or topics provided.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors