Sign inSign up

babyfly/ssh-tunnel

By babyfly

•Updated 15 days ago

通过SSH建立一个Socks隧道

Image
Networking
Developer tools
0

444

babyfly/ssh-tunnel repository overview

⁠SSH隧道

通过SSH建立一个隧道

GitHub Stars Docker Pulls

GitHub:https://github.com/AbnerSC/ssh-tunnel.git⁠

⁠JDK 25
⁠依赖
⁠使用说明
  1. 示例:java -jar ssh-tunnel.jar -D 6666 -H 6667 -suser "socks_user" -spwd "socks_pwd" -server [email protected] -p 22 -P "server_pwd"
  2. 参数说明:
  • -D 6666:本地socks5监听端口
  • -H 6667:本地http代理监听端口(支持 CONNECT 隧道与普通 HTTP 转发)
  • -suser "socks_user":代理账号,socks5 与 http 代理共用【可选参数】
  • -spwd "socks_pwd":代理密码,socks5 与 http 代理共用【可选参数】
  • -server [email protected]:作为隧道的服务器地址和账号
  • -p 22:服务器SSH端口
  • -P "server_pwd":服务器SSH密码
  • -pool 8:SSH连接池大小【可选参数,默认8】

说明:-D 与 -H 可同时启用,两者共用同一套账号密码与同一个 SSH 连接池。 配置账号密码后,http 代理采用 Proxy-Authorization: Basic 认证;未配置则无需认证。

⁠Docker 运行
services:
  ssh-tunnel:
    image: babyfly/ssh-tunnel:latest
    container_name: ssh-tunnel
    hostname: linux
    environment:
      - SOCKS_PORT=6666
      - HTTP_PORT=6667
      - SOCKS_USER=socks_user
      - SOCKS_PASSWORD=socks_pwd
      - [email protected]
      - SSH_PORT=2
      - SSH_PASSWORD=server_pwd
      - SSH_POOL=6
    ports:
      - 16666:6666
      - 16667:6667
    mem_limit: 256m
  • 环境变量说明:
环境变量对应参数说明
SOCKS_PORT-D本地socks5监听端口
HTTP_PORT-H本地http代理监听端口(CONNECT 隧道 + 普通 HTTP 转发)
SOCKS_USER-suser代理账号,socks5 与 http 代理共用
SOCKS_PASSWORD-spwd代理密码,socks5 与 http 代理共用
SSH_SERVER-server隧道服务器地址与账号,如 [email protected]
SSH_PORT-p服务器SSH端口
SSH_PASSWORD-P服务器SSH密码
SSH_POOL-poolSSH连接池大小(默认8)
JAVA_OPTS-覆盖镜像内置的 JVM 调优参数
⁠使用测试
  1. 测试HTTP代理
# 未配置账号密码
curl -x http://127.0.0.1:6667 https://www.google.com

# 已配置账号密码
curl -x http://socks_user:[email protected]:6667 https://www.google.com

Tag summary

Content type

Image

Digest

sha256:be69b440b…

Size

145.5 MB

Last updated

15 days ago

docker pull babyfly/ssh-tunnel