V2Conf helps you build V2Ray Config file automatically and evaluate and change config rules based on outbounds performances.
Project description
V2Conf
V2Conf helps you build V2Ray configuration files automatically and evaluate and modify configuration rules based on outbound performance.
Installation & Running
sudo apt-get install pipx && pipx install --python python3.9 v2conf;
sudo $(which v2conf) /home/ubuntu/confs -n 10 --no-geoip --country-code 'IR' --jalali --log-file /home/ubuntu/v2conf.log
Recommended Usage
sudo $(which v2conf) /home/ubuntu/confs -n 5 -s 900 --timeout-penalty 10 --ema 8,1.25 --no-geoip --country-code 'IR' --log-level error --jalali -w "https://dl-cdn.alpinelinux.org/alpine/v3.17/releases/x86/alpine-minirootfs-3.17.1-x86.tar.gz" --log-file /home/ubuntu/v2conf.log
With these flags and settings, V2Conf will download the selected file every 15 minutes (900 / 60 = 15) 10 times for each outbound.
V2Conf will print logs in Jalali date times in /home/ubuntu/v2conf.log
and stdout
simultaneously and it will exclude IPs for Iran. (useful for domestic Iranian VPSs)
--timeout-penalty 15
makes the program to consider a failed test as a test with 15 seconds latency and based on exponential moving average of last 8
evaluations (past 2 hours) and weighting more importance on recent evaluations (2
times for every new evaluation) choose the best outbound and route all data within that.
--log-level error
indicates that V2Ray log level will be error
.
For using it with xray
you can specify -c /usr/local/etc/xray/config.json
and -p xray
flags.\
Details
V2Conf expects a directory with this structure from you:
confs/
├── inbounds # an "inbounds" directory
│ └── main_entry.json
├── outbounds # an "outbounds" directory
│ ├── blocked.json
│ ├── direct.json
│ ├── trojan_h2.json
│ ├── trojan_ws_cloudflare.json
│ ├── vless_h2.json
│ └── vless_ws_cloudflare.json
└── rules # a "rules" directory
├── ir.json
└── private.json
where each inbound, outbound or rule should be saved as a json file (*.json).
e.g. main_entry.json
:
{
"port": 6060,
"protocol": "trojan",
"settings": {
"clients":
...
and all configs must have a tag! P.S.: Thanks to Tushar V2Conf now supports JSON5 format for configs.
Usage
usage: v2conf [-h] [-c CONFIG_FILE] [-p PROCESS_NAME] [--country-code COUNTRY_CODE] [--no-geoip] [-t TIMEOUT] [-w WEBSITE] [-n NUM_OF_TRIES] [--timeout-penalty TIMEOUT_PENALTY] [--ema EMA] [-s SLEEP_TIME]
[-l {debug,info,warning,error,none}] [-q | --log-file LOG_FILE] [--jalali] [--stats] [--stats-port STATS_PORT] [--sys-only | --users-only] [-v]
[path_conf_dir]
positional arguments:
path_conf_dir Select configuration directory, default is $PWD.
optional arguments:
-h, --help show this help message and exit
-c CONFIG_FILE, --config-file CONFIG_FILE
Select configuration file, default is '/usr/local/etc/v2ray/config.json'.
-p PROCESS_NAME, --process-name PROCESS_NAME
Select the process name, default is 'v2ray'. If you are using 'xray' set it here and in the custom config file path in '-c' flag.
--country-code COUNTRY_CODE
Exclude a country from the list of IPs to be routed; default is 'IR'. (ISO 3166-1 alpha-2)
--no-geoip Instead of using V2Ray GeoIP database, downloading IPs from 'ripe.net' (more recent IPs but may slow V2Ray)
-t TIMEOUT, --timeout TIMEOUT
Set the timeout for checking the health of proxies, default is 15 seconds.
-w WEBSITE, --website WEBSITE
Set the website to be used for checking the health of proxies, default is 'https://facebook.com'.
-n NUM_OF_TRIES, --num-of-tries NUM_OF_TRIES
Set the number of tries for checking the health of proxies, default is 10.
--timeout-penalty TIMEOUT_PENALTY
Converting timeouts to latency by this factor (in seconds), DISABLED by default.
--freedom-tag FREEDOM_TAG
Explicitly set the tag for the freedom (direct) outbound.
--ema EMA Instead of choosing OutBound based on latest evaluation, rank based on exponential moving average of last Nth tests and smoothing variable. (e.g. --ema 10,2.5) DISABLED by default.
-s SLEEP_TIME, --sleep-time SLEEP_TIME
Set the sleep time between each checkup, default is 1,800s. (in seconds)
-l {debug,info,warning,error,none}, --log-level {debug,info,warning,error,none}
Set the V2Ray log level, default is 'warning'.
-q, --quiet No log file (V2Conf). (printing to stdout anyway)
--log-file LOG_FILE Path for V2Conf log file. default is '$PWD/V2Conf.log'
--jalali Use Jalali datetime for V2Conf logging
--stats Activating traffic statistics
--stats-port STATS_PORT
Set the port for statistics API. Default is: 10085
--sys-only Only system traffic statistics
--users-only Only users traffic statistics
-v, --version Show version and exit.
Written by: Mahyar Mahdavi <Mahyar@Mahyar24.com>. License: GNU GPLv3. Source Code: <https://github.com/mahyar24/V2Conf>. Reporting Bugs and PRs are welcomed. :)
More Tools
Check out these Gist files for more tools:
- V2Ray-Traffic - a script for monitoring V2Ray traffic.
- V2Ray-Abnormal - a script for monitoring V2Ray abnormal IP connections.
- V2Ray-Abnormal-Polars - a script for monitoring V2Ray abnormal IP connections implemented with Polars.
- V2Ray-IP-GeoLocation - a script for checking IP GeoLocations of users.
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Contact me: OSS@Mahyar24.com :)
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file v2conf-0.1.9.tar.gz
.
File metadata
- Download URL: v2conf-0.1.9.tar.gz
- Upload date:
- Size: 26.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.9.5 Linux/6.5.0-41-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a85279ea64f4a817eb041b6d0d2b819b1dc2a7e4bf4977a21515604906175c4 |
|
MD5 | 5394fe29f8e12c01a59edef9dadccbda |
|
BLAKE2b-256 | 1c83bceff85d36fc5bfc8adc6e85f6ffaa9a57a2ef5976cbfd4b92631c23ee5e |
File details
Details for the file v2conf-0.1.9-py3-none-any.whl
.
File metadata
- Download URL: v2conf-0.1.9-py3-none-any.whl
- Upload date:
- Size: 27.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.1 CPython/3.9.5 Linux/6.5.0-41-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4e9db88e9ca245496cba3ea92f5adb724d4a801fa6486a75f27eec34a248ff9d |
|
MD5 | 492dc0fbb49c4774062b3cdfe78c5f0c |
|
BLAKE2b-256 | eaea240c5a52142230d8fcc7dee6dad037054357eb7729b8415e8e3eceb9c75e |