Skip to content

Default Ports

This page lists every port ProxPanel uses, whether it should be exposed to the public internet, restricted to localhost, or opened only outbound. Use it when:

  • Configuring a firewall in front of a ProxPanel server.
  • Setting up Security Groups on a cloud VM.
  • Diagnosing “connection refused” or “port already in use” errors.
  • Planning a multi-server cluster.

The convention used below:

DirectionMeaning
Inbound (public)Internet → ProxPanel. Must be open on the public interface.
Inbound (LAN/BNG)BNG / NAS → ProxPanel. Open to your management network, not the internet.
Inbound (localhost)Bound to 127.0.0.1 only. Never expose.
OutboundProxPanel → external service. Egress firewall rule.

For a typical single-server install with one BNG:

WhatPortDirectionRule
SSH22/tcpPublic (admin IPs only)ALLOW from <admin IPs>
HTTP redirect80/tcpPublicALLOW any
HTTPS panel443/tcpPublicALLOW any
RADIUS auth1812/udpLAN/BNGALLOW from <BNG IP>
RADIUS acct1813/udpLAN/BNGALLOW from <BNG IP>
CoA listener1700/udpLAN/BNGALLOW from <BNG IP>
TR-069 ACS7547/tcp (or 80 via nginx)Public (CPE)ALLOW any

Everything else (database, Redis, internal API) stays on 127.0.0.1.

DirectionPortProtoServicePurposeConfigurableDefault open in install
Inbound22TCPSSHAdmin shell accessYes (sshd_config)Yes (admin IPs only)
Inbound80TCPnginxHTTP→HTTPS redirect. Also proxies /acs to TR-069 ACS so routers that can’t open 7547 still work.nginx.confYes
Inbound443TCPnginxHTTPS panel (admin / reseller / customer / API)nginx.confYes
Inbound1812UDPproxpanel-radiusRADIUS Authentication (PAP, MS-CHAPv2, CHAP)Per-NAS in nas_devices.auth_portYes
Inbound1813UDPproxpanel-radiusRADIUS Accounting (Start / Interim-Update / Stop)Per-NAS in nas_devices.acct_portYes
Inbound1700UDPproxpanel-radiusCoA listener — MikroTik’s default for inbound CoA replies.Per-NAS in nas_devices.coa_portYes
Inbound3799UDPproxpanel-radiusCoA listener — RFC 5176 standard. Used by Cisco / Juniper / Huawei generic-RADIUS path.Per-NAS in nas_devices.coa_portOptional
Inbound7547TCPTR-069 ACSDirect ACS endpoint. Most installs proxy this through nginx :80//acs — that’s the recommended path.API container envOptional
Inbound (localhost)5432TCPPostgreSQL 16Database. Bound to 127.0.0.1 only (v1.0.178+)docker-compose.ymlLocalhost-only
Inbound (localhost)6379TCPRedis 7Cache + session store. Bound to 127.0.0.1 onlydocker-compose.ymlLocalhost-only
Inbound (localhost)8080TCPproxpanel-apiGo API server. nginx proxies /api/* to this.API env (API_PORT)Localhost-only
Outbound443TCPlicense.proxrad.comLicense validation, update download, anti-replay heartbeatLICENSE_SERVER envRequired
Outbound8728TCPMikroTik API (plain)RouterOS API to BNG — queues, PPP active, torch, pool reads.Per-NAS in nas_devices.api_portRequired
Outbound8729TCPMikroTik API (TLS)Same as above, encrypted. Set nas_devices.use_ssl=true.Per-NAS in nas_devices.api_ssl_portOptional
Outbound21TCPFTP (MikroTik)Backup retrieval for legacy NAS sync.Per-NAS in nas_devices.ftp_portOptional
Outbound25 / 465 / 587TCPSMTPEmail notificationsSettings → NotificationsOptional
Outbound443TCPUltramsg / ZenderWhatsApp gateway APISettings → NotificationsOptional

If you deploy the optional Loki+Grafana+Tempo+Prometheus stack (separate VM):

DirectionPortProtoServicePurposeDefault exposure
Inbound3000TCPGrafanaDashboards UIBehind reverse-proxy or admin IPs only
Inbound9090TCPPrometheusMetrics UI / APILocalhost or admin IPs
Inbound3100TCPLokiLog ingestion HTTPLocalhost or VPN
Inbound4317 / 4318TCPTempoOTLP trace ingestionLocalhost or VPN
Outbound9100TCPnode_exporterHost metrics scrape — Prometheus pulls from each ProxPanel serverOpen to Prometheus IP only
Outbound5060TCPmt-exporterMikroTik metrics scrape — Prometheus pulls from each NASOpen to Prometheus IP only

NAS rows in ProxPanel carry their own port configuration so heterogeneous BNGs can co-exist:

ColumnDefaultPurpose
auth_port1812RADIUS auth port on this NAS.
acct_port1813RADIUS accounting port on this NAS.
coa_port1700CoA port. MikroTik default = 1700; RFC standard = 3799.
api_port8728MikroTik API plain.
api_ssl_port8729MikroTik API TLS.
ftp_port21Optional FTP for legacy sync.
use_sslfalseWhether ProxPanel uses api_ssl_port instead of api_port.

The fleet uses non-standard SSH ports on some servers to reduce script-kiddie noise. As of 2026-05-12:

ServerSSH portNotes
Dev box ()22Public, key auth only
Acme customer ()2222Tunnelled to via license server
Acme ISP customer ()2223Tunnel port 20017
SaaS ()22
License main ()22Cloudflare LB origin
License backup ()22CF LB origin

All accept a single SSH key only — password auth is disabled.

The MikroTik BNG must accept connections from ProxPanel on the API ports:

/ip service set api address=<proxpanel-server-ip>/32 disabled=no
/ip service set api-ssl address=<proxpanel-server-ip>/32 disabled=no

If the BNG is behind a NAT, configure port-forwards for inbound RADIUS / CoA and outbound API.

bind: address already in use on RADIUS startup

Section titled “bind: address already in use on RADIUS startup”

Another process is listening on 1812/1813/1700 — usually freeradius from a prior install. Stop it: systemctl disable --now freeradius.

Either:

  • The MikroTik API service is disabled (/ip service enable api).
  • The MikroTik firewall blocks port 8728 from your ProxPanel IP.
  • nas_devices.use_ssl=true but the cert is invalid — set to false or fix the cert.

CoA disconnect not working but auth is fine

Section titled “CoA disconnect not working but auth is fine”

The BNG isn’t sending CoA replies to the right port. MikroTik defaults to 1700; the RFC default is 3799. Confirm nas_devices.coa_port matches what MikroTik is configured to use.

Outbound 443 to license.proxrad.com is blocked. The license server is behind Cloudflare; allowlisting Cloudflare’s IP ranges (or just 443/tcp to any) fixes this.

┌──────────────┐
443 ────────►│ │
80 ────────►│ nginx │──► 8080 (API)
7547 ────────►│ │──► /acs → 7547 (ACS)
└──────────────┘
┌──────────────┐
1812/UDP ──►│ proxpanel- │
1813/UDP ──►│ radius │──► postgres (5432, localhost)
1700/UDP ──►│ │──► redis (6379, localhost)
└──────────────┘
┌──────────────┐
│ MikroTik │ ◄── 8728 / 8729 (outbound from API)
│ BNG │
└──────────────┘

When the optional Hot-Standby RADIUS + PostgreSQL replication is enabled, the two cluster nodes need additional connectivity:

DirectionPortProtoServicePurposeNotes
Main → Secondary5432TCPPostgreSQL streaming replicationWAL stream from primary to replicaAuthenticated via replicator role + pg_hba.conf
Secondary → Main5432TCPReplication slotReplica fetches missed WAL on reconnectSame as above
Both directions80TCPCluster heartbeat / promotionNode health, manual failover triggerAuthenticated via X-Cluster-Secret header
Both directions6379TCPRedis replication (optional)Session sync for hot-standby RADIUSOptional — only when Redis replication is enabled

For the heartbeat to traverse intermediate firewalls, both cluster nodes typically sit on the same management VLAN. Putting them in different data centres requires a private link.

If you run the SaaS variant (saas.proxrad.com):

DirectionPortProtoServicePurposeNotes
Inbound51820UDPWireGuardTenant relay tunnels for RADIUS / API back to the central SaaS panelMust be grey-clouded if behind Cloudflare (UDP cannot proxy)
Inbound1812UDPRADIUS authDirect from tenant BNGs over the WireGuard tunnelGrey-cloud required
Inbound1813UDPRADIUS acctSameGrey-cloud required

The SaaS panel uses wildcard DNS (*.saas.proxrad.com) — every tenant gets a subdomain.

bind: address already in use on RADIUS startup

Section titled “bind: address already in use on RADIUS startup”

Another process is listening on 1812 / 1813 / 1700 — usually freeradius from a prior install. Stop it: systemctl disable --now freeradius.

Either:

  • The MikroTik API service is disabled (/ip service enable api).
  • The MikroTik firewall blocks port 8728 from your ProxPanel IP.
  • nas_devices.use_ssl=true but the cert is invalid — set to false or fix the cert.
  • Wrong port — newer ProxPanel installs default to 8728 but some legacy installs override to 8730+ via per-NAS api_port.

CoA disconnect not working but auth is fine

Section titled “CoA disconnect not working but auth is fine”

The BNG isn’t sending CoA replies to the right port. MikroTik defaults to 1700; the RFC default is 3799. Confirm nas_devices.coa_port matches what MikroTik is configured to use.

Outbound 443 to license.proxrad.com is blocked. The license server is behind Cloudflare; allowlisting Cloudflare’s IP ranges (or just 443/tcp to any) fixes this.

EADDRINUSE from the API container at startup

Section titled “EADDRINUSE from the API container at startup”

Port 8080 is in use on 127.0.0.1. Common causes: another local dev server, a leftover container from a previous docker compose up. docker ps -a | grep 8080 and remove the stale container.

MikroTik appears in NAS list but is_online=false

Section titled “MikroTik appears in NAS list but is_online=false”

ProxPanel polls /system/identity over the API every cycle. If polling fails three times in a row, the NAS is marked offline. Verify outbound TCP 8728 from the API host, and that the configured api_username has API permission on the router (/user group set full policy=...,api,...).

Terminal window
# Allow SSH from admin IPs
iptables -A INPUT -p tcp --dport 22 -s <admin-ip>/32 -j ACCEPT
# Allow HTTPS panel
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# Allow RADIUS + CoA from BNG only
iptables -A INPUT -p udp --dport 1812 -s <bng-ip>/32 -j ACCEPT
iptables -A INPUT -p udp --dport 1813 -s <bng-ip>/32 -j ACCEPT
iptables -A INPUT -p udp --dport 1700 -s <bng-ip>/32 -j ACCEPT
# Default deny
iptables -P INPUT DROP
Terminal window
ufw default deny incoming
ufw allow from <admin-ip> to any port 22 proto tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow from <bng-ip> to any port 1812 proto udp
ufw allow from <bng-ip> to any port 1813 proto udp
ufw allow from <bng-ip> to any port 1700 proto udp
ufw enable
  • Inbound: 22 (admin IPs), 80, 443 (any), 1812 / 1813 / 1700 UDP (BNG IPs).
  • Outbound: All (default). At minimum 443/tcp to any (license server, Ultramsg, etc.) and 8728 / 8729 TCP to BNG.