Skip to content

Commit

Permalink
update readme file
Browse files Browse the repository at this point in the history
  • Loading branch information
mingcheng committed Jul 7, 2022
1 parent efdd656 commit 3eb5662
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 1 deletion.
41 changes: 40 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,12 @@
- `20220706` 完成针对 Linux 的透明网关功能
- `20220620` 完成基本功能

![socks5lb](./asserts/socks5lb.png)

我们在科学使用网络的时候经常会碰到 Socks5 Proxy 无法联通的情况,这有可能是因为网络或者线路的调整和波动,这时候往往需要我们自己手工的切换节点,非常的麻烦而且会中断网络请求。

这个工具就是为了解决上述问题而编写的,它简单的说就是个针对 Socks5 Proxy 的前置负载均衡,能够提供经过检验的稳定可靠的 Socks Proxy 节点,如果是针对 Linux 系统下同时能够提供透明代理以及针对 Socks5 协议的转换,而且方便搭配 ipset 以及 iptables 使用。
这个工具就是为了解决上述问题而编写的,它简单的说就是个针对 Socks5 Proxy 的前置负载均衡,能够提供经过检验的稳定可靠的 Socks Proxy 节点,如果是针对 Linux 系统下同时能够提供透明代理以及针对 Socks5
协议的转换,而且方便搭配 ipset 以及 iptables 使用。

目前实现的部分特性有:

Expand All @@ -21,6 +24,8 @@

## 配置

首先是针对 socks5lb 的基本配置,例如以下的配置配置了三个 Socks5 Proxy 同时暴露到本地的 1080 端口,针对 Linux 的透明代理暴露在 8848 端口。

```yaml
socks5_listen: ":1080"
tproxy_listen: ":8848"
Expand All @@ -42,8 +47,42 @@ backends:
timeout: 3
```
### 部署
首先,以下是 docker-compose 相关的配置,建议使用 `network_mode: 'host'` 方式,防止 DOCK 的 iptables 造成网络联通错误

```yaml
version: "3"
services:
socks5lb:
image: ghcr.io/mingcheng/socks5lb
restart: always
dns:
- 8.8.8.8
- 8.8.4.4
environment:
TZ: "Asia/Shanghai"
CHECK_TIME_INTERVAL: 3600
network_mode: "host"
privileged: true
volumes:
- ./socks5lb.yml:/etc/socks5lb.yml:ro
```

然后配置(供参考)iptable 参数,将所有的流量都通过 8848 代理端口转发(注意 redrock 链没有定义,请自行配置)。

```shell
iptables -t nat -I PREROUTING -p tcp -m set --match-set redrock dst -j REDIRECT --to-ports 8848
iptables -t nat -I OUTPUT -p tcp -m set --match-set redrock dst -j REDIRECT --to-ports 8848
```

## 常见问题

### 在其他非 Linux 系统下可以使用 tproxy_listen 这个配置吗?

不好意思,透明代理只针对 Linux 平台。

### 有没有类似功能的项目?

- https://github.com/ginuerzh/gost
- https://github.com/nadoo/glider
Binary file added asserts/socks5lb.graffle
Binary file not shown.
Binary file added asserts/socks5lb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 3eb5662

Please sign in to comment.