how to install noip on raspberry pi

How to Install and Use No-IP on Raspberry Pi? (Dynamic DNS)

If, like me, your Internet connection doesn’t have a static public IP address, or if you want an easy-to-remember domain for accessing (or sharing) your services, this article is for you. Using No-IP and a Raspberry Pi, we can associate a domain name with our current IP address (and keep it updated when it changes). Here’s how.

No-IP provides the source files for its client for Linux devices, which can be compiled on a Raspberry Pi. After installing and linking the client to a valid account, it will keep the free hostname associated with the current IP address.

In this tutorial, I will guide you step by step. I’ll explain exactly what No-IP is, how to install it and how to configure the Raspberry Pi and your network to make it work.

If you’re new to Raspberry Pi or Linux, I’ve got something that can help you right away!
Download my free Linux commands cheat sheet – it’s a quick reference guide with all the essential commands you’ll need to get things done on your Raspberry Pi. Click here to get it for free!

Want the best experience? Become a premium member for ad-free browsing, access exclusive content, and ask questions in our private forums. Your membership helps support the site!

What is No-IP?

Presentation

If you are here, you probably already know what No-IP is and what it does, so I’ll be quick here.
No-IP is a dynamic DNS service provider. The idea is to link a domain name (or a subdomain in the free plan), to your IP address.

It’s particularly useful if your public IP address changes regularly. It allows you to access your home server from anywhere, even if you don’t have a static IP address.

But if you host some services (web server, Minecraft server, etc.), it’s easier to share a domain name than an IP address.

Pricing Plans

No-IP offers two different services, with different pricing:

  • A free plan: Probably the one you are interested in. It’s perfect for hosting a basic service like a website, SSH access, Samba share or FTP server.
    You can choose a subdomain (for example: raspberrytips.hopto.org) and link it to your IP address so you can use this subdomain and remotely access the service.
  • An enhanced plan: It’s a paid service, but you can define several hostnames (over 20 I think), have more choices for the domain names, and also no ads and no 30-day hostname confirmation required.
    With the free plan, you hve to log in every 30 days to re-enable the hostname.

There is also an advanced plan, where you can use your domain name, with all the features.
For example, I know that some of you tried the No-IP free plan to host a mail server. It’s not possible, as you can’t change the MX option in the DNS configuration on a free plan.

Start with the free DDNS service, and you can always see later if you need more options to do what you want.

How does it work?

No-IP works by offering you a free subdomain, and always redirecting it to your public IP address, even when it changes.

Thanks to this provider, you can host any service you want at home (on your Raspberry Pi or not).
If you need a visual to understand, here is how it works:

The remote client can be anywhere in the world, and access the hostname created on No-IP (we’ll see how to create one just after that).
Your router at home will redirect the traffic to the Raspberry Pi, or another host on the network, depending on what you want to do.

To configure everything, there are 3 main steps, that I’ll explain in this tutorial:

Also: I've tested hundreds of Linux apps, here are the ones I recommend.

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now
  1. Create your account and choose a hostname.
  2. Download & install the No-IP client on your Raspberry Pi.
  3. Configure port forwarding on your router, to redirect any access to your host.

It might be hard to get the whole thing on your first read. If it’s still unclear, leave a comment in the community, and I will try to explain it another way.

Create an account

Whatever your goal, the first step is to create an account and choose a hostname on NoIP.com:

  • Go to the No-IP website.
  • Click on “Sign Up” in the top menu.
  • Fill out the form with your email address and password:

    You might get a warning if you are using special characters in your password:
    “Dynamic DNS enabled devices, such as routers, cameras, or DVRs, often do not allow special characters and limit password length for Dynamic DNS passwords”.
    I have a few, and it works well on Raspberry Pi, so keep your strong password.
  • Check the box to accept the terms of service and click on “Free Sign Up” to create your account.
  • Then, you’ll need to confirm your email address, by clicking on the email:
  • Click on “Confirm Account”.
    On the confirmation page, you’ll have to answer a few questions, like how you plan to use No-IP and whether you want a paid plan or not.
    You can click on “Personal”, then “Remote access” and “Free plan” to quickly skip these questions.

Create a Hostname

Once the account is created, you’ll be redirected to a page to create your hostname, it looks like this:

Fill out the form with the domain hostname you’d like to use. You may have to try a few to find one free. You can keep the default values in the other fields (the IP address doesn’t matter at this point).

