
Linode Private IP Configuration can seem intimidating, but it's actually quite straightforward once you understand the basics.
To start, a Linode Private IP is a unique IP address assigned to a Linode instance for internal communication.
You can manage your Linode Private IP in the Linode Cloud Manager, where you can view and edit your IP addresses.
A Private IP can be assigned to a Linode instance when it's created, or you can add it later through the Cloud Manager.
A different take: Google Cloud Platform Ip Ranges
Setting Up Private Networking
To enable Linode Private Networking, head to your Linode's Remote Access Tab.
Add a Private IP by following the instructions. For example, you can use 192.168.136.224 / 17, which worked for one case.
You don't need a private IP for the GitLab Runner Linode, as it communicates with the GitLab instance, not the other way around.
Managing Private IPs
Managing Private IPs is a crucial aspect of maintaining a secure and organized infrastructure on Linode.
Private IPs are automatically assigned to new Linodes, and can be found in the Linode Manager under the Network tab.
You can also create additional private IPs for your Linode, which can be useful for separating services or applications.
Each private IP can be assigned to a specific network interface, and can be used to access your Linode from a local network or from a VPN.
Private IPs are not accessible from the public internet, making them a secure choice for internal services.
Linode's IP management system allows you to easily manage and configure your private IPs, including deleting or reassigning them as needed.
Take a look at this: Private Blog Network
Set Up DB Servers
You can set up database servers using the linode_instance and linode_stackscript resources. These resources install Postgres, set up the database and credentials, and provide some configuration options.
The two database servers are mostly the same, but with a couple of key differences. The second database includes configuration to add it to the VPC.

You'll need to explicitly assign the server's private IP address when configuring the VPC settings. This is the same static value that was given to the application server so it can connect to the database from within the VPC.
Database #1 allows all internet connections, while database #2 only allows access from the same network. This is reflected in the Client Authentication file (pg_hba.conf) settings.
Here's a comparison of the two database servers:
Creating and Managing VMs
Creating and managing VMs is a crucial part of utilizing Linode's Private IP feature. You can create a new VM in the Linode Cloud Manager, selecting the desired image, plan, and region.
To manage your VMs, you can use the Linode API or the Linode Cloud Manager. The API allows you to automate tasks and integrate with other services, while the Cloud Manager provides a user-friendly interface for managing your VMs.
You can also resize your VMs as needed, and Linode's automated backups ensure that your data is safe in case of an issue.
If this caught your attention, see: Azure Private Cloud
Configure App Servers

To configure your app servers, you'll need to set up Terraform to deploy them. This involves using the linode_instance resource to create the servers and a reusable deployment script.
The deployment script is like a Bash script that lives in your Akamai cloud dashboard and can be reused on new servers. It installs Node.js 20 via NVM, installs PM2, clones your project repo, runs the app, and sets up Caddy.
For the two resources, configuring them is almost identical, with only a few significant things to note. The main differences are in how they interact with the VPC and database.
Here are the key differences to keep in mind:
- Application #2 includes configuration to add it to the VPC.
- The StackScript needs the IP address for the database, which can be a public or private IP address.
For example, Application #1 uses the public IP address from database #1, while Application #2 uses a variable for the private IP address assigned to database #2, which is set to 10.0.0.3.
Additional reading: Azure Public Ip Address
Creating VM
Creating a VM involves creating a virtual machine in a Linode region. Add User Data scripts beforehand to install Nginx.

To create a VM, you'll need to select the option to create a private IP for your virtual machine instance. This is because NodeBalancer communicates only through private IP.
Verify the network settings using the ifconfig command after the virtual machine creation is complete. It should appear as follows: This indicates that eth0 has both a public and private IP assigned, while eth1 is associated with the VLAN.
Frequently Asked Questions
Is 172.17 0.1 a private IP?
Yes, 172.17.0.1 is a private IP address used in internal network environments. It's not a public IP address that can be accessed from the internet.
Is Linode IP static?
Linode IP addresses are not static by default, but are assigned by DHCP unless you set up static networking or enable Network Helper. This means your IP address will remain the same until you remove your Linode, but it's not a fixed IP address.
Sources
- https://swas.io/blog/gitlab-private-networking-runner/
- https://serverfault.com/questions/175468/linode-private-ips
- https://serverfault.com/questions/256400/server-with-only-private-ip-has-no-internet-access
- https://austingil.com/vpc-demo-overview/
- https://medium.com/@sangjinn/verifying-client-ip-address-in-linode-nodebalancer-environment-using-proxy-protocol-5d012aadddd9
Featured Images: pexels.com