Anyone Services I
Setting Up Hidden Services on the Anyone Network
This guide gives an example and explains how to set up hidden services on the Anyone Network. There are several options to run anon. The following tabs explain how to install it as a Debian package using our APT repository or via command line tools using the NPM package. Alternatively see the page called Install Anon in Docker to find Docker instructions. Or read the Anon Client Releases page where you'll find instructions and links to examples utilizing the Anyone Protocol GitHub Releases.
Install the
anyone-client
withnpm
, edit a customanonrc
and start the client withnpx
.
npm install @anyone-protocol/anyone-client
Backup any existing configuration and create a custom anonrc:
mkdir -p ./anon
[ -f ./anon/anonrc ] && mv ./anon/anonrc ./anon/anonrc_$(date +"%Y%m%d_%H%M%S").bak
touch ./anon/anonrc
To be able to route traffic through anon, add some configuration to the
anonrc
file:
cat <<EOL | tee ./anon/anonrc
ORPort 0
ControlPort 0
SocksPort 127.0.0.1:9050
SocksPolicy accept 127.0.0.1
SocksPolicy reject *
DataDirectory ./anon/
HiddenServiceDir ./anon/anon_service/
HiddenServicePort 80 127.0.0.1:80
EOL
HiddenServiceDir This directory will store hidden service data and keys. Ensure the specified directory has the correct permissions and is writable by anyone-client.
HiddenServicePort This redirects traffic from the hidden service to the local nginx server on port 80.
Start the
anyone-client
with the customanonrc
:
npx anyone-client -f ./anon/anonrc
To get your service address (open a new terminal window and) check the
hostname
file located in./anon/anon_service/
:
cat ./anon/anon_service/hostname
This file contains the hidden service address (your .onion
address) for your hidden service.
Install and Configure nginx to run a web server
In this example we'll be setting up a local web server with Nginx to host some content.
Install nginx
:
sudo apt update --yes
sudo apt-get install nginx --yes
Start and Enable nginx
:
sudo systemctl start nginx
sudo systemctl enable nginx
Create an index.html
in /var/www/html
file as a basic test:
echo "Welcome to my Anyone Anon Service" | sudo tee /var/www/html/index.html
Create a new nginx configuration file for your service:
sudo nano /etc/nginx/sites-available/anon_service
Paste the following configuration and save to route requests to your anon service:
server {
listen 127.0.0.1:80;
server_name localhost;
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Link the configuration to the sites-enabled
directory:
sudo ln -s /etc/nginx/sites-available/anon_service /etc/nginx/sites-enabled/
Reload nginx
to apply the changes:
sudo systemctl reload nginx
Test the rechability of the web server locally with curl
:
curl "http://127.0.0.1:80"
Test the reachability of the web server's hostname, located in ./anon/anon_service/hostname
, using curl --socks5-hostname
:
curl --socks5-hostname 127.0.0.1:9050 "http://$(cat ./anon/anon_service/hostname)"
Last updated