We need to install the client to sync your IP address and keep this hostname accessible even when our public IP address changes.

There are several options available. You can install it on your PC or some router (I generally use this method). But today we’ll see how to install it on a Raspberry Pi. Let’s do this now.

No-IP Installation Guide on Raspberry Pi

Install and Configure Raspberry Pi OS

I used a Raspberry Pi OS while testing this tutorial for you. It shouldn’t change much if you are on another Linux distribution, but I want you to be aware so you can try to get the same results.

Start by installing Raspberry Pi OS on your device.
I have a dedicated tutorial explaining how to do this correctly, so I won’t repeat it here. If you need help at some point, make sure to check this article here. You can also use an existing Raspberry Pi setup if you prefer.

After the basic installation, you need to set a strong password (especially if you plan to forward the SSH port), but in any case, it’s a good practice.

Then, update your system to make sure there is no security breach open:
sudo apt update
sudo apt upgrade

You may also need to install the service you want to share on the Internet with No-IP.
In this tutorial, I will do my tests with Apache, so:
sudo apt install apache2
More details here on how to install a web server on Raspberry Pi.

Are you a bit lost in the Linux command line? Check this article first for the most important commands to remember and a free downloadable cheat sheet so you can have the commands at your fingertips.

Download & Install No-IP on Raspberry Pi

Let’s see how to install the No-IP client on Raspberry Pi!

I’m on Raspberry Pi OS Lite, if you are in the same case, you need to connect via SSH (more details here). On Raspberry Pi OS with Desktop, you can use the terminal directly.

Either way, here is the procedure to install it:

  • You need to choose a folder to download and compile No-IP.
    I’m doing this in my home folder, but it doesn’t matter (you can remove it after installation).
    cd ~
    mkdir noip
    cd noip

  • Download the archive with:
    wget https://www.noip.com/client/linux/noip-duc-linux.tar.gz
    Learn more about the wget command here.
  • Extract the files:
    tar zxvf noip-duc-linux.tar.gz
    If you aren’t familiar with the tar command, click on the link to learn everything about it.
  • Go into the new folder created:
    cd noip-2.1.9-1
    The version number in the folder name can change, so be sure to use the one corresponding to your extracted files.
    Tip: “cd noip” + TAB will autocomplete the command.
  • Once in this folder, use the following commands to compile and install No-IP:
    sudo make
    sudo make install

It installed quickly on my Raspberry Pi, so it should be done in a few seconds, whatever your device. During installation, you will be asked a few questions to configure the service.

You need to enter your email address and password to link your device with your account, but also the update frequency (how often the client will update your IP address on No-IP).
It looks like this:

If it doesn’t work, make sure you have set a username and security question in your No-IP account. The last time I tested, this was a requirement to use the client on the Raspberry Pi.

Note: I’m giving you the short version in this tutorial, but if you need more details on installing a tar.gz file on Ubuntu (or other archives formats), it’s probably better to click on this link for more guidance.

By the way, the update interval is set in minutes. I haven’t tested it, but I think you can configure it to run something on every IP update (a script, I suppose, might be useful if you need to update something in your hosted service every time the public IP address changes).

Once completed, your IP address should be updated on the website, and the second step is done, well done. If your goal was to link a domain name to your IP address, congrats it’s done.

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now
For example, I'm using this to allow my IP address on some administration web pages. As I don't have a static IP address, I can't filter the access based on my current IP, but I can use my hostname to do the same thing.

I suppose most of you want to host a service on your Raspberry Pi. So, you need to check the last part of this tutorial!

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now

Bonus Tips

After using it for a few hours, I noticed several issues with the No-IP client on Raspberry Pi.
In this part, I will show you how to fix them, and introduce the port forwarding configuration.

Edit the No-IP configuration

When you install No-IP, you can choose a few things in the wizard, but if something doesn’t work or you want to change anything, you can’t run “make install” again.

So, if you need to update something (your password or update interval for example), here are a few commands you can use.

The main command is:
sudo noip2 <option>

Then, the following options are available:

  • -C: create a new configuration (you need to stop No-IP before doing this).
  • -c <path>: use another configuration file.
  • -S: display the current configuration.
  • -U <minutes>: change the update interval.
  • -u <username> -p <password>: update your account credentials.
  • -i <IP>: force a specific IP address.
  • -I <interface>: if you have Wi-Fi and Ethernet enabled for example, you can specify which interface to use.
  • -h: display all the options (help).

