Socks5 proxy server
Prerequisites
- Docker (Install Docker)
- Docker Compose (Install Docker Compose)
How to run
- Copy .env.example file:
cp .env.example .env
- Fill in configuration:
nano .env
. Fields:- APP_PORT - proxy server port (default: 54321),
- LOG_LEVEL - log level (default: INFO),
- REQUIRE_AUTH - if set to 1, anonymous users are not allowed.
- Start application:
docker-compose up -d
CLI commands
In all commands you need to call js-script in app docker container.
So you need to find out container name with proxy application by running the following command:
docker-compose ps
For example, it will be socks5proxy_proxy_1
.
In all the following commands you need to replace socks5proxy_proxy_1
with the yours container name.
Create user
docker exec -it socks5proxy_proxy_1 sh -c 'exec node scripts/create-user.js'
Delete user
docker exec -it socks5proxy_proxy_1 sh -c 'exec node scripts/delete-user.js'
Show users statistics
docker exec -it socks5proxy_proxy_1 sh -c 'exec node scripts/users-stats.js'
Telegram bot for administration
Configuration
- Initialize bot at @botfather, get API token
- Set params in .env:
- PUBLIC_URL - URL to server. E.g. http://proxy.domain.com:8443
- TELEGRAM_API_TOKEN - API token from BotFather
- TELEGRAM_WEBHOOK_URL - default: /webhook
- TELEGRAM_USE_WEBHOOKS - 1 - use webhooks, 0 - use polling. To use webhooks you need to generate ssl certificates
- Create admin:
docker exec -it socks5proxy_telegram_bot_1 sh -c 'exec node scripts/create-admin.js'
Available commands
/users_stats
- show data usage statistics per user/create_user
- create new proxy user/delete_user
- delete proxy user/get_users
- get list of proxy users/generate_pass [length]
- generate random password with specified length (10 by default)