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-clientwithnpm, edit a customanonrcand start the client withnpx.
npm install @anyone-protocol/anyone-clientBackup 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/anonrcTo be able to route traffic through anon, add some configuration to the
anonrcfile:
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
EOLHiddenServiceDir 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-clientwith the customanonrc:
npx anyone-client -f ./anon/anonrcTo get your service address (open a new terminal window and) check the
hostnamefile located in./anon/anon_service/:
cat ./anon/anon_service/hostnameThis file contains the hidden service address (your .onion address) for your hidden service.
Install the anon client as a service on Debian, edit the default anonrc and restart the anon.service.
Set up the Anyone Protocol apt repository and install the anon packages:
. /etc/os-release
sudo wget -qO- https://deb.en.anyone.tech/anon.asc | sudo tee /etc/apt/trusted.gpg.d/anon.asc
sudo echo "deb [signed-by=/etc/apt/trusted.gpg.d/anon.asc] https://deb.en.anyone.tech anon-live-$VERSION_CODENAME main" | sudo tee /etc/apt/sources.list.d/anon.listsudo apt-get update --yes
sudo apt-get install anon --yesBackup default configuration and create a custom
anonrc:
[ -f /etc/anon/anonrc ] && mv /etc/anon/anonrc /etc/anon/anonrc_$(date +"%Y%m%d_%H%M%S").bak
touch /etc/anon/anonrcTo be able to route traffic through anon, add some configuration to the
anonrcfile:
sudo cat <<EOL | sudo tee /etc/anon/anonrc
ORPort 0
ControlPort 0
SocksPort 127.0.0.1:9050
SocksPolicy accept 127.0.0.1
SocksPolicy reject *
DataDirectory /var/lib/anon/
HiddenServiceDir /var/lib/anon/anon_service/
HiddenServicePort 80 127.0.0.1:80
EOLRestart the
anonservice:
sudo systemctl restart anon.serviceHiddenServiceDir This directory will store hidden service data and keys. Ensure the specified directory has the correct permissions and is writable by the anon service. HiddenServicePort This redirects traffic from the hidden service to the local nginx server on port 80.
To get your service address check the
hostnamefile located in./anon/anon_service/:
sudo cat /var/lib/anon/anon_service/hostnameThis file contains the hidden service address (your .onion address) for your onion 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 --yesStart and Enable nginx:
sudo systemctl start nginx
sudo systemctl enable nginxCreate 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.htmlCreate a new nginx configuration file for your service:
sudo nano /etc/nginx/sites-available/anon_servicePaste 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 nginxTest 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)"