For example, I wanted to change the update interval for my tests, to see if it works correctly when I switch from one connection to another.

So, I have done this:
sudo noip2 -U 5
Five is the minimum you can choose, the default is 30 minutes.

Auto-Start No-IP on Boot

After my reboot, I noticed that the IP address no longer updates.
The No-IP client doesn’t start automatically on boot.

There are many ways to fix this (check this tutorial to see how to do with 4 different methods).
But I chose the easiest one:

  • Open your crontab configuration:
    sudo crontab -e
  • Paste this line in it:
    @reboot /usr/local/bin/noip2

That’s it, No-IP will now start automatically on boot.

Enable Port Forwarding with No-IP

The last step is to configure your router or firewall to redirect one port to your Raspberry Pi service.

For now, your IP address is regularly updated in the domain name configuration, but you can’t access any service on the Raspberry Pi. You need to configure port forwarding on your Internet router to allow this.

The configuration will highly depend on your provider and the router you have.
So, I’ll show you how it works in my case, but you probably don’t have the same hardware (at least if you are not in France with the same provider ^^).

  • Connect to your router IP address with a web browser.
    The IP address depends on your provider, you can probably find it by looking at your gateway if you don’t know it.
    On Raspberry Pi (or any Linux system), you will get it with:
    route -n
    For example:

    So in my case, I open http://192.168.222.1
  • Then, make sure to use a static IP address on your Raspberry Pi.
    There are two ways to do this:
    • You can assign the IP address to your router.
      In my case, it’s in Advanced Settings > DHCP:

      By doing this, my local IP address will always be the same (but not the public IP obviously).
    • Or, you can configure it directly on the Raspberry Pi, I have a tutorial here about this.
  • Once done, the last step is to forward an external port to your local device and port.
    In my case, I want to allow access to Apache remotely.
    So I need to redirect any port to port 80 of my Raspberry Pi.
    I can do this in Advanced Settings > NAT.
    It looks like this:

I can now access my domain name: http://raspberrytips.hopto.org:1982 and it should redirect me to the Apache default page.
I tried this from my phone, disconnected from my Wi-Fi (it doesn’t work if you are on the same network), and yes, it works!

I hope you have found where the configuration can be done on your specific router.
If you need help, make sure to check your provider’s website, as they generally have documentation to do this, for example:

Download Your Essential Linux Commands Guide!
It's a free PDF guide containing every Raspberry Pi Linux command you should know!
Download now

🛠 This tutorial doesn't work anymore? Report the issue here, so that I can update it!

Reminder: Remember that all the members of my community get access to this website without ads, exclusive courses and much more. You can become part of this community for as little as $5 per month & get all the benefits immediately.

Conclusion

That’s it, you now know how to install No-IP on a Raspberry Pi, but especially how to configure it to make it work the way you want. I hope this tutorial was useful and allows you to start or improve projects.

By the way, if you want to host some services at home, but not for everyone in the world, the other option is to install a VPN server on your Raspberry Pi (click on the link to learn how to do this easily). It will be more secure than opening a port on the web.

You can also check this post with a few tips to improve the security level on your Raspberry Pi.

As this topic might be a bit complicated for some of you, feel free to comment in the community if you need further assistance. I will try to help you the best I can.

Whenever you’re ready, here are other ways I can help you:

The RaspberryTips Community: If you want to hang out with me and other Raspberry Pi fans, you can join the community. I share exclusive tutorials and behind-the-scenes content there. Premium members can also visit the website without ads.

Master your Raspberry Pi in 30 days: If you are looking for the best tips to become an expert on Raspberry Pi, this book is for you. Learn useful Linux skills and practice multiple projects with step-by-step guides.

The Raspberry Pi Bootcamp: Understand everything about the Raspberry Pi, stop searching for help all the time, and finally enjoy completing your projects.

Master Python on Raspberry Pi: Create, understand, and improve any Python script for your Raspberry Pi. Learn the essentials step-by-step without losing time understanding useless concepts.

You can also find all my recommendations for tools and hardware on this page.

How would you rate this article?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Spread the word!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

Similar Posts

One Comment

  1. By the way, I did this once before and worked using External IP, but how about private IP? Because my ISP sometimes give me a Private IP rather than External One.
    Thank you very much.

Comments are closed.