Proxy manager
A forward HTTP/HTTPS proxy on your side, to accelerate/compress/rotate/distribute/manage/monitor/report/log/debug traffic to your proxies around the world.
With Proxy manager you can drive the Bright Data residential IPs or Bright Data static IPs.
This tool requires a Bright Data account.
Please report issues or bugs to your account manager or from our help center
Read this in 中文.
Features
- Highly scalable
- Connection pool for faster response time
- Easy setup for multiple configurations using a simple web interface
- Statistics
- Automatically rotate IP every X requests
- Load balancing using multiple Super Proxies
- SSL analyzing (using a self-signed certificate)
- SOCKSv5 proxy
Minimal requirements
Recommended requirements
Installation
Windows
Download the Proxy Manager installer
Linux/MacOS - Install script
- Run the setup script to install
wget -qO- https://brightdata.com/static/lpm/luminati-proxy-latest-setup.sh | bash
Or
curl -L https://brightdata.com/static/lpm/luminati-proxy-latest-setup.sh | bash
Linux/MacOS - Manual install
- Install Node.js (nodejs.org)
Node.js version for the proxy manager should be at least 14.19.0 and not
newer than version 20.12.1
- Make sure npm version at least is 6.14.6 and not newer than version 8.1.3
- if not, run:
sudo npm install -g npm@6.14.6
- Install Proxy Manager from the terminal prompt:
sudo npm install -g @luminati-io/luminati-proxy
- If you use npm version higher then 6 please add '--legacy-peer-deps' flag:
sudo npm install -g @luminati-io/luminati-proxy --legacy-peer-deps
If you are trying to install the Proxy Manager from china on Mac/Linux please run the following command first to make sure npm is installing with allowed registry:
npm config set registry https://r.cnpmjs.org/
After this command ran successfully install using:
sudo npm install -g @luminati-io/luminati-proxy --allow-root
Upgrade
sudo npm install -g @luminati-io/luminati-proxy
Or use the cli command:
proxy-manager --upgrade
Specific Version
-
To install a specific proxy manager version, choose a version from
releases
-
Run (VERSION_NUMBER is the version you've chosen (example: 1.75.355)):
sudo npm install -g @luminati-io/luminati-proxy@VERSION_NUMBER
Release Notes
You can review the CHANGELOG.md for list of changes in every version
Usage
First run
After running the app for the first time:
proxy-manager
Point your browser to the app admin UI
http://127.0.0.1:22999 to set up credentials
and configure your proxies.
Run as daemon
To run the proxy manager in the background:
proxy-manager --daemon
Dropin replacement for existing super-proxies
Proxy Manager comes with a "dropin mode" which behaves exactly like the
existing super-proxies. When running a proxy in dropin mode, you do not need to
sign in via the administrative UI in order to make requests through your
proxies. Rather, the proxy username and password are provided with each request
to the proxy server. This mode is enabled by default, and you can use this mode
as an easy replacement when migrating from the regular super-proxy to the Proxy
Manager.
Dropin mode is enabled by default. To disable the dropin proxy, use the flag
--no-dropin
:
proxy-manager --no-dropin
For full documentation on the API for making requests through the dropin proxy,
see the
API Example page in your Bright Data account.
Complete list of command line options
proxy-manager --help
Usage:
proxy-manager [options] config1 config2 ...
Options:
-h, -?, --help Show help [boolean]
-v, --version Show version number [boolean]
-p, --port Port for the HTTP proxy [number]
--proxy_type Set to "persist" to save proxy into the
configuration file. [string]
--multiply Multiply the port definition given number of
times [number] [default: 0]
--multiply_users [boolean] [default: false]
--users List of users. This option has to be used
along with "multiply_users" [array]
--ssl Enable SSL analyzing
[boolean] [default: false]
--tls_lib SSL library [string] [default: "open_ssl"]
--av_check Enable antivirus check
[boolean] [default: false]
--iface Interface or IP to listen on [string]
--customer Customer name [string]
--zone Zone name [string] [default: "static"]
--password Zone password [string]
--proxy Hostname or IP of super proxy
[string] [default: "brd.superproxy.io"]
--proxy_port Super proxy port [number] [default: 22225]
--proxy_connection_type Determines what kind of connection will be
used between Proxy Manager and Super Proxy
[string] [default: "http"]
--proxy_retry Automatically retry on super proxy failure
[number] [default: 2]
--insecure Enable SSL connection/analyzing to insecure
hosts [boolean]
--country Country [string]
--state State [string]
--city City [string]
--zip Zip code [string]
--asn ASN [string]
--ip Data Center IP [string]
--vip gIP [number]
--ext_proxies A list of proxies from external vendors.
Format: [username:password@]ip[:port] [array]
--ext_proxy_username Default username for external vendor ips
[string]
--ext_proxy_password Default password for external vendor ips
[string]
--ext_proxy_port Default port for external vendor ips [number]
--dns DNS resolving [string] [default: "local"]
--reverse_lookup_dns Process reverse lookup via DNS
[boolean] [default: false]
--reverse_lookup_file Process reverse lookup via file [string]
--reverse_lookup_values Process reverse lookup via value [array]
--session Session for all proxy requests
[string] [default: true]
--sticky_ip Use session per requesting host to maintain
IP per host [boolean] [default: false]
--pool_size [number]
--rotate_session Session pool size [boolean] [default: false]
--throttle Throttle requests above given number
[number] [default: ""]
--rules Proxy request rules [array]
--route_err Block or allow requests to be automatically
sent through super proxy on error
[string] [default: "pass_dyn"]
--smtp [array]
--override_headers [boolean]
--os Operating System of the Peer IP [string]
--headers Request headers [array]
--debug Request debug info default value
[string] [default: "none"]
--lpm_auth x-lpm-authorization header
[string] [default: "none"]
--const [boolean] [default: false]
--multiply_ips [boolean] [default: false]
--multiply_vips [boolean] [default: false]
--max_ban_retries [number] [default: 10]
--preset [string] [default: "session_long"]
--ua Unblocker Mobile UA[boolean] [default: false]
--timezone Timezone ID to be used by the browser[string]
--resolution Browser screen size [string]
--webrtc WebRTC plugin behavior in the browser[string]
--bw_limit BW limit params
--follow_redirect Auto redirect requests
[boolean] [default: false]
--render Process scripts from HTML pages [boolean]
--whitelist_ips Default for all proxies whitelist ip list for
granting access to them [array] [default: []]
--www_whitelist_ips Whitelist ip list for granting access to
browser admin UI [array] [default: []]
--www HTTP and WebSocket port used for browser
admin UI and request logs [default: 22999]
--config Config file containing proxy definitions
[string]
--mode Defines a set of permissible operations
within the UI/API [string]
--dropin Create dropin mode proxy port (default:
22225) [boolean] [default: true]
--dropin_port Port for dropin mode [default: 22225]
--no_usage_stats Disable collection of usage statistics
[boolean] [default: false]
--lpm_token An authorization token [string]
--high_perf [boolean] [default: false]
--zagent [boolean] [default: false]
--reseller [boolean] [default: false]
--cluster [string] [default: true]
--sync_config Synchronize Proxy Manager configuration with
the cloud [boolean] [default: false]
--sync_zones [boolean] [default: true]
--sync_stats [boolean] [default: true]
--request_stats Enable requests statistics
[boolean] [default: true]
--test_url Url for testing proxy
[string] [default: "http://geo.brdtest.com/mygeo.json"]
--log Log level [string] [default: "notice"]
--logs Number of request logs to store
[number] [default: 1000]
--logs_settings Settings for logs remote delivery
[default: {}]
--har_limit Number of bytes to store
[number] [default: 1024]
--ports_limit Limit the numer of open proxy ports at the
same time [default: 10000]
--ui_ws Enable live logs preview and other live data
communication on the UI
[boolean] [default: true]
--force Kill other instances of Proxy Manager if
there are any [boolean] [default: false]
--session_termination Stop sending new requests when the peer IP
becomes unavailable and redirect to
confimration page before new IP is taken
[boolean] [default: false]
--api Alternative url to luminati API [string]
--api_domain Alternative domain url to luminati API
[string] [default: "lum-lpm.com"]
--pmgr_domain Alternative domain url to Proxy Manager
[string]
--local_login Requires each browser to authenticate against
Proxy Manager [boolean] [default: false]
--read_only Avoid saving current config in the config
file [boolean] [default: false]
--extra_ssl_ips List of IPs to add to SSL certificate
[array] [default: []]
--bw_limit_webhook_url URL to send webhook messages to when BW limit
is reached [string]
--bw_th_webhook_url URL to send webhook messages to when BW limit
threshold is reached [string]
--new_ui Enable UiKit UI [boolean] [default: false]
--api_body_limit Controls the maximum request body size
[string] [default: "2mb"]
--api_parameter_limit Controls the maximum number of parameters
that are allowed in the URL-encoded data
[number] [default: 10000]
--socket_inactivity_timeout The amount of time a socket can be inactive
before it times out and closes
[default: 120000]
--no-www Disable local web
--no-config Working without a config file
-d, --daemon, --start-daemon Start as a daemon
--restart-daemon Restart running daemon
--stop-daemon Stop running daemon
--delete-daemon Delete daemon instance
--upgrade Upgrade proxy manager
--downgrade Downgrade proxy manager (if backup exists on
disk)
--dir Path to the directory with database and
configuration files
--status Show proxy manager processes current status
--gen-cert Generate cert
--auto-upgrade Enable auto upgrade
--start-upgrader Install CRON process that checks upgrades
--stop-upgrader Removes CRON process that checks upgrades
--insecure-http-parser Disables the strict checks
--proxy_country [default: ""]
--resolve_proxies_interval [default: 10000]
--info [default: false]
--av_server [default: false]
--cn [default: false]
--api_domain_fallback [default: "l-lpm.com"]
Docker
A docker image can be found on https://hub.docker.com/r/luminati/luminati-proxy/
docker pull luminati/luminati-proxy
docker run luminati/luminati-proxy proxy-manager
docker run luminati/luminati-proxy proxy-manager --version
Make sure to forward appropriate ports. Proxy manager uses by default 22999
for the web console and the api, 22225 for dropin and 24000 for first
configurable proxy.
- To run docker with cli option see the below example:
docker run luminati/luminati-proxy proxy-manager --www_whitelist_ips "172.17.0.1" --ssl true
You can add many more options to this run.
Docker with predefined config file
To use lpm's config file, docker volumes can be used:
https://docs.docker.com/storage/volumes/
Following these instructions will make your docker run with a specific config file:
docker volume create lpm-vol
- Inspect the recently created volume
docker inspect lpm-vol
Should output something like this:
[
{
"CreatedAt": "2018-02-01T12:59:58+02:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/lpm-vol/_data",
"Name": "lpm-vol",
"Options": {},
"Scope": "local"
}
]
- Take the mountpoint path /var/lib/docker/volumes/lpm-vol/_data and run
cd /var/lib/docker/volumes/lpm-vol/_data
- put .luminati.json to this directory (here also will be the logs and other
files generated by the container)
- run docker image and attach this volume:
docker run --rm --name 'lpm1' --mount source=lpm-vol,target=/root
"luminati/luminati-proxy" proxy-manager
SSL Requests
The --ssl parameter is for SSL analyzing, HTTPS requests can be made without it.
Help
The FAQ can be found on the Bright Data
FAQ
If you do not find the answer there, feel free to open an
issue on github.
Or contact support@brightdata.com.
REST API
Working documentation of the API can be found inside the app.
The API also can be found on the Bright Data here