Pawns.app with Raspberry PI: passive income by sharing internet bandwidth
Last Updated on 2nd September 2023 by peppe8o
In this tutorial, I’m going to show you how to install IProyal on your Raspberry PI in a way that assures your privacy with the help of Docker.
Earning with your Raspberry PI running all day for other services is possible by sharing your internet bandwidth with service providers and granting IP proxies to other customers for works like marketing research and similar stuff. For your Raspberry PI, Pawns.app (previously IProyal) is one of the most famous and established providers in this perspective
What is Pawns.app
Pawns.app was previously known as IPRoyal up to Sept 2022. Then it had a rebranding to its actual name.
Basically, Pawns.app is a proxy service, with its company address in Canada. Their customers usually make use of this proxy service for uses such as, for example:
- Business intelligence
- Search engine optimization
- App testing
- Content delivery
- Brand protection
- Ad verification
- Market research
For this reason, they ask people to share their internet connection so that their services can cover more world parts and their customers can, for example, see how their products are shown with different eyes (your internet access).
It also offers a simple desktop in order to get a fast overview of your account and earnings:
Moreover, it offers an affiliate program that allows you to get part of Pawns.app earnings when your friends use your affiliate link.
Pawns.app average rates
The revenue for people sharing their bandwidth depends on the amount of traffic you share (in GB), how long you keep the application running and the market answer for having access from your country. However, the average rate is 0.20USD per 1GB shared. Your earnings can be transferred by Paypal (minimum payout amount: $5, with 0.25 USD fee), Bitcoin (minimum payout amount: $5, with 1.50 USD fee) and VISA (minimum payout amount: $5, with 0 USD fee). Earnings can be increased by using their affiliate program: for every person you invite, IProyal will share part of the company earnings with you without affecting the invited person’s earnings.
Surely it will not make you able to exit your job, but it can give you enough money to buy a new Raspberry PI with cool sensors to try.
Privacy and Security Questions
For this kind of service, the main questions for people installing the internet sharing app concern security and privacy aspects. I’ve routed these questions to IProyal and these have been their answers:
Giuseppe’s question: Common questions from users has been regarding the security on people/company using my Raspberry PI, main one being:
– how can I rest assured that my connection/IP will never be used for illecit traffic?
– how can I rest assured that the connection will not scan/access in my local area networkPawns.app answer: I completely understand the concern from your users, therefore we at IPRoyal take key steps to ensure that everything is done in a secure way so our users would feel safe earning money with IP Royal Pawns.
Here’s a quick rundown of how we ensure the service is safe to use:
– All our clients need to confirm their identity by providing their name and valid documents, we carefully vet who is using your traffic.
– The app itself has no access to your storage and does not gather any personal data or scan networks.
– Our in-house team monitors the traffic rigorously.
– The IPRoyal network is used by businesses for research in e-commerce, marketing, and web intelligence. These companies gather insights from different corners of the web for market analysis, brand protection, ad-fraud prevention, pricing intelligence, travel transport aggregation, and SEO monitoring.You can find more information about this in this article – Is the Pawns App Safe to Use?
So, there is a monitoring team working to make this business clear and legit.
In this guide, I will show you how to install the Pawns.app client on Raspberry PI adding a privacy layer by using Docker: using docker containers enables you to get isolation from your Raspberry PI storage. Moreover, by setting iptables you can deny any kind of traffic from this service to your local network, keeping the IProyal client working without any issue. If you don’t know your network topology and you trust the Pawns.app service, you can also skip the networking step (I will show you how to do it in the following chapters.
What We Need
As usual, I suggest adding from now to your favourite e-commerce shopping cart all the needed hardware, so that at the end you will be able to evaluate overall costs and decide if to continue with the project or remove them from the shopping cart. So, hardware will be only:
- a Raspberry PI computer Board (including proper power supply or using a smartphone micro USB charger with at least 3A)
- high speed micro SD card (at least 16 GB, at least class 10)
Check hardware prices with the following links:
Step-by-Step Procedure
Register a new Account in Pawns.app
With a common browser, go to Pawns.app and signup to create a new account. Please note that your email and password used to register in Pawns.app will be needed in the following steps to correctly start the Raspberry PI client. So, keep them in a local notepad.
Prepare your Raspberry PI
Start installing your Raspberry PI OS. I suggest installing Raspberry PI OS Lite, as in this way you will have a performing OS able to provide your home with a huge number of enhanced services. You can also install Raspberry PI OS Desktop, in this case working from its internal terminal.
Note: in the following, I’ll use the “pi” user. Change with your one if differs.
Make sure your OS is up to date. From the terminal, please issue the following command:
sudo apt update -y && sudo apt upgrade -y
Then install Docker in your Raspberry PI (use the previous link to get a detailed tutorial).
Get Pawns.app Installer Link
First of all, let’s check our running OS architecture. From the terminal, please use this command:
docker run -it --rm debian bash
If the Debian image is not still available, it will download the image and run a container in interactive mode (“-it” options), also removing the container when we’ll exit (“–rm” option”). The container is created and started to run the bash shell (“bash”). So, your shell will change to something similar to “root@1478ded6b4a0:/#” with a prompt. This means that you are working inside the new container. From here:
uname -m
This command will give you the architecture running in your Raspberry PI. For example, my Raspberry PI OS Lite (32-bit) give me the following result:
root@ec6b7252e3cd:/# uname -m
armv7l
So, “armv7l” is my architecture. You can now exit from the container with the following command:
exit
Go to the following Pawns.app page https://pawns.app/cli-download/. From here, copy the link corresponding to your Raspberry PI architecture (it will be “Linux aarch64” or “Linux ARM v7l”) by right-clicking with the mouse and selecting “Copy link address”. Paste this link in your notepad.
At this point, you should have in your notepad the email and password used for Pawns.app registration and the installer link.
Prepare Docker Image for Pawns.app
To arrange our docker image (which you can think of as a sort of template) for Pawns.app, we’ll create a specific folder and a Dockerfile.
Create a new folder (I will use “Pawns” name for this folder, but it can be whatever you prefer) and enter it:
mkdir Pawns
cd Pawns
Create a new file (this must be named “Dockerfile”):
nano Dockerfile
Dockerfile Content for People Knowing Home Network Topology
If you know your local network, we’ll use the UFW (Uncomplicated FireWall) package to manage the container iptables and deny access to the local network. We’ll add an allow rule for our default gateway to the internet (usually the home router) and one (or more) deny rule to forbid access from the container to our home network(s). In the following template for the Dockerfile, you have to change the parts highlighted in red, by using in order:
- Your default gateway to the internet (home router IP address) -> in my case 192.168.1.1
- Your local networks to close for container access -> in my case 192.168.1.0/24. You can also add more networks to deny by adding here more “RUN echo “ufw deny out to x.x.x.0/24″>>fw_rules.sh” rows
- The link referring to your architecture installer -> in my case https://download.iproyal.com/pawns-cli/latest/linux_armv7l/pawns-cli
- Your email address and password used to register in Pawns.app -> in my case I used “[email protected]” and “your_password”
Please note that adding the allow rule for the default gateway before the deny rule for your network, will work also when the router is in the network range as UFW uses the first rule matching the requests.
FROM debian
RUN apt update -y && apt install wget -y
RUN apt install ufw -y
RUN echo "ufw allow out to 192.168.1.1">fw_rules.sh
RUN echo "ufw deny out to 192.168.1.0/24">>fw_rules.sh
RUN wget https://download.iproyal.com/pawns-cli/latest/linux_armv7l/pawns-cli
RUN chmod u+x /pawns-cli
RUN chmod u+x /fw_rules.sh
CMD ufw enable && sh fw_rules.sh && /pawns-cli -email=[email protected] -password=your_password -device-name=raspberrypi -accept-tos
Save and close (CTRL+X, then answer yes). In this case, you can skip the following chapter and go directly to “Build the Docker Image” section.
Dockerfile Content for People NOT Knowing Home Network Topology
If you don’t know your network topology, you can use the following simplified Dockerfile:
FROM debian
RUN apt update -y && apt install wget -y
RUN wget https://download.iproyal.com/pawns-cli/latest/linux_armv7l/pawns-cli
RUN chmod u+x /pawns-cli
CMD /pawns-cli -email=[email protected] -password=your_password -device-name=raspberrypi -accept-tos
Also for this case, save and close (CTRL+X, then answer yes).
Build the Docker Image
In both cases, the next command will build the docker image (please don’t miss the ending point):
docker build -t pawns_debian .
This will create a template by executing all the rows from our dockerfile and it will finish with a new docker image available. You can check it by issuing the “docker image ls” command:
pi@piServer:~ $ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
pawns_debian latest 946ae764a2ee 10 min ago 176MB
debian latest bf0f1861a3bd 4 weeks ago 100MB
Run Pawns.app Docker Image
We can run our Pawns.app service by using the following command line:
docker run -d --name Pawns --cap-add=NET_ADMIN --restart unless-stopped pawns_debian
Please note, in the previous command, that the “–cap-add=NET_ADMIN” is required to execute the UFW inside the container. If you are using the Dockerfile without it, you can skip this option. Moreover, the “–restart unless-stopped” will make the container run also after a Raspberry PI reboot.
To check if the container is running, you can use the “docker ps -a” command:
pi@piServer:~ $ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2df805aa4a5f pawns_debian "/bin/sh -c 'ufw ena…" 3 days ago Up 50 minutes Pawns
Moreover, you can check the container activity with the “docker logs Pawns”:
pi@piServer:~ $ docker logs Pawns
...
...
{"happened_at":"2022-02-27T14:31:55Z","name":"balance_ready","parameters":{"balance":"0.288 USD","traffic":"1.4421 GB"}}
{"happened_at":"2022-02-27T14:44:15Z","name":"balance_ready","parameters":{"balance":"0.288 USD","traffic":"1.4421 GB"}}
{"happened_at":"2022-02-27T14:48:56Z","name":"balance_ready","parameters":{"balance":"0.289 USD","traffic":"1.4452 GB"}}
{"happened_at":"2022-02-27T14:55:47Z","name":"balance_ready","parameters":{"balance":"0.290 USD","traffic":"1.4503 GB"}}
Finally, for those that used my Dockerfile with UFW, you can test the networking rules by accessing the container bash:
docker exec -it Pawns bash
Then install the ping tool inside the container:
apt install iputils-ping
and testing the ping for your local network addresses.
Removing and/or Deleting the IProyal Container
If, for somewhat reason, you want to remove the container, also here Docker is a great help as it allows you to remove the service leaving the Raspberry PI OS clean. You can remove the IProyal container by using the following commands:
docker stop Pawns
docker rm Pawns
You can also remove the template created before with the following command:
docker image rm pawns_debian:latest
Next Steps
Interested in more RPI projects? Take a look at peppe8o Raspberry PI tutorials to discover a world of cool projects for your beloved computer board!
Enjoy!
Dear Sir/Madame,
I used your way to set IProyal on a PI4. After all the steps, I’ve tried to see the docker logs,
but the thing that was written inside was: “too many tries to log in”. Can you give me a clue how to proceed?
Regards,
Alexander
Hi Alexander,
please double check your IPRoyal credentials. The message seems notifying that it runs correctly but just the authentication has something wrong
Hello,
Same error “too many tries to log in” docker container reboot every time.
Hi Aniel,
please, can you send me the docker logs at [email protected] (after removing private info like password)?
Hi Peppe,
I have the same exact problem, how did you solve it?
Thanks in advance!
Hi,
I cannot build the pawns image. I get the following error:
pi@piserver:~/Pawns $ docker build -t pawns_debian .
Sending build context to Docker daemon 2.048kB
Step 1/9 : FROM debian
---> 05db4696ee37
Step 2/9 : RUN apt update -y && apt install wget -y
---> Running in 69c587684cf4
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Get:1 http://deb.debian.org/debian bullseye InRelease [116 kB]
Get:2 http://deb.debian.org/debian-security bullseye-security InRelease [48.4 kB]
Get:3 http://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]
Err:1 http://deb.debian.org/debian bullseye InRelease
At least one invalid signature was encountered.
Err:2 http://deb.debian.org/debian-security bullseye-security InRelease
At least one invalid signature was encountered.
Err:3 http://deb.debian.org/debian bullseye-updates InRelease
At least one invalid signature was encountered.
Reading package lists...
W: GPG error: http://deb.debian.org/debian bullseye InRelease: At least one invalid signature was encountered.
E: The repository 'http://deb.debian.org/debian bullseye InRelease' is not signed.
W: GPG error: http://deb.debian.org/debian-security bullseye-security InRelease: At least one invalid signature was encountered.
E: The repository 'http://deb.debian.org/debian-security bullseye-security InRelease' is not signed.
W: GPG error: http://deb.debian.org/debian bullseye-updates InRelease: At least one invalid signature was encountered.
E: The repository 'http://deb.debian.org/debian bullseye-updates InRelease' is not signed.
The command '/bin/sh -c apt update -y && apt install wget -y' returned a non-zero code: 100
So, I commented the update line and got this error:
pi@piserver:~/Pawns $ docker build -t pawns_debian .
Sending build context to Docker daemon 2.048kB
Step 1/8 : FROM debian
---> 05db4696ee37
Step 2/8 : RUN apt install ufw -y
---> Running in fb096b33ae8f
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package ufw
The command '/bin/sh -c apt install ufw -y' returned a non-zero code: 100
TIA
As a follow up from my prior post…
pi@piserver:~/Pawns $ ufw version
ufw 0.36
Copyright 2008-2015 Canonical Ltd.
pi@piserver:~/Pawns $ wget -V
GNU Wget 1.20.1 built on linux-gnueabihf.
...
I removed the two install lines from the Dockerfile and got this:
pi@piserver:~/Pawns $ docker build -t pawns_debian .
Sending build context to Docker daemon 2.048kB
Step 1/7 : FROM debian
---> 05db4696ee37
Step 2/7 : RUN echo "ufw allow out to 192.168.1.1">fw_rules.sh
---> Using cache
---> 4ef412a6040f
Step 3/7 : RUN echo "ufw deny out to 192.168.1.0/24">>fw_rules.sh
---> Using cache
---> 72a9ead332ca
Step 4/7 : RUN wget https://download.iproyal.com/pawns-cli/latest/linux_armv7l/pawns-cli
---> Running in 246202235bf1
/bin/sh: 1: wget: not found
The command '/bin/sh -c wget https://download.iproyal.com/pawns-cli/latest/linux_armv7l/pawns-cli' returned a non-zero code: 127
Fixed it by upgrading OS to bullseye from buster.
Thank you for your feedback and fix, Emilio
Hi peppe,
it keeps on saying “too many tries to log in” and restarting, any suggestions?
Thanks in advance
Hi Andrea,
same for the previous comments: re-check your credentials and then verify if the logs are showing additional issues.
Try to put username and password between ‘ ‘. This works for me