# Network, proxy and firewall

> Manage server ports in FeatherPanel: allocations, the primary port, subdomains, a reverse proxy with HTTPS, firewall rules and FastDL.

Source: https://featherpanel.com/docs/user/servers/network/

The Networking group in the server sidebar holds every page that deals with addresses and ports. Your host decides
which of these pages exist.

## Allocations

An allocation is an IP and port on the node. The **primary** allocation is the address players connect to.

- **Assign Allocation:** pick a free allocation on the node, or Auto for a random one.
- **Auto-Allocate:** let the panel assign a free allocation in one click.
- **Set Primary**, copy the address, or delete an extra allocation.

The plan limit is shown at the top of the page. Needs `allocation.read`, and `allocation.create`,
`allocation.update` or `allocation.delete` to change things.

## Subdomains

When the host added domains (`server_allow_user_made_subdomains`), **Create Subdomain** asks for a domain from the list
and a prefix, so `play` on `example.com` gives `play.example.com`. A server can have several, up to the limit the host
set. Needs `subdomain.manage`.

## Reverse proxy

A reverse proxy serves your own domain on ports 80 and 443 and forwards it to one of your server's ports, which suits
web panels, maps and other HTTP services.

1. Point an A record for the domain at the node IP shown in the form.
2. **Create Proxy**, enter the domain and pick the target port.
3. **Verify DNS**. The proxy cannot be saved until the record checks out.
4. Optionally **Enable SSL**: auto-generate a Let's Encrypt certificate with your email, or paste your own certificate
   and private key. Let's Encrypt certificates renew automatically.

The default limit is 5 proxies per server (`server_proxy_max_per_server`). Needs `proxy.read` and `proxy.manage`.

## Firewall

Firewall rules control which remote IPs can reach one of your allocations.

| Field | Notes |
| --- | --- |
| Allocation | The port the rule applies to. |
| Remote IP | Address the rule matches. |
| Protocol | TCP or UDP. |
| Priority | 1 to 10000. Lower numbers win. |
| Action | Allow or Block. |

Needs `firewall.read` and `firewall.manage`. Node side details are in
[Wings firewall and FastDL](https://featherpanel.com/docs/wings/firewall-and-fastdl#server-firewall).

## FastDL

FastDL serves files for Source engine games over HTTP from the node, so players download maps and addons from nginx
instead of the game server.

1. Pick an optional subdirectory (empty means `/fastdl` in the server files) and click **Enable FastDL**.
2. Copy the **Game Server Command**, which looks like `sv_downloadurl "https://..."`, into `server.cfg` or run it in the
   console.
3. Upload the files to the FastDL folder with the [file manager](https://featherpanel.com/docs/user/servers/files).

The node must be set up for FastDL first, see [Wings FastDL](https://featherpanel.com/docs/wings/firewall-and-fastdl#fastdl).

## Frequently asked questions

### How do I get a second port for a plugin or voice server?

Open Allocations and use Assign Allocation or Auto-Allocate, if your plan allows more than one allocation.

### How do I connect with play.example.com instead of an IP and port?

Create a subdomain on a domain your host offers, or add a reverse proxy for your own domain after pointing its A record at the node.

### Why is Proxy, Firewall or FastDL missing from my sidebar?

The host turned that feature off, or the node does not support it. Subusers also need the matching read permission.
