+
android
aurelia
jwt
+
+
+
deno
d
ocaml
+
ios
+
+
php
+
+
+
+
+
+
postgres
+
+
macos
solid
+
gatsby
dart
+
protobuf
+
dynamo
+
+
+
mvn
+
+
sinatra
+
+
+
gulp
&&
terraform
+
ionic
+
ansible
+
+
+
spacy
+
+
scipy
>=
vercel
+
jest
+
backbone
parcel
λ
+
+
+
pandas
strapi
rails
mongo
+
preact
ansible
+
+
solid
+
rollup
numpy
0x
travis
--
+
+
+
Back to Blog
Setting Up Static IP Address in Alpine Linux: Complete Network Configuration Guide
Alpine Linux Networking Static IP

Setting Up Static IP Address in Alpine Linux: Complete Network Configuration Guide

Published May 26, 2025

Learn how to configure static IP addresses in Alpine Linux. Step-by-step guide covering network interfaces, DNS configuration, and troubleshooting for reliable network setup.

8 min read
0 views
Table of Contents

Setting Up Static IP Address in Alpine Linux: Complete Network Configuration Guide

I’ll show you how to set up a static IP address in Alpine Linux. This is essential for servers, network appliances, or any system that needs a fixed network address.

Introduction

Setting up a static IP might seem intimidating, but it’s actually pretty straightforward once you know the right files to edit. I do this all the time for servers that need consistent network addresses.

The main reason you’d want a static IP is for services that other machines need to reach reliably. DHCP can change your IP address, which breaks things like SSH connections, web servers, or database access.

Why You Need This

  • Ensure servers have consistent network addresses
  • Set up services that other machines access
  • Create reliable network configurations
  • Avoid DHCP conflicts and address changes

Prerequisites

You’ll need these things first:

  • Root access to Alpine Linux system
  • Basic knowledge of your network setup
  • Network interface name (usually eth0)
  • IP address range from your network administrator
  • Gateway and DNS server addresses

Step 1: Check Current Network Configuration

Identifying Network Interface

I’ll start by checking what network interfaces you have and their current settings.

What we’re doing: Finding network interface names and current IP configuration.

# List all network interfaces
ip addr show

# Check current routing table
ip route show

# Display network interface status
ifconfig -a

Code explanation:

  • ip addr show: Lists all network interfaces with their current IP addresses
  • ip route show: Shows current routing table and default gateway
  • ifconfig -a: Alternative way to view network interface configuration

Expected Output:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0

What this means: You have a loopback interface (lo) and ethernet interface (eth0) with current IP 192.168.1.100.

Checking Current Network Settings

What we’re doing: Understanding your current network configuration before making changes.

# Check current network configuration
cat /etc/network/interfaces

# Look at current hostname
hostname

# Check DNS settings
cat /etc/resolv.conf

Code explanation:

  • /etc/network/interfaces: Main network configuration file
  • hostname: Shows current system hostname
  • /etc/resolv.conf: Contains DNS server configuration

Step 2: Configure Static IP Address

Editing Network Interfaces File

What we’re doing: Configuring the main network interface with static IP settings.

# Backup current configuration
sudo cp /etc/network/interfaces /etc/network/interfaces.backup

# Edit network configuration
sudo nano /etc/network/interfaces

Configuration example:

Before (DHCP configuration):

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

After (Static IP configuration):

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.1.50
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4
    dns-domain example.com

Configuration explanation:

  • auto eth0: Brings up interface automatically at boot
  • iface eth0 inet static: Sets interface to use static IP instead of DHCP
  • address 192.168.1.50: Your chosen static IP address
  • netmask 255.255.255.0: Subnet mask (adjust for your network)
  • gateway 192.168.1.1: Router IP address for internet access
  • dns-nameservers: DNS servers for domain name resolution

Tip: Always choose an IP address outside your DHCP range to avoid conflicts.

Alternative Configuration Methods

What we’re doing: Using Alpine’s setup tools for network configuration.

# Use Alpine's network setup tool
sudo setup-interfaces

# Or configure manually with ip commands for testing
sudo ip addr add 192.168.1.50/24 dev eth0
sudo ip route add default via 192.168.1.1

Code explanation:

  • setup-interfaces: Interactive Alpine tool for network configuration
  • ip addr add: Temporarily adds IP address for testing
  • ip route add default: Sets default gateway temporarily

Step 3: Configure DNS Resolution

Setting Up DNS Servers

What we’re doing: Configuring DNS servers so your system can resolve domain names.

# Edit DNS configuration
sudo nano /etc/resolv.conf

DNS Configuration:

# Primary and secondary DNS servers
nameserver 8.8.8.8
nameserver 8.8.4.4

# Search domain for short hostnames
search example.com

# Domain name for this host
domain example.com

DNS explanation:

  • nameserver 8.8.8.8: Google’s primary DNS server
  • nameserver 8.8.4.4: Google’s secondary DNS server
  • search example.com: Domain to append to short hostnames
  • domain example.com: Default domain for this system

Making DNS Configuration Persistent

What we’re doing: Ensuring DNS settings survive reboots and network changes.

# Install openresolv for persistent DNS
sudo apk add openresolv

# Create persistent DNS configuration
echo 'name_servers="8.8.8.8 8.8.4.4"' | sudo tee /etc/conf.d/net

# Update configuration
sudo resolvconf -u

Code explanation:

  • openresolv: Package that manages DNS configuration
  • /etc/conf.d/net: Persistent network configuration
  • resolvconf -u: Updates DNS configuration from settings

Step 4: Apply Network Configuration

Restarting Network Services

What we’re doing: Applying the new network configuration and verifying it works.

# Stop network interface
sudo ifdown eth0

# Start network interface with new configuration
sudo ifup eth0

# Alternative: restart networking service
sudo service networking restart

Code explanation:

  • ifdown eth0: Shuts down the network interface
  • ifup eth0: Brings up interface with new configuration
  • service networking restart: Restarts entire networking subsystem

Expected Output:

SIOCGIFFLAGS: No such device
SIOCSIFADDR: No such device

Don’t worry about these messages - they’re normal during interface restart.

Verifying Configuration

What we’re doing: Testing that the static IP configuration is working properly.

# Check new IP address
ip addr show eth0

# Test connectivity to gateway
ping -c 3 192.168.1.1

# Test DNS resolution
nslookup google.com

# Check routing table
ip route show

Code explanation:

  • ip addr show eth0: Shows IP configuration for specific interface
  • ping -c 3: Tests connectivity with 3 ping packets
  • nslookup: Tests DNS resolution capability
  • ip route show: Verifies routing table includes default gateway

Practical Examples

Example 1: Home Network Setup

What we’re doing: Configuring static IP for a home server on typical home network.

# Typical home network configuration
cat > /etc/network/interfaces <<EOF
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 192.168.1.1 8.8.8.8
EOF

# Restart networking
sudo service networking restart

Code explanation:

  • 192.168.1.100: Static IP in common home network range
  • gateway 192.168.1.1: Typical home router address
  • dns-nameservers 192.168.1.1 8.8.8.8: Use router DNS first, then Google

Example 2: Enterprise Network Configuration

What we’re doing: Setting up static IP for enterprise environment with specific requirements.

# Enterprise network with VLAN configuration
cat > /etc/network/interfaces <<EOF
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 10.0.10.50
    netmask 255.255.252.0
    gateway 10.0.8.1
    dns-nameservers 10.0.1.10 10.0.1.11
    dns-search company.local
    dns-domain company.local
EOF

# Apply configuration
sudo ifdown eth0 && sudo ifup eth0

Code explanation:

  • 10.0.10.50: IP in enterprise private range
  • 255.255.252.0: Larger subnet mask for bigger networks
  • dns-search company.local: Corporate domain for hostname resolution

Troubleshooting

Network Interface Not Coming Up

Problem: Interface fails to start with static configuration Solution: Check configuration syntax and network hardware

# Check interface status
sudo ifconfig eth0 up

# Look for error messages
dmesg | grep eth0

# Verify cable connection
ethtool eth0 | grep "Link detected"

Cannot Reach Gateway

Problem: Static IP set but no internet connectivity Solution: Verify gateway address and routing

# Test gateway connectivity
ping 192.168.1.1

# Check if gateway is correct
ip route show | grep default

# Temporarily add correct route
sudo ip route add default via 192.168.1.1

DNS Resolution Failed

Problem: IP connectivity works but domain names don’t resolve Solution: Fix DNS configuration

# Test DNS directly
nslookup google.com 8.8.8.8

# Check current DNS settings
cat /etc/resolv.conf

# Manually set DNS for testing
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

Best Practices

  1. Always Backup Configuration:

    # Backup before changes
    sudo cp /etc/network/interfaces /etc/network/interfaces.$(date +%Y%m%d)
  2. Choose IP Outside DHCP Range:

    • Most routers use 192.168.1.100-200 for DHCP
    • Use addresses like 192.168.1.50 for static IPs
  3. Document Your Network Settings:

    • Keep record of assigned static IPs
    • Note which services use which addresses

Verification

To verify the static IP configuration:

# Check assigned IP address
hostname -I

# Verify routing works
traceroute google.com

# Test DNS resolution
host google.com

# Check network connectivity
curl -I https://google.com

Expected Output:

192.168.1.50
PING google.com (172.217.12.110): 56 data bytes
64 bytes from 172.217.12.110: seq=0 ttl=117 time=15.2 ms

Wrapping Up

You just learned how to:

  • Configure static IP addresses in Alpine Linux
  • Set up DNS resolution for domain names
  • Apply and verify network configuration changes
  • Troubleshoot common network connectivity issues

That’s it! You now know how to set up reliable static IP addresses in Alpine Linux. This gives you consistent network addresses for servers and services. I use this setup for all my Alpine Linux servers that need fixed network identities.