Skip to main content

Configure ports

To enable communication you must expose Hyperledger Besu ports appropriately. The following shows an example port configuration for a Besu node on AWS.

Port Configuration

When running Besu from the Docker image, expose ports.


Besu supports UPnP for home or small office environments where a wireless router or modem provides NAT isolation.

P2P networking

To enable peer discovery, the P2P UDP port must be open for inbound connections. Specify the P2P port using the --p2p-port option. The default is 30303.

We also recommend opening the P2P TCP port for inbound connections. This is not strictly required because Besu attempts to open outbound TCP connections. But if no nodes on the network are accepting inbound TCP connections, nodes cannot communicate.

Combine the P2P port with the values for the --p2p-host and --p2p-interface options when specifying the P2P host and P2P network interface.


By default, peer discovery listens on (all interfaces). If the device Besu is running on must bind to a specific network interface, specify the interface using the --p2p-interface option.


To enable access to the JSON-RPC API, open the HTTP JSON-RPC and WebSockets JSON-RPC ports to the intended users of the JSON-RPC API on TCP.

Specify the HTTP and WebSockets JSON-RPC ports using the --rpc-http-port and --rpc-ws-port options. The defaults are 8545 and 8546.


To enable Prometheus to access Besu, open the metrics port or metrics push port to Prometheus or the Prometheus push gateway on TCP.

Specify the ports for Prometheus and Prometheus push gateway using the --metrics-port and --metrics-push-port options. The defaults are 9545 and 9001.