Skip to main content

Overview

Wings manages network configuration for all game servers running on a node, handling port allocation, IP binding, and network isolation through Docker.

Network Architecture

Port Allocation

Wings assigns network ports to servers based on allocations configured in the Panel.

How Allocations Work

  1. Panel Configuration: Create allocations in Panel → Nodes → Allocations
  2. Server Assignment: Assign allocations when creating a server
  3. Wings Implementation: Wings maps container ports to host ports

Primary Allocation

Every server has one primary allocation:
This creates environment variables available in startup commands:

Additional Allocations

Servers can have multiple allocations for additional services:
From ServerConfigurationStructureService (app/Services/Servers/ServerConfigurationStructureService.php:72):

IP Binding

Default Binding (0.0.0.0)

Most servers bind to all interfaces:
This allows connections from any IP address on the host.

Specific IP Binding

Bind to a specific IP address:
Useful for multi-IP setups or DDoS protection services.

Multiple IPs per Node

Configure multiple IPs in Panel → Nodes → Allocations:
This allows distributing servers across different IPs.

Docker Network Configuration

Bridge Network

Wings uses Docker’s default bridge network:
Containers get:
  • Internal IP (e.g., 172.17.0.x)
  • Port mappings to host
  • NAT for outbound connections

Port Mapping

Wings creates Docker port mappings:
This maps container port 25565 to host port 25565 for both TCP and UDP.

Force Outgoing IP

Some eggs force outgoing traffic to use the allocation IP:
This ensures the server’s outbound connections use the correct IP (important for licensing servers).

Firewall Configuration

Required Ports

UFW (Ubuntu/Debian)

FirewallD (CentOS/RHEL)

iptables

SFTP Configuration

Wings runs an integrated SFTP server for file management.

SFTP Settings

Configure in /etc/pterodactyl/config.yml:

SFTP Connection

Users connect with the format:
Example:

SFTP Authentication Flow

  1. User connects to Wings SFTP server
  2. Wings extracts username and server ID
  3. Wings calls Panel’s /api/remote/sftp/auth endpoint (app/Http/Controllers/Api/Remote/SftpAuthenticationController.php:34)
  4. Panel validates credentials and permissions
  5. Panel returns user UUID and permissions
  6. Wings grants access to server files

SFTP Permissions

The Panel returns permissions for the authenticated user:
Wings enforces these permissions on SFTP operations.

Wings API Networking

API Configuration

API Endpoints

The Panel communicates with Wings through these endpoints:
  • GET /api/system - System information
  • GET /api/servers - List all servers
  • GET /api/servers/{uuid} - Server details
  • POST /api/servers/{uuid}/power - Power actions
  • POST /api/servers/{uuid}/commands - Send console command
  • GET /api/servers/{uuid}/logs - Get console logs
  • GET /api/servers/{uuid}/files - List files
  • POST /api/servers/{uuid}/files/upload - Upload file

Authentication

Wings API uses token-based authentication:
The token is configured in /etc/pterodactyl/config.yml:

WebSocket Console

Wings streams server console output via WebSocket.

WebSocket Connection

Clients connect to:
Authentication uses a JWT token from the Panel.

CORS Configuration

Restrict WebSocket origins:
This prevents unauthorized domains from connecting to server consoles.

Network Performance Optimization

TCP BBR Congestion Control

Enable BBR for better throughput:

Network Buffer Tuning

Connection Tracking

Increase conntrack limits for high-traffic nodes:

Port Allocation Best Practices

Port Ranges

Recommended port allocation strategy:

Allocation Creation

Create allocations in bulk:
Or via API:

IPv6 Support

Wings supports IPv6 allocations:

Enable IPv6

IPv6 Allocations

Add IPv6 allocations in the Panel:

Troubleshooting

Port Already in Use

Connection Refused

Wings API Unreachable

SFTP Connection Issues

Advanced Networking

Custom Docker Network

Create a dedicated network for Pterodactyl:

Network Isolation

Isolate servers from each other:

DDoS Protection

Integrate with DDoS protection:
  1. Use separate IPs for protected servers
  2. Route traffic through protection service
  3. Configure protected IPs in Panel allocations

Next Steps

Security

Secure your network configuration

Monitoring

Monitor network performance

Docker Management

Learn about container networking

Configuration

Advanced configuration options