Install 9Hits Viewer#
This page shows how to install Viewer on Windows, Linux or Docker. Every method needs an access key: a 32-character hex string from your profile page.
Windows#
Requires Windows 10 or Windows Server 2012 R2 or later (64-bit), a 2GHz CPU and at least 2GB of RAM.
- Sign in to the dashboard and download the Windows version at https://dash.9hits.com/apps/downloads.
- Extract it to a folder, then run the
nhviewerfile inside it. - Click the
Settingsbutton (gear icon), paste your access key into theAccess Keyfield and clickSave. Viewer remembers the key for next time.
Linux#
On Linux with a desktop, Viewer runs and works exactly like the Windows version. On a server or VPS without a display, use the background install script.
Requires 64-bit Linux (x86_64): Ubuntu 20.04+, Debian 11+, Fedora 36+, CentOS Stream, RHEL, Rocky or AlmaLinux 9+ (Ubuntu 22.04 or Debian 12 recommended).
Linux with a desktop#
-
Install the libraries Viewer needs. Desktop systems usually have almost all of them already; run the command below to be sure:
-
Download the Linux version at https://dash.9hits.com/apps/downloads, extract it into a folder you can write to, then run
nhviewerfrom that folder: -
Click the
Settingsbutton, paste your access key into theAccess Keyfield and clickSave, the same as on Windows.
To have the sessions start as soon as Viewer opens, launch it with ./nhviewer --auto-start. Add this
command to your desktop's startup applications if you want Viewer to run every time you log in.
Headless servers#
On a VPS or a server without a desktop, the script below installs Viewer to run in the background
under systemd. Run the following command, replacing <key> with your access key and adding
options if needed:
curl -sSLk https://9hitste.github.io/install/v6/install.sh | sudo bash -s -- --access-key=<key> [options]
- The script needs systemd and root privileges. On a machine without systemd, use Docker.
- Viewer is installed to
/opt/9hits(change it with--install-dir) and restarts by itself after a crash and when the machine reboots. - On the first run, the script installs the required system packages itself; add
--skip-install-depsto skip this. - To change the configuration, run the command again with the new options. Add
--clear-all-sessionsto delete the old sessions instead of adding to them.
screen -r 9hits # view the live status table
journalctl -u 9hits -f # view logs (when the machine has no screen)
systemctl status 9hits # service status
systemctl restart 9hits # restart
systemctl disable --now 9hits 9hits-xvfb # stop for good, no automatic restart
Docker#
If the machine already has Docker, this is the fastest way:
docker run -dit --network=host --shm-size=2g --name=9hits 9hitste/appv6 /nh.sh --access-key=<key> [options]
-dit runs in the background, -it keeps the terminal attached. The container restarts Viewer by
itself when it crashes.
A TTY is required
Always use -it or -dit. Without a TTY (just -d), the container exits immediately and keeps
restarting, and Viewer cannot run.
docker attach 9hits # view the status table; detach with Ctrl+P then Ctrl+Q so the container keeps running
docker logs -f 9hits # view logs
Options#
The Linux script and the Docker command accept the same options below, except where noted. yes/no
options default to yes, except --hide-browser, which defaults to no.
| Option | Meaning |
|---|---|
--access-key |
Access key (required) |
--note |
Machine name, shown on the Remote control page |
--allow-popups, --allow-adult, --allow-crypto |
yes/no: accept campaigns with popups, adult content, crypto mining |
--hide-browser |
yes/no: hide the browser window |
--system-session |
Create one session that uses the machine's real IP |
--ex-proxy-sessions + --ex-proxy-url |
Number of sessions that get proxies from a proxy pool, and the pool URL (leave empty to use 9Hits proxies) |
--bulk-add-proxy-list + --bulk-add-proxy-type |
One session per proxy. The list is "server:port;user;pass|server:port;user2;pass2", the type is http, socks4, socks5 or ssh |
--session-note |
Note for every session created in this run |
--clear-all-sessions |
Delete all old sessions before applying the new configuration |
--cache-limit |
Disk cache limit (bytes), for example 104857600 (100MB); 0 turns the cache off |
--reset-interval |
Restart Viewer on a schedule, for example 6h. Leave empty to restart only after a crash |
--install-vnc (Linux), --vnc (Docker) |
Turn on VNC to watch the browser screen with a VNC client, default port 5901 (change it with --vnc-port) |
--vnc-pw |
VNC password; leave empty to generate one and print it to the terminal. On Docker, setting --vnc-pw turns VNC on |
--create-swap |
(Linux) Create swap, for example --create-swap=10G, to help low-RAM machines run more stably |
Run multiple sessions#
Each IP can carry only one session: a second session on the same IP is reported as a duplicate, so running more Viewers on the same IP does not earn more points. To run several sessions, give each session its own proxy; see Managing sessions.