Helix Core is now P4. Product user interfaces will be updated soon. Learn more >>

P4 Server Administration Documentation | 2025.1

# Communicating port information

P4 Server applications need to know on what machine the `p4d` service is listening, on which TCP/IP port `p4d` is listening, and whether to communicate in plaintext or over SSL/TLS.

Set each P4 Server user’s P4PORT environment variable to `protocol:host`:`port`, where protocol is the communications protocol (beginning with `ssl:` for SSL/TLS, or `tcp:` for plaintext), `host` is the name of the machine on which `p4d` is running, and `port` is the number of the port on which `p4d` is listening. For example:

P4PORT | Behavior
--- | ---
`tcp:server1:3435` | P4 Server applications connect in plaintext to the P4 Server on host `server1` listening on port `3435`.
`tcp64:server1:3435` | P4 Server applications connect in plaintext to the P4 Server on host `server1` listening on port `3435`. The application first attempts to connect over an IPv6 connection; if that fails, the application attempts to connect via IPv4.
`ssl:example.org:1818` | P4 Server applications connect via SSL/TLS to the P4 Server on host `example.org` listening on port `1818`.
`<not set>` | P4 Server applications connect to the P4 Server on a host named or aliased `perforce` listening on port `1666`. Plaintext communications are assumed.

If you have enabled SSL/TLS, users are shown the server’s fingerprint the first time they attempt to connect to the service. If the fingerprint is accurate, users can use the `p4 trust` command (either `p4 trust -y`, or `p4 -p ssl:host:port trust -i fingerprint`) to install the fingerprint into a file (pointed to by the P4TRUST environment variable) that holds a list of known and trusted P4 Servers and their respective fingerprints. If `P4TRUST` is unset, this file is `.p4trust` in the user’s home directory.

Your search for returned results