Basic scripts and tools for the Nym network
This project has been made initialy to provide an easy way to deploy a Nym open proxy to allow those with restricted internet access to browse or let their applications to connect to an existing deployed proxy. More features will be added in next releases.
The project itself is still experimental and don't provide support for custom gateways yet.
If you are looking for something much simpler just to run applications like Electrum Wallet, Keybase or Telegram desktop, please skip this project and take a look at NymConnect or here.
- Server
- Tested on Ubuntu Server 20.04.x
- Client
- Tested on Pop!_OS 20.04.x
Should work on any Ubuntu 20.04.x based clients.
- Server
- Client
Clone the project:
$ git clone https://github.com/Jiab77/nym-tools.git
Get binaries with the related script:
$ cd nym-tools
$ ./get-binaries.sh
This section is only required for those who want to deploy their own Nym open proxy server.
You must initialize the binaries before using them.
To initialize the nym-client and the nym-network-requester you can run the init-server.sh script that way:
$ cd ~/nym-tools
$ ./init-server.sh
The script assume that you've created a dedicated
nym
user.You can specify another user by adding
--user <username>
as argument.
To run the nym-client and the nym-network-requester services you can use the provided install-service.sh
scripts that way:
$ cd ~/nym-tools
$ sudo ./nym-client/install-service.sh
$ sudo ./nym-network-requester/install-service.sh
The script assume that you've created a dedicated
nym
user.You can specify another user by adding
--user <username>
as argument.
$ sudo journalctl -fn1000 -u nym-client.service -u nym-network-requester.service
This section is only required for those who want to connect their apps to an existing Nym open proxy server.
You must initialize the binaries before using them.
To initialize the nym-socks5-client you can run the init-client.sh with the provider address of your own server or another one script that way:
$ cd ~/nym-tools
$ ./init-client.sh --provider <client-address-from-server>
The script assume that you've created a dedicated
nym
user.You can specify another user by adding
--user <username>
as argument.
To run the nym-socks5-client you can use the provided install-service.sh
script that way:
$ cd ~/nym-tools
$ sudo ./nym-socks5-client/install-service.sh
The script assume that you've created a dedicated
nym
user.You can specify another user by adding
--user <username>
as argument.
$ sudo journalctl -fn1000 -u nym-socks5-client.service
Once the client service is running, you can configure your applications to use your local Nym SOCKS5
client.
Unlike Tor, Nym is not really made web for anonymous web browsing so even if it works, expect it to be crazily slow!
- With user profile + Incognito mode:
$ chromium-browser --new-window --incognito --proxy-server="socks5://localhost:1080" https://example.com
- No user profile + Incognito mode:
$ chromium-browser --temp-profile --new-window --incognito --proxy-server="socks5://localhost:1080" https://example.com
Go to Settings -> Advanced -> Connection type then apply the following settings:
Click on Save to finish.
I haven't tested calls within the proxy yet so please let me know if you tried with the option Use proxy for calls checked and it worked.
You should see this icon at the bottom left when enabled:
To configure proxychains to use your local Nym SOCKS5
client, you simply add a new line in the file /etc/proxychains.conf
:
socks5 127.0.0.1 1080
Make sure to not have Tor enabled in same time by commenting the line:
# socks5 127.0.0.1 9050
You should be able to use several proxies with proxychains but for simplicity I prefer use one single unique proxy. I might explain later how to make it work with several proxies.
You can also run the following commands for patching the config file:
# Disable existing socks proxies
sudo sed -e 's/socks4 /# socks4 /' -e 's/# # socks4 /# socks4 /' -e 's/socks5 /# socks5 /' -e 's/# # socks5 /# socks5 /' -i /etc/proxychains.conf
# Enable Nym socks5 client proxy
echo "socks5 127.0.0.1 1080" | sudo tee -a /etc/proxychains.conf
Now you can test if it worked. Here are some example commands / uses:
- With
nmap
$ sudo proxychains4 -q nmap -A -vv -sS example.com
- With
testssl.sh
$ cd testssl.sh-3.0.5/
$ sudo proxychains4 -q ./testssl.sh https://example.com
- With
w3m
$ sudo proxychains4 -q w3m https://example.com
Very slow but works.
$ curl -x "socks5://localhost:1080" https://example.com
$ wappalyzer --pretty --proxy "socks5://localhost:1080" https://example.com
- @jiab77 - Project
- @hackerschoice - Support