一个支持 http(s)-connect socks4/4a/5/5h ssh 的tcp代理工具

wzshiming · 2019-12-16 22:12:58 · 3266 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2019-12-16 22:12:58 的主题,其中的信息可能已经有所发展或是发生改变。

Bridge

Bridge 是一个支持 http(s)-connect socks4/4a/5/5h ssh 的tcp代理工具

Build Status Go Report Card GoDoc Docker Automated build GitHub license

示例

映射 github.io:80 tcp 端口到本机的 8080 端口
由于是使用 ip 访问的 访问会返回 404 页面

bridge -b :8080 -p github.io:80

可以经过各种协议的代理

bridge -b :8080 -p github.io:80 -p ssh://username:password@my_server:22
bridge -b :8080 -p github.io:80 -p ssh://username@my_server:22?identity_file=~/.ssh/id_rsa
bridge -b :8080 -p github.io:80 -p socks5://username:password@my_server:1080
bridge -b :8080 -p github.io:80 -p http://username:password@my_server:8080

也可以经过多级代理

bridge -b :8080 -p github.io:80 -p http://username:password@my_server2:8080 -p http://username:password@my_server1:8080

也可以通过 ssh 监听端口 本地的端口映射到服务器的端口
由于 sshd 的限制只能监听 127.0.0.1 的端口
如果想提供对外的服务需要把 /etc/ssh/sshd_config 里的 GatewayPorts no 改成 yes 然后重新加载 sshd

bridge -b :8080 -b ssh://username:password@my_server:22 -p 127.0.0.1:80

更多的时候我是用作 ssh 代理的
在 ~/.ssh/config

ProxyCommand bridge -p %h:%p -p "ssh://username@my_server?identity_file=~/.ssh/id_rsa"

用法

        bridge [-d] \
        [-b=[bind_address]:bind_port \
        [-b=ssh://bridge_bind_address:bridge_bind_port [-b=(socks5|socks4|socks4a|https|http|ssh)://bridge_bind_address:bridge_bind_port ...]]] \ //
        -p=proxy_address:proxy_port \
        [-p=(socks4|socks4a|socks5|socks5h|https|http|ssh)://bridge_proxy_address:bridge_proxy_port ...]
  -b, --bind strings    第一个是侦听地址,然后是侦听地址通过的代理。
                        如果未填写,则重定向到管道。
                        只有ssh和本地支持监听,所以最后一个代理必须是ssh。
  -d, --debug           输出通信数据。
  -p, --proxy strings   第一个是拨号地址,然后是拨号地址通过的代理。

安装

go get -u -v github.com/wzshiming/bridge/cmd/bridge

or

Download releases

or

Docker image


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3266 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传