Skip to main content

ZeroTier on AWS

This guide covers basic configuration and troubleshooting for deploying ZeroTier on Amazon Web Services (AWS). For connecting AWS to on-premise resources, see Bridging. For Azure deployments, see ZeroTier on Azure.

ZeroTier AWS Network Architecture

The diagram above shows a typical ZeroTier deployment on AWS, connecting EC2 instances through ZeroTier's encrypted network overlay while maintaining access to AWS services like RDS and S3.

Security Groups Configuration​

Required Ports​

ZeroTier requires specific ports for optimal connectivity:

Inbound Rules:

  • UDP 9993 - ZeroTier agent peer-to-peer communication (required)
  • TCP 443 - ZeroTier Central REST API for network management (optional, not required by agent)
  • ICMP - For network diagnostics (optional but recommended)

Outbound Rules:

  • All traffic - ZeroTier needs to connect to various ports for peer discovery
  • Or specific UDP 1-65535 if all traffic is not allowed

Example Security Group Configuration​

For general firewall guidance, see Corporate Firewalls.

# Create security group for ZeroTier
aws ec2 create-security-group \
--group-name zerotier-sg \
--description "ZeroTier Security Group"

# Allow ZeroTier protocol port
aws ec2 authorize-security-group-ingress \
--group-name zerotier-sg \
--protocol udp \
--port 9993 \
--cidr 0.0.0.0/0

# Allow HTTPS for ZeroTier Central API (optional - only if using REST API)
aws ec2 authorize-security-group-ingress \
--group-name zerotier-sg \
--protocol tcp \
--port 443 \
--cidr 0.0.0.0/0

Basic EC2 Setup​

Instance Configuration​

Install ZeroTier on EC2:

# Ubuntu/Debian
curl -s https://install.zerotier.com | sudo bash
sudo zerotier-cli join [NETWORK_ID]

# Amazon Linux 2
curl -s https://install.zerotier.com | sudo bash
sudo systemctl enable zerotier-one
sudo zerotier-cli join [NETWORK_ID]

Verify Installation:

# Check ZeroTier status
sudo zerotier-cli info

# List networks
sudo zerotier-cli listnetworks

# Check peers
sudo zerotier-cli peers

NAT Gateway Considerations​

AWS NAT Gateways implement Symmetric NAT, which can impact ZeroTier's peer-to-peer connectivity:

Issues:

  • Symmetric NAT prevents direct peer-to-peer connections
  • Increased latency due to relay traffic
  • Higher bandwidth costs for relayed connections

Solutions:

  • Deploy in public subnets where direct connectivity is needed
  • Configure routing to bypass NAT for ZeroTier traffic
  • Use bridge nodes to provide VPC access without NAT Gateway dependency

Testing NAT Connectivity​

# Check current network status
sudo zerotier-cli listnetworks

# Verify connectivity type
sudo zerotier-cli peers | grep -E "DIRECT|RELAY"

Simple Integration Examples​

Basic Database Connectivity​

Test connectivity to RDS or other VPC resources:

# Test MySQL/Aurora connectivity
mysql -h [RDS_ENDPOINT] -u [USERNAME] -p

# Test PostgreSQL connectivity
psql -h [RDS_ENDPOINT] -U [USERNAME] -d [DATABASE]

File Share Access​

# Mount EFS via NFS
sudo mount -t nfs4 [EFS_DNS_NAME]:/ /mnt/efs

# Test S3 access (if using VPC endpoint)
aws s3 ls s3://[BUCKET_NAME]/

Troubleshooting​

Connectivity Issues​

Check ZeroTier Status:

# View network status
sudo zerotier-cli listnetworks

# Check peers
sudo zerotier-cli peers

# View system logs
sudo journalctl -u zerotier-one -f

Verify AWS Security Groups:

# Check security group rules
aws ec2 describe-security-groups --group-ids [SECURITY_GROUP_ID]

# Test connectivity
telnet [TARGET_IP] [PORT]
nc -zv [TARGET_IP] [PORT]

Performance Issues​

Monitor Connection Types:

  • Direct connections - Optimal performance
  • Relayed connections - Higher latency, check firewall rules

Optimization Steps:

  1. Verify security group rules allow UDP 9993
  2. Check for symmetric NAT issues
  3. Ensure instances have direct internet access when possible
  4. Monitor CPU and network utilization

Common Issues​

  • Connection timeouts: Check security groups and NACLs
  • Relayed traffic: Deploy in public subnets or configure NAT bypass
  • High latency: Verify direct peer-to-peer connectivity
  • Service unreachable: Confirm target services are listening on ZeroTier interface

This basic setup provides secure connectivity between AWS resources and other ZeroTier network members while maintaining simplicity and reliability.