vproxy 2.5.5

A high-performance HTTP/HTTPS/SOCKS5 proxy server
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
# vproxy

[![CI](https://github.com/0x676e67/vproxy/actions/workflows/ci.yml/badge.svg)](https://github.com/0x676e67/vproxy/actions/workflows/ci.yml)
[![Crates.io License](https://img.shields.io/crates/l/vproxy)](./LICENSE)
![Crates.io MSRV](https://img.shields.io/crates/msrv/vproxy)
[![crates.io](https://img.shields.io/crates/v/vproxy.svg)](https://crates.io/crates/vproxy)
[![Crates.io Total Downloads](https://img.shields.io/crates/d/vproxy)](https://crates.io/crates/vproxy)

> 🚀 Help me work seamlessly with open source sharing by [sponsoring me on GitHub]https://github.com/0x676e67/0x676e67/blob/main/SPONSOR.md

A high-performance `HTTP`/`HTTPS`/`SOCKS5` proxy server

## Features

- Proxy extensions
- Concurrency limits 
- Basic authentication
- Auto protocol detection
- Kernel-space zero-copy
- `IPv4`/`IPv6` dual-stack
- Service binding to specific `CIDR` addresses
- SOCKS5: `CONNECT`/`BIND`/`ASSOCIATE`  

## Manual

```shell
$ vproxy -h
A high-performance HTTP/HTTPS/SOCKS5 proxy server

Usage: vproxy
       vproxy <COMMAND>

Commands:
  run      Run server
  start    Start server daemon
  restart  Restart server daemon
  stop     Stop server daemon
  ps       Show server daemon process
  log      Show server daemon log
  self     Modify server installation
  help     Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version
```

## Installation

<details>

<summary>If you need more detailed installation and usage information, please check here</summary>

### Install

- curl

```bash
curl -sSL https://raw.githubusercontent.com/0x676e67/vproxy/main/.github/install.sh | bash
```

- wget

```bash
wget -qO- https://raw.githubusercontent.com/0x676e67/vproxy/main/.github/install.sh | bash
```

- cargo

```bash
cargo install vproxy
```

- Dokcer

```bash
docker run --rm -it ghcr.io/0x676e67/vproxy:latest run http
```

### Note

If you run the program as root, it will automatically configure the sysctl `net.ipv6.ip_nonlocal_bind=1`, `net.ipv6.conf.all.disable_ipv6`, and `ip route add local 2001:470:e953::/48 dev lo` for you. Otherwise you will need to configure these settings manually.

If no subnet is configured, the local default network proxy request will be used. When the local machine sets the priority `Ipv4`/`Ipv6` and the priority is `Ipv4`, it will always use `Ipv4` to make requests (if any).

```shell
# Enable binding to non-local IPv6 addresses
sudo sysctl net.ipv6.ip_nonlocal_bind=1

# Enable IPv6
sudo sysctl net.ipv6.conf.all.disable_ipv6=0

# Replace with your IPv6 subnet
sudo ip route add local 2001:470:e953::/48 dev lo

# Run the server http/socks5
vproxy run -i 2001:470:e953::/48 http

# Start the daemon (runs in the background), requires sudo
sudo vproxy start -i 2001:470:e953::/48 http

# Restart the daemon, requires sudo
sudo vproxy restart

# Stop the daemon, requires sudo
sudo vproxy stop

# Show daemon log
vproxy log

# Show daemon status
vproxy status

# Download and install updates to vproxy
vproxy self update

# Uninstall vproxy
vproxy self uninstall

# Test loop request
while true; do curl -x http://127.0.0.1:8100 -s https://api.ip.sb/ip -A Mozilla; done
...
2001:470:e953:5b75:c862:3328:3e8f:f4d1
2001:470:e953:b84d:ad7d:7399:ade5:4c1c
2001:470:e953:4f88:d5ca:84:83fd:6faa
2001:470:e953:29f3:41e2:d3f2:4a49:1f22
2001:470:e953:98f6:cb40:9dfd:c7ab:18c4
2001:470:e953:f1d7:eb68:cc59:b2d0:2c6f

```

### Multi-Protocol Support

vproxy supports multiple types of proxy servers with flexible configuration options. HTTP, HTTPS, and SOCKS5 proxies can run independently, or use the auto-detection mode to handle all protocols on a single port. Each server type supports authentication, custom binding addresses, and advanced socket configurations.

1. HTTP Proxy

```bash
# Basic HTTP proxy
vproxy run http

# HTTP proxy with authentication
vproxy run http -u username -p password

# HTTP proxy on custom port
vproxy run --bind 0.0.0.0:8080 http
```

2. HTTPS Proxy

```bash
# HTTPS proxy with TLS certificates
vproxy run https --tls-cert cert.pem --tls-key key.pem

# HTTPS proxy with authentication
vproxy run https --tls-cert cert.pem --tls-key key.pem -u username -p password
```

If no TLS certificate is provided, vproxy will automatically generate a self-signed certificate for HTTPS connections.

3. SOCKS5 Proxy

```bash
# Basic SOCKS5 proxy
vproxy run socks5

# SOCKS5 proxy with authentication
vproxy run socks5 -u username -p password

# SOCKS5 proxy on custom port
vproxy run --bind 0.0.0.0:1080 socks5
```

4. Auto Protocol Detection

```bash
# Auto-detect HTTP/HTTPS/SOCKS5 protocols on single port
vproxy run auto

# Auto-detect with HTTPS support
vproxy run auto --tls-cert cert.pem --tls-key key.pem

# Auto-detect with authentication
vproxy run auto -u username -p password --tls-cert cert.pem --tls-key key.pem
```

The auto-detection server automatically identifies the protocol type and routes connections to the appropriate handler.


- TTL Extension

Append `-ttl-` to the username, where TTL is a fixed value (e.g., `username-ttl-2`). The TTL value is the number of requests that can be made with the same IP. When the TTL value is reached, the IP will be changed.

- Session Extension

Append `-session-id` to the username, where session is a fixed value and ID is an arbitrary random value (e.g., `username-session-123456`). Keep the Session ID unchanged to use a fixed IP.

- Range Extension

Append `-range-id` to the username, where range is a fixed value and ID is any random value (e.g. `username-range-123456`). By keeping the Range ID unchanged, you can use a fixed CIDR range in a fixed range. in addition, you must set the startup parameter `--cidr-range`, and the length is within a valid range.

### Examples

- Http proxy session with username and password:

```shell
vproxy run --bind 127.0.0.1:1080 -i 2001:470:70c6::/48 http -u test -p test

$ for i in `seq 1 10`; do curl -x "http://test-session-123456789:test@127.0.0.1:1080" https://api6.ipify.org; done
2001:470:70c6:93ee:9b7c:b4f9:4913:22f5
2001:470:70c6:93ee:9b7c:b4f9:4913:22f5
2001:470:70c6:93ee:9b7c:b4f9:4913:22f5

$ for i in `seq 1 10`; do curl -x "http://test-session-987654321:test@127.0.0.1:1080" https://api6.ipify.org; done
2001:470:70c6:41d0:14fd:d025:835a:d102
2001:470:70c6:41d0:14fd:d025:835a:d102
2001:470:70c6:41d0:14fd:d025:835a:d102
```

- Socks5 proxy session with username and password

```shell
vproxy run --bind 127.0.0.1:1080 -i 2001:470:70c6::/48 socks5 -u test -p test

$ for i in `seq 1 3`; do curl -x "socks5h://test-session-123456789:test@127.0.0.1:1080" https://api6.ipify.org; done
2001:470:70c6:93ee:9b7c:b4f9:4913:22f5
2001:470:70c6:93ee:9b7c:b4f9:4913:22f5
2001:470:70c6:93ee:9b7c:b4f9:4913:22f5

$ for i in `seq 1 3`; do curl -x "socks5h://test-session-987654321:test@127.0.0.1:1080" https://api6.ipify.org; done
2001:470:70c6:41d0:14fd:d025:835a:d102
2001:470:70c6:41d0:14fd:d025:835a:d102
2001:470:70c6:41d0:14fd:d025:835a:d102

```

- TTL proxy session with username and password

```shell
vproxy run --bind 127.0.0.1:1080 -i 2001:470:70c6::/48 socks5 -u test -p test

$ for i in `seq 1 3`; do curl -x "socks5h://test-ttl-2:test@127.0.0.1:1080" https://api6.ipify.org; done
2001:470:70c6:93ee:9b7c:b4f9:4913:22f5
2001:470:70c6:93ee:9b7c:b4f9:4913:22f5
2001:470:70c6:93ee:9b7c:b4f9:4913:22f6

$ for i in `seq 1 3`; do curl -x "socks5h://test-ttl-2:test@127.0.0.1:1080" https://api6.ipify.org; done
2001:470:70c6:41d0:14fd:d025:835a:d102
2001:470:70c6:41d0:14fd:d025:835a:d102
2001:470:70c6:41d0:14fd:d025:835a:d105
```

</details>

## Benchmark

<details>

<summary>If you need more detailed benchmark information, please check here</summary>

### Hardware/Software

- CPU: Apple M3 Max (16) @ 4.06 GHz
- OS: Ubuntu 25.04 aarch64 (6.15.11-orbstack-00542-g4f455d264886)
- Iperf3: 3.18
- Proxychains-ng: 4.17

> Tests performed in virtualized environment (OrbStack). Performance may vary due to VM overhead and resource sharing.

### Topology

```bash
iperf3 server <---> socks5 server <---> iperf3 client
```

### vproxy

1. version `vproxy 2.5.1`
2. repository: `https://github.com/0x676e67/vproxy`
3. command

```bash
vproxy run socks5
```

- Upload

```bash
$ proxychains iperf3 -c 127.0.0.1
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.01  sec   167 GBytes   143 Gbits/sec    1            sender
[  5]   0.00-10.01  sec   167 GBytes   143 Gbits/sec                  receiver
```

```bash
$ proxychains iperf3 -c 127.0.0.1 -P 10
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  9]   0.00-10.00  sec  40.8 GBytes  35.1 Gbits/sec    9            sender
[  9]   0.00-10.00  sec  40.8 GBytes  35.1 Gbits/sec                  receiver
[ 11]   0.00-10.00  sec  43.6 GBytes  37.4 Gbits/sec   10            sender
[ 11]   0.00-10.00  sec  43.6 GBytes  37.4 Gbits/sec                  receiver
[ 13]   0.00-10.00  sec  41.9 GBytes  36.0 Gbits/sec   11            sender
[ 13]   0.00-10.00  sec  41.9 GBytes  36.0 Gbits/sec                  receiver
[ 15]   0.00-10.00  sec  42.2 GBytes  36.2 Gbits/sec   10            sender
[ 15]   0.00-10.00  sec  42.2 GBytes  36.2 Gbits/sec                  receiver
[ 17]   0.00-10.00  sec  41.2 GBytes  35.4 Gbits/sec   11            sender
[ 17]   0.00-10.00  sec  41.2 GBytes  35.4 Gbits/sec                  receiver
[ 19]   0.00-10.00  sec  41.2 GBytes  35.4 Gbits/sec   10            sender
[ 19]   0.00-10.00  sec  41.2 GBytes  35.4 Gbits/sec                  receiver
[ 21]   0.00-10.00  sec  43.3 GBytes  37.2 Gbits/sec   15            sender
[ 21]   0.00-10.00  sec  43.3 GBytes  37.2 Gbits/sec                  receiver
[ 23]   0.00-10.00  sec  40.6 GBytes  34.8 Gbits/sec    8            sender
[ 23]   0.00-10.00  sec  40.6 GBytes  34.8 Gbits/sec                  receiver
[ 25]   0.00-10.00  sec  40.2 GBytes  34.5 Gbits/sec   12            sender
[ 25]   0.00-10.00  sec  40.2 GBytes  34.5 Gbits/sec                  receiver
[ 27]   0.00-10.00  sec  42.6 GBytes  36.6 Gbits/sec   10            sender
[ 27]   0.00-10.00  sec  42.6 GBytes  36.6 Gbits/sec                  receiver
[SUM]   0.00-10.00  sec   418 GBytes   359 Gbits/sec  106             sender
[SUM]   0.00-10.00  sec   417 GBytes   359 Gbits/sec                  receiver
```

- Download

```bash
$ proxychains iperf3 -c 127.0.0.1 -R
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  9]   0.00-10.01  sec   116 GBytes  99.5 Gbits/sec    0            sender
[  9]   0.00-10.01  sec   116 GBytes  99.5 Gbits/sec                  receiver
```

```bash
$ proxychains iperf3 -c 127.0.0.1 -R -P 10
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  9]   0.00-10.00  sec  42.7 GBytes  36.7 Gbits/sec   10            sender
[  9]   0.00-10.00  sec  42.7 GBytes  36.7 Gbits/sec                  receiver
[ 11]   0.00-10.00  sec  45.8 GBytes  39.4 Gbits/sec   12            sender
[ 11]   0.00-10.00  sec  45.8 GBytes  39.4 Gbits/sec                  receiver
[ 13]   0.00-10.00  sec  43.5 GBytes  37.3 Gbits/sec    9            sender
[ 13]   0.00-10.00  sec  43.5 GBytes  37.3 Gbits/sec                  receiver
[ 15]   0.00-10.00  sec  42.4 GBytes  36.4 Gbits/sec    7            sender
[ 15]   0.00-10.00  sec  42.4 GBytes  36.4 Gbits/sec                  receiver
[ 17]   0.00-10.00  sec  42.1 GBytes  36.1 Gbits/sec   13            sender
[ 17]   0.00-10.00  sec  42.1 GBytes  36.1 Gbits/sec                  receiver
[ 19]   0.00-10.00  sec  40.1 GBytes  34.4 Gbits/sec    6            sender
[ 19]   0.00-10.00  sec  40.1 GBytes  34.4 Gbits/sec                  receiver
[ 21]   0.00-10.00  sec  42.3 GBytes  36.3 Gbits/sec    8            sender
[ 21]   0.00-10.00  sec  42.3 GBytes  36.3 Gbits/sec                  receiver
[ 23]   0.00-10.00  sec  43.1 GBytes  37.0 Gbits/sec    9            sender
[ 23]   0.00-10.00  sec  43.1 GBytes  37.0 Gbits/sec                  receiver
[ 25]   0.00-10.00  sec  42.8 GBytes  36.8 Gbits/sec    8            sender
[ 25]   0.00-10.00  sec  42.8 GBytes  36.7 Gbits/sec                  receiver
[ 27]   0.00-10.00  sec  42.4 GBytes  36.4 Gbits/sec    8            sender
[ 27]   0.00-10.00  sec  42.4 GBytes  36.4 Gbits/sec                  receiver
[SUM]   0.00-10.00  sec   427 GBytes   367 Gbits/sec   90             sender
[SUM]   0.00-10.00  sec   427 GBytes   367 Gbits/sec                  receiver
```

### hev-socks5-server

1. version `hev-socks5-server 2.7.0`
2. repository: `https://github.com/heiher/hev-socks5-server`
3. Command

```bash
# workers: 16
hev-socks5-server conf/main.yml
```

- Upload

```bash
$ proxychains iperf3 -c 127.0.0.1
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.01  sec   167 GBytes   143 Gbits/sec    1            sender
[  5]   0.00-10.05  sec   167 GBytes   143 Gbits/sec                  receiver
```

```bash
$ proxychains iperf3 -c 127.0.0.1 -P 10
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  9]   0.00-10.01  sec  57.2 GBytes  49.1 Gbits/sec    0            sender
[  9]   0.00-10.04  sec  57.2 GBytes  49.0 Gbits/sec                  receiver
[ 11]   0.00-10.01  sec  55.9 GBytes  48.0 Gbits/sec    0            sender
[ 11]   0.00-10.04  sec  55.9 GBytes  47.8 Gbits/sec                  receiver
[ 13]   0.00-10.01  sec  30.6 GBytes  26.2 Gbits/sec    1            sender
[ 13]   0.00-10.04  sec  30.6 GBytes  26.1 Gbits/sec                  receiver
[ 15]   0.00-10.01  sec  31.4 GBytes  26.9 Gbits/sec    0            sender
[ 15]   0.00-10.04  sec  31.4 GBytes  26.8 Gbits/sec                  receiver
[ 17]   0.00-10.01  sec  57.0 GBytes  49.0 Gbits/sec    1            sender
[ 17]   0.00-10.04  sec  57.0 GBytes  48.8 Gbits/sec                  receiver
[ 19]   0.00-10.01  sec  56.7 GBytes  48.7 Gbits/sec    0            sender
[ 19]   0.00-10.04  sec  56.7 GBytes  48.5 Gbits/sec                  receiver
[ 21]   0.00-10.01  sec  31.2 GBytes  26.8 Gbits/sec    2            sender
[ 21]   0.00-10.04  sec  31.2 GBytes  26.7 Gbits/sec                  receiver
[ 23]   0.00-10.01  sec  30.7 GBytes  26.4 Gbits/sec    1            sender
[ 23]   0.00-10.04  sec  30.7 GBytes  26.3 Gbits/sec                  receiver
[ 25]   0.00-10.01  sec  58.4 GBytes  50.1 Gbits/sec    0            sender
[ 25]   0.00-10.04  sec  58.4 GBytes  49.9 Gbits/sec                  receiver
[ 27]   0.00-10.01  sec  59.5 GBytes  51.1 Gbits/sec    0            sender
[ 27]   0.00-10.04  sec  59.5 GBytes  50.9 Gbits/sec                  receiver
[SUM]   0.00-10.01  sec   469 GBytes   402 Gbits/sec    5             sender
[SUM]   0.00-10.04  sec   469 GBytes   401 Gbits/sec                  receiver
```

- Download

```bash
$ proxychains iperf3 -c 127.0.0.1 -R
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  9]   0.00-10.05  sec   116 GBytes  98.9 Gbits/sec    1            sender
[  9]   0.00-10.00  sec   116 GBytes  99.3 Gbits/sec                  receiver
```

```bash
$ proxychains iperf3 -c 127.0.0.1 -R -P 10
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  9]   0.00-10.03  sec  22.4 GBytes  19.2 Gbits/sec    1            sender
[  9]   0.00-10.00  sec  22.4 GBytes  19.2 Gbits/sec                  receiver
[ 11]   0.00-10.03  sec  64.9 GBytes  55.6 Gbits/sec    2            sender
[ 11]   0.00-10.00  sec  64.9 GBytes  55.7 Gbits/sec                  receiver
[ 13]   0.00-10.03  sec  59.2 GBytes  50.7 Gbits/sec    0            sender
[ 13]   0.00-10.00  sec  59.2 GBytes  50.8 Gbits/sec                  receiver
[ 15]   0.00-10.03  sec  37.2 GBytes  31.8 Gbits/sec    1            sender
[ 15]   0.00-10.00  sec  37.2 GBytes  31.9 Gbits/sec                  receiver
[ 17]   0.00-10.03  sec  37.1 GBytes  31.7 Gbits/sec    0            sender
[ 17]   0.00-10.00  sec  37.1 GBytes  31.8 Gbits/sec                  receiver
[ 19]   0.00-10.03  sec  64.3 GBytes  55.1 Gbits/sec    1            sender
[ 19]   0.00-10.00  sec  64.3 GBytes  55.2 Gbits/sec                  receiver
[ 21]   0.00-10.03  sec  22.3 GBytes  19.1 Gbits/sec    1            sender
[ 21]   0.00-10.00  sec  22.3 GBytes  19.1 Gbits/sec                  receiver
[ 23]   0.00-10.03  sec  21.6 GBytes  18.5 Gbits/sec    0            sender
[ 23]   0.00-10.00  sec  21.6 GBytes  18.5 Gbits/sec                  receiver
[ 25]   0.00-10.03  sec  59.6 GBytes  51.1 Gbits/sec    1            sender
[ 25]   0.00-10.00  sec  59.6 GBytes  51.2 Gbits/sec                  receiver
[ 27]   0.00-10.03  sec  62.1 GBytes  53.2 Gbits/sec    1            sender
[ 27]   0.00-10.00  sec  62.1 GBytes  53.3 Gbits/sec                  receiver
[SUM]   0.00-10.03  sec   451 GBytes   386 Gbits/sec    8             sender
[SUM]   0.00-10.00  sec   451 GBytes   387 Gbits/sec                  receiver
```

### fast-socks5

1. version `fast-socks5 1.0.0-rc.0`
2. repository: `https://github.com/dizda/fast-socks5`
3. Command

```bash
cargo run -r --example server -- --listen-addr 127.0.0.1:1080 no-auth
```

- Upload

```bash
$ proxychains iperf3 -c 127.0.0.1
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  9]   0.00-10.01  sec  46.4 GBytes  39.8 Gbits/sec    0            sender
[  9]   0.00-10.05  sec  46.4 GBytes  39.7 Gbits/sec                  receiver
```

```bash
$ proxychains iperf3 -c 127.0.0.1 -P 10
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  9]   0.00-10.00  sec  26.8 GBytes  23.0 Gbits/sec    3            sender
[  9]   0.00-10.03  sec  26.8 GBytes  23.0 Gbits/sec                  receiver
[ 11]   0.00-10.00  sec  24.2 GBytes  20.8 Gbits/sec    7            sender
[ 11]   0.00-10.03  sec  24.2 GBytes  20.7 Gbits/sec                  receiver
[ 13]   0.00-10.00  sec  25.5 GBytes  21.9 Gbits/sec    3            sender
[ 13]   0.00-10.03  sec  25.5 GBytes  21.8 Gbits/sec                  receiver
[ 15]   0.00-10.00  sec  24.3 GBytes  20.9 Gbits/sec    9            sender
[ 15]   0.00-10.03  sec  24.3 GBytes  20.8 Gbits/sec                  receiver
[ 17]   0.00-10.00  sec  22.2 GBytes  19.1 Gbits/sec   15            sender
[ 17]   0.00-10.03  sec  22.2 GBytes  19.0 Gbits/sec                  receiver
[ 19]   0.00-10.00  sec  24.9 GBytes  21.4 Gbits/sec    7            sender
[ 19]   0.00-10.03  sec  24.9 GBytes  21.3 Gbits/sec                  receiver
[ 21]   0.00-10.00  sec  25.2 GBytes  21.7 Gbits/sec    6            sender
[ 21]   0.00-10.03  sec  25.2 GBytes  21.6 Gbits/sec                  receiver
[ 23]   0.00-10.00  sec  24.0 GBytes  20.6 Gbits/sec   12            sender
[ 23]   0.00-10.03  sec  24.0 GBytes  20.6 Gbits/sec                  receiver
[ 25]   0.00-10.00  sec  26.9 GBytes  23.1 Gbits/sec    0            sender
[ 25]   0.00-10.03  sec  26.9 GBytes  23.0 Gbits/sec                  receiver
[ 27]   0.00-10.00  sec  21.8 GBytes  18.7 Gbits/sec   13            sender
[ 27]   0.00-10.03  sec  21.8 GBytes  18.7 Gbits/sec                  receiver
[SUM]   0.00-10.00  sec   246 GBytes   211 Gbits/sec   75             sender
[SUM]   0.00-10.03  sec   246 GBytes   211 Gbits/sec                  receiver
```

- Download

```bash
$ proxychains iperf3 -c 127.0.0.1 -R
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  9]   0.00-10.05  sec  43.5 GBytes  37.2 Gbits/sec    0            sender
[  9]   0.00-10.01  sec  43.5 GBytes  37.4 Gbits/sec                  receiver
```

```bash
$ proxychains iperf3 -c 127.0.0.1 -R -P 10
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  9]   0.00-10.03  sec  20.1 GBytes  17.2 Gbits/sec   19            sender
[  9]   0.00-10.00  sec  20.1 GBytes  17.3 Gbits/sec                  receiver
[ 11]   0.00-10.03  sec  17.2 GBytes  14.8 Gbits/sec   19            sender
[ 11]   0.00-10.00  sec  17.2 GBytes  14.8 Gbits/sec                  receiver
[ 13]   0.00-10.03  sec  22.6 GBytes  19.4 Gbits/sec    7            sender
[ 13]   0.00-10.00  sec  22.6 GBytes  19.5 Gbits/sec                  receiver
[ 15]   0.00-10.03  sec  21.9 GBytes  18.7 Gbits/sec    1            sender
[ 15]   0.00-10.00  sec  21.9 GBytes  18.8 Gbits/sec                  receiver
[ 17]   0.00-10.03  sec  17.7 GBytes  15.1 Gbits/sec   14            sender
[ 17]   0.00-10.00  sec  17.7 GBytes  15.2 Gbits/sec                  receiver
[ 19]   0.00-10.03  sec  23.8 GBytes  20.4 Gbits/sec    2            sender
[ 19]   0.00-10.00  sec  23.8 GBytes  20.4 Gbits/sec                  receiver
[ 21]   0.00-10.03  sec  22.9 GBytes  19.6 Gbits/sec    1            sender
[ 21]   0.00-10.00  sec  22.9 GBytes  19.7 Gbits/sec                  receiver
[ 23]   0.00-10.03  sec  21.9 GBytes  18.7 Gbits/sec    7            sender
[ 23]   0.00-10.00  sec  21.9 GBytes  18.8 Gbits/sec                  receiver
[ 25]   0.00-10.03  sec  21.1 GBytes  18.0 Gbits/sec   10            sender
[ 25]   0.00-10.00  sec  21.1 GBytes  18.1 Gbits/sec                  receiver
[ 27]   0.00-10.03  sec  17.6 GBytes  15.1 Gbits/sec    6            sender
[ 27]   0.00-10.00  sec  17.6 GBytes  15.2 Gbits/sec                  receiver
[SUM]   0.00-10.03  sec   207 GBytes   177 Gbits/sec   86             sender
[SUM]   0.00-10.00  sec   207 GBytes   178 Gbits/sec                  receiver
```

</details>


## Contributing

If you would like to submit your contribution, please open a [Pull Request](https://github.com/0x676e67/vproxy/pulls).

## Getting help

Your question might already be answered on the [issues](https://github.com/0x676e67/vproxy/issues)

## License

**vproxy** © [0x676e67](https://github.com/0x676e67), Released under the [GPL-3.0](./LICENSE) License.