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 中文.
- 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
- 2GB RAM
- 1 CPU
- 3GB HDD
- 4GB RAM
- 2 CPUs
- 3GB SSD
Download the Proxy Manager installer
- 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
- Install Node.js 12 (nodejs.org) Node.js version for the proxy manager should be any at least 12.18.3
- Make sure npm version is 6.14.6 or higher
- if not, run:
sudo npm install -g [email protected]
- if not, run:
- Install Proxy Manager from the terminal prompt:
sudo npm install -g @luminati-io/luminati-proxy
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
- Use npm to upgrade
sudo npm install -g @luminati-io/luminati-proxy
Or use the cli command:
proxy-manager --upgrade
-
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
You can review the CHANGELOG.md for list of changes in every version
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.
To run the proxy manager in the background:
proxy-manager --daemon
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.
proxy-manager --help
Usage:
proxy-manager [options] config1 config2 ...
Options:
--help, -h, -? Show help [boolean]
--version, -v Show version number [boolean]
--port, -p 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"]
--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: "zproxy.lum-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]
--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]
--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 [string] [default: "full"]
--socket_inactivity_timeout [number] [default: 120000]
--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]
--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]
--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://lumtest.com/myip.json"]
--log Log level [string] [default: "notice"]
--logs Number of request logs to store
[number] [default: 1000]
--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"]
--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: []]
--no-www Disable local web
--no-config Working without a config file
--daemon, -d, --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: ""]
--bw_limit [default: 0]
--info [default: false]
--cn [default: false]
--api_body_limit [default: "2mb"]
--api_domain_fallback [default: "l-lpm.com"]
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.
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:
- create volume
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
The --ssl parameter is for SSL analyzing, HTTPS requests can be made without it.
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 [email protected].
Working documentation of the API can be found inside the app.
The API also can be found on the Bright Data here