Overview
When WHM runs out of available IP addresses, it throws an IP allocation error that blocks you from creating new cPanel accounts or assigning dedicated IPs to existing ones. The error typically reads something like “There are no more IPs available on this server” or “IP address pool is exhausted.” This is a WHM IP exhausted condition, and it’s more common than you’d expect — especially on reseller setups and VPS plans where the IP pool is small by default.
The cause is almost always one of three things: you’ve genuinely used every assigned IP, WHM is tracking IPs that no longer exist on the server’s network interface, or IPs were added to the network but never registered inside WHM. All three are fixable without a reboot or any downtime for existing accounts.
This guide covers diagnosis first, then the actual fix. Skip ahead to the step-by-step section if you already know what’s causing it.
Prerequisites
- Root access to WHM (or a reseller account with IP management privileges)
- SSH access to the server (required for some steps)
- cPanel/WHM version 108 or later — older versions have a slightly different IP Manager UI, but the underlying process is the same
- If you need additional IPs, have your new IP address or IP block ready before starting — you’ll need the IP, subnet mask, and your server’s main network interface name (e.g.
eth0,ens3) - For VPS users: confirm your hosting provider has assigned the additional IPs to your node before trying to add them in WHM
Step-by-Step Instructions
Step 1: Check Current IP Usage in WHM
Before making any changes, find out exactly which IPs WHM knows about and how many are in use.
- Log in to WHM at
https://yourserver.com:2087. - In the left sidebar, search for IP Functions and click Show or Delete Current IP Addresses.
- Review the list. Each entry shows the IP, whether it’s dedicated to an account, and the associated domain. IPs marked as free are available for assignment.
If every IP is assigned or the list only shows your main shared IP with no free addresses, you’ve confirmed the pool is exhausted.
Step 2: Identify Orphaned or Ghost IPs
This is the non-obvious part most guides skip. WHM sometimes holds IPs as “in use” after an account is deleted or transferred, but the interface doesn’t always make this obvious. Run the following from SSH to compare what WHM thinks is assigned versus what’s actually configured on the network interface:
# List IPs WHM currently tracks
cat /etc/ips
# List IPs actually configured on the server's network interface
ip addr show
If you see IPs in /etc/ips that aren’t bound to any active interface, those are stale entries. If you see IPs active on the interface that aren’t in /etc/ips, WHM doesn’t know they exist yet.
Step 3: Release IPs Tied to Deleted Accounts
Sometimes an IP stays “reserved” in WHM after the cPanel account it was assigned to has been terminated. WHM should release it automatically, but it doesn’t always.
- In WHM, go to IP Functions > Show or Delete Current IP Addresses.
- Look for any IPs listed with a domain that no longer has an active account.
- Click Delete next to the IP to remove it from WHM’s pool, then re-add it using the steps in Step 5 below.
📝 Note: Deleting an IP from this screen only removes it from WHM’s tracking — it doesn’t remove it from the network interface. No service interruption occurs.
Step 4: Run the IP Fix Script
cPanel ships a script that resyncs WHM’s IP database against what’s actually configured on the server. Run this before anything else if you suspect a data inconsistency:
/scripts/rebuildhttpdconf
/scripts/restartsrv_httpd
Then run the IP address rebuilder specifically:
/scripts/ipusage
This outputs a breakdown of IP usage. If it surfaces IPs that are listed as used but attached to non-existent accounts, that confirms the stale-record problem from Step 3.
⚠ Warning: Don’t run /scripts/rebuildhttpdconf during peak traffic hours on a busy shared server. It rewrites the Apache config and triggers a graceful restart, which can cause a brief spike in load.
Step 5: Add New IP Addresses to WHM
If your IP pool is genuinely exhausted and you need more, you’ll need to add the new IPs both at the OS level and inside WHM.
First, add the IP to the network interface:
# Replace ens3 with your actual interface name, and use your real IP/subnet
ip addr add 198.51.100.25/24 dev ens3
📝 Note: This change won’t survive a reboot unless you also update your network config files. On AlmaLinux/CloudLinux 8+, edit the appropriate config under /etc/sysconfig/network-scripts/ or use NetworkManager. On Ubuntu-based systems, edit /etc/netplan/.
Then register the IP in WHM:
- In WHM, go to IP Functions > Add a New IP Address.
- Enter the new IP address in the New IP or IP range field.
- Enter the subnet mask (e.g.
255.255.255.0for a /24). - Click Submit.
WHM will confirm the IP has been added. It should now appear as available in the IP pool.
Step 6: Verify the Fix
# Confirm the IP is live on the interface
ping -c 3 198.51.100.25
# Confirm WHM has registered it
grep '198.51.100.25' /etc/ips
Then go back to Show or Delete Current IP Addresses in WHM and confirm the new IP appears with a status of free. Try creating a test cPanel account and assigning the IP — if it goes through without an error, you’re done.
Common Issues & Troubleshooting
“There are no more IPs available on this server” after adding a new IP
WHM added the IP successfully but it’s not showing as free. This usually means the IP was added to WHM’s database but immediately flagged as already in use somewhere. Run /scripts/ipusage again and check for duplicate entries in /etc/ips. Also check /etc/userdomains — a stale domain-to-IP mapping can hold the IP hostage.
IP added to WHM but account creation still fails
If account creation fails with a network-related error even after the IP shows as free, the IP isn’t actually routable yet. Check with your hosting provider that the IP has been provisioned at the network level and isn’t just allocated on paper. On Host & Tech VPS plans, additional IPs need to be enabled from the client portal before they’re routable at the hypervisor level — WHM doesn’t control that layer.
WHM shows IPs as free but they’re already in use on the network
This happens when a server migration or WHM restore didn’t cleanly transfer IP assignments. You end up with IP conflicts — two virtual hosts answering on the same IP, which causes unpredictable SSL and routing behaviour. Run ss -tlnp to check what’s actually listening on each IP, then audit your Apache virtual host config under /etc/apache2/conf.d/userdata/.
Reseller can’t assign IPs even though IPs are available
Reseller accounts in WHM don’t automatically get access to the IP pool. The root admin has to explicitly allocate IPs to the reseller’s package. Go to Packages > Edit a Package, select the reseller’s plan, and increase the Dedicated IPs allowance. This trips up a lot of resellers who are new to the platform — it’s not intuitive.
IP range added but only the first IP in the range shows up
When adding an IP range (e.g. 198.51.100.20-198.51.100.30), WHM parses ranges differently depending on your version. In WHM 110+, ranges are supported natively in the Add IP form. In older versions, you may need to add each IP individually or use the following script loop from SSH:
for i in {20..30}; do
/scripts/ipusage add 198.51.100.$i 255.255.255.0
done
Additional Notes for Resellers
If you’re running a Reseller Hosting account, your IP allocation is controlled by the package your root admin assigned to you. You can’t add IPs directly at the network interface level — that requires root. If you’ve exhausted your allocated IPs, you’ll need to contact your hosting provider to either expand your IP pool or upgrade your plan. In my experience, resellers underestimate how quickly IPs get used up once clients start requesting SSL certificates and dedicated IPs for legacy mail setups.
📝 Note: With modern SNI (Server Name Indication) support baked into every current browser and mail client, most sites genuinely don’t need a dedicated IP for SSL anymore. If clients are requesting dedicated IPs specifically for HTTPS, they likely don’t need them. Shared IPs with SNI work fine for the vast majority of use cases.
FAQ
Frequently Asked Questions
How many IP addresses does a WHM server need per cPanel account?
By default, every cPanel account shares the server’s main IP — so technically you only need one IP for unlimited accounts. Dedicated IPs are only required when a client specifically needs one, such as for certain legacy SSL configurations or private nameservers. Modern SNI means most sites work fine on a shared IP.
Can I add IP addresses to WHM without a server reboot?
Yes. You can add IPs to the network interface using the ip addr add command and then register them in WHM without any reboot. The change is live immediately. Just make sure you also make it persistent in your network config files so it survives a restart.
Why does WHM show an IP as free but won't let me assign it?
This usually means the IP exists in WHM’s database but isn’t actually bound to the server’s network interface, or it’s flagged internally as reserved. Run /scripts/ipusage from SSH to get a full picture of IP state, and check for duplicate entries in /etc/ips.
How do I check which cPanel accounts are using which IPs in WHM?
Go to WHM > IP Functions > Show or Delete Current IP Addresses. Each IP is listed alongside the account or domain it’s assigned to. You can also check /etc/userdomains from SSH for a raw mapping of domains to IPs across all accounts.
Will adding new IPs to WHM affect existing websites or cause downtime?
No. Adding new IPs to WHM doesn’t touch existing account configurations. Existing sites keep their current IP assignments unchanged. The only time downtime risk comes in is if you’re moving an existing account from one IP to another, which triggers an Apache config rebuild.