Dedicated IPv4 Address for Ingress
Attach an IPv4 address to your database
The Supabase IPv4 add-on provides a dedicated IPv4 address for your Postgres database connection. It can be configured in the Add-Ons Settings.
Understanding IP addresses
The Internet Protocol (IP) addresses devices on the internet. There are two main versions:
- IPv4: The older version, with a limited address space.
- IPv6: The newer version, offering a much larger address space and the future-proof option.
When you need the IPv4 add-on:
IPv4 addresses are guaranteed to be static for ingress traffic. If your database is making outbound connections, the outbound IP address is not static and cannot be guaranteed.
- When using the direct connection string in an IPv6-incompatible network instead of Supavisor or client libraries.
- When you need a dedicated IP address for your direct connection string
Enabling the IPv4 add-on
You can enable the IPv4 add-on in your project's add-ons settings.
Note that direct database connections can experience a short amount of downtime when toggling the add-on due to DNS reconfiguration and propagation. Generally, this should be less than a minute.
Read replicas and IPv4 add-on
When using the add-on, each database (including read replicas) receives an IPv4 address. Each replica adds to the total IPv4 cost.
Changes and updates
- While the IPv4 address generally remains the same, actions like pausing/unpausing the project or enabling/disabling the add-on can lead to a new IPv4 address.
Supabase and IPv6 compatibility
By default, Supabase Postgres use IPv6 addresses. If your system doesn't support IPv6, you have the following options:
- Supavisor Connection Strings: The Supavisor connection strings are IPv4-compatible alternatives to direct connections
- Supabase Client Libraries: These libraries are compatible with IPv4
- Dedicated IPv4 Add-On (Pro Plans+): For a guaranteed IPv4 and static database address for the direct connection, enable this paid add-on.
Checking your network IPv6 support
Most services are IPv6 compatible, but some exceptions exist (listed below). To verify your personal network supports it, run this command on your server:
_10curl -6 https://ifconfig.co/ip
If it returns an IPv6 address then your system is compatible. An example IPv6 address might look like: 2a05:d014:1c06:5f0c:d7a9:8616:bee2:30df
.
Checking platforms for IPv6 support:
The majority of services are IPv6 compatible. However, there are a few prominent ones that only accept IPv4 connections:
Finding your database's IP address
Use an IP lookup website or this command (replace <PROJECT_REF>
):
_10nslookup db.<PROJECT_REF>.supabase.co
Identifying your connections
The pooler and direct connection strings can be found in the database settings:
Direct connection
IPv6 unless IPv4 Add-On is enabled
_10# Example direct connection string_10postgresql://postgres:[YOUR-PASSWORD]@db.ajrbwkcuthywfihaarmflo.supabase.co:5432/postgres
Supavisor in transaction mode (port 6543)
Always uses an IPv4 address
_10# Example transaction string_10postgresql://postgres.ajrbwkcuthywddfihrmflo:[YOUR-PASSWORD]@aws-0-us-east-1.pooler.supabase.com:6543/postgres
Supavisor in session mode (port 5432)
Always uses an IPv4 address
_10# Example session string_10postgresql://postgres.ajrbwkcuthywfddihrmflo:[YOUR-PASSWORD]@aws-0-us-east-1.pooler.supabase.com:5432/postgres