VPN Connection Troubleshooting
VPN Connection Troubleshooting
Section titled “VPN Connection Troubleshooting”This guide explains exactly how ARROW devices establish VPN connections, what ports are required, and how to diagnose and resolve connectivity issues.
How NetBird VPN Works
Section titled “How NetBird VPN Works”ARROW uses NetBird, an open-source VPN built on WireGuard, for secure device connectivity. NetBird uses several techniques to establish connections:
Connection Flow
Section titled “Connection Flow”ARROW Device → Internet → NetBird Cloud Services → Your VPN Client ↓ 1. Management API (control plane) 2. Signal Service (coordination) 3. STUN (NAT traversal) 4. TURN/Relay (fallback)- Management Connection: Device authenticates with NetBird’s management API
- Signal Exchange: Devices exchange connection information via the signal service
- Direct P2P Attempt: Using STUN, devices try to establish a direct WireGuard tunnel
- Relay Fallback: If direct connection fails, traffic routes through relay servers
Required Outbound Ports
Section titled “Required Outbound Ports”The following ports must be allowed outbound from the network where the ARROW device is deployed:
Critical Services
Section titled “Critical Services”| Service | Destination | Protocol | Port(s) | Purpose |
|---|---|---|---|---|
| Management API | [org].arrowvpn.io | TCP | 443 | Authentication & control plane |
| Signal Service | [org].arrowvpn.io | TCP | 443 | Peer coordination |
P2P & NAT Traversal (STUN)
Section titled “P2P & NAT Traversal (STUN)”| Service | Destination | Protocol | Port(s) | Purpose |
|---|---|---|---|---|
| STUN | [org].arrowvpn.io | UDP | 80, 443, 3478, 5555 | NAT traversal for direct connections |
Relay Services (TURN)
Section titled “Relay Services (TURN)”| Service | Destination | Protocol | Port(s) | Purpose |
|---|---|---|---|---|
| TURN | [org].arrowvpn.io | UDP | 80, 443 | Relay fallback |
| TURN | [org].arrowvpn.io | TCP | 443-65535 | Relay fallback (TCP) |
| Relay | *.arrowvpn.io | TCP | 443 | Relay servers |
Complete Port Summary
Section titled “Complete Port Summary”For IT teams, here’s the complete list to whitelist (replace [org] with your organization’s subdomain):
# Essential (must have)[org].arrowvpn.io:443/tcp
# NAT Traversal (strongly recommended)[org].arrowvpn.io:80/udp[org].arrowvpn.io:443/udp[org].arrowvpn.io:3478/udp[org].arrowvpn.io:5555/udp
# Relay Fallback (required if direct P2P blocked)[org].arrowvpn.io:80/udp[org].arrowvpn.io:443/udp[org].arrowvpn.io:443-65535/tcp
# Or simply whitelist all ARROW VPN traffic:*.arrowvpn.io:443/tcp*.arrowvpn.io:80-65535/udpCommon Blocking Scenarios
Section titled “Common Blocking Scenarios”1. Corporate Firewall Blocking Unknown Traffic
Section titled “1. Corporate Firewall Blocking Unknown Traffic”Symptoms:
- Device appears offline in ARROW Portal
- VPN shows “Disconnected” or “Connecting…” indefinitely
- Device works on home/mobile networks but not corporate
Cause: Egress firewall blocks outbound connections to unknown destinations
Solution: Request the IT team whitelist the NetBird endpoints listed above
2. Deep Packet Inspection (DPI) Blocking WireGuard
Section titled “2. Deep Packet Inspection (DPI) Blocking WireGuard”Symptoms:
- Initial connection appears to work, then drops
- Intermittent connectivity
- “Connection timeout” errors
Cause: DPI/IPS detects and blocks WireGuard protocol traffic
Solution:
- Request WireGuard protocol be allowed
- NetBird will fall back to relay over TCP/443 (looks like HTTPS)
- Ensure TCP relay ports are open
3. Web Proxy Intercepting Connections
Section titled “3. Web Proxy Intercepting Connections”Symptoms:
- SSL/TLS errors in logs
- “Certificate verification failed”
- Works when bypassing proxy
Cause: Transparent proxy intercepts and re-signs HTTPS traffic
Solution:
- Add NetBird domains to proxy bypass list
- Configure proxy exception for
*.netbird.io
4. NAT/Firewall Blocking UDP
Section titled “4. NAT/Firewall Blocking UDP”Symptoms:
- Connection works but is slow
- High latency (>200ms) even on fast networks
- “Relay” indicator in NetBird status
Cause: UDP traffic is blocked, forcing TCP relay
Solution:
- Allow UDP ports 80, 443, 3478, 5555 outbound
- Direct P2P connections (UDP) are faster than relay (TCP)
5. Captive Portal / Network Authentication
Section titled “5. Captive Portal / Network Authentication”Symptoms:
- Device worked initially, stopped after network change
- “No internet” despite network connection
Cause: Network requires web authentication before allowing traffic
Solution:
- Complete captive portal authentication
- Use ethernet instead of guest WiFi when possible
Diagnostic Steps
Section titled “Diagnostic Steps”Use Arrow Manager VPN Connection Test (Recommended)
Section titled “Use Arrow Manager VPN Connection Test (Recommended)”Arrow Manager includes a built-in VPN Connection Test tool that checks connectivity to all required NetBird endpoints:
- Access Arrow Manager on the device
- Navigate to the Network or Diagnostics section
- Run the VPN Connection Test
- Review the results to see which endpoints are reachable and which are blocked
This test will show you exactly which ports/endpoints are being blocked by the client’s firewall without requiring manual command-line troubleshooting.
Manual Diagnostic Steps
Section titled “Manual Diagnostic Steps”If you need to manually diagnose (via Arrow Manager terminal or SSH):
Step 1: Verify Basic Connectivity
Section titled “Step 1: Verify Basic Connectivity”From the ARROW device (via Arrow Manager terminal or SSH):
# Test internet connectivityping -c 4 8.8.8.8
# Test DNS resolutionnslookup api.netbird.io
# Test management APIcurl -I https://api.netbird.ioExpected results:
- Ping should succeed
- DNS should resolve to an IP
- Curl should return HTTP 200 or 401
Step 2: Test Required Ports
Section titled “Step 2: Test Required Ports”# Test TCP 443 to managementnc -zv api.netbird.io 443
# Test TCP 443 to signalnc -zv signal.netbird.io 443
# Test UDP to STUN (requires netcat with UDP support)nc -zuv stun.netbird.io 3478Expected: “Connection succeeded” or “open” for each
Step 3: Check NetBird Service Status
Section titled “Step 3: Check NetBird Service Status”# Check service statussudo systemctl status netbird
# View recent logssudo journalctl -u netbird -n 50 --no-pager
# Check connection statussudo netbird statusLook for:
- Service should be “active (running)”
- Status should show “Connected” with peer information
- Logs should not show repeated “connection failed” messages
Step 4: Test Direct vs Relay
Section titled “Step 4: Test Direct vs Relay”# Show detailed peer statussudo netbird status -dCheck the connection type:
direct= P2P connection established (optimal)relay= Traffic routing through relay (working but slower)disconnected= No connection (firewall blocking)
Step 5: Network Trace
Section titled “Step 5: Network Trace”If connections fail, capture what’s being blocked:
# Watch connection attempts (run as root)sudo tcpdump -i any host api.netbird.io or host signal.netbird.ioQuick Firewall Rule Request Template
Section titled “Quick Firewall Rule Request Template”Send this to the client’s IT team:
Subject: Firewall Rules Required for ARROW Device
We need the following outbound connections allowed for our ARROW device to establish VPN connectivity:
VPN Endpoint (replace [org] with your organization subdomain):
- [org].arrowvpn.io
Required Ports:
- TCP 443 (management, signal, relay)
- UDP 80, 443, 3478, 5555 (NAT traversal)
Simplest Option - Whitelist all ARROW VPN traffic:
- *.arrowvpn.io on TCP 443 and UDP 80-65535
Notes:
- All connections are outbound only (no inbound required)
- Traffic is encrypted (WireGuard/TLS)
- Your specific VPN address was provided during onboarding
Fallback: Cellular Connection
Section titled “Fallback: Cellular Connection”If the client cannot or will not open required ports, ARROW devices include cellular failover:
- The device will automatically fall back to cellular if ethernet VPN fails
- Cellular connections bypass corporate firewalls entirely
- This is intended as a fallback, not primary connectivity
Device Not Online at All?
Section titled “Device Not Online at All?”If the device shows completely offline (not even on cellular), check the following:
1. Verify Device Power
Section titled “1. Verify Device Power”- Power Button: There is a power button on the side of the ARROW device. Press it to turn on the device.
- LED Indicator: Check for LED lights on the device - these indicate power status:
- LED On (solid or blinking): Device has power and is running
- LED Off: Device is not powered on - press the power button
- This is rare, but devices may be shipped powered off or accidentally turned off
2. Check Cellular Signal
Section titled “2. Check Cellular Signal”If the device has power (LED on) but still not connecting via cellular:
- Weak Signal Area: The device may be in a location with poor cellular coverage
- Indoor Placement: Cellular signal can be weak in basements, server rooms, or buildings with thick walls
- Antenna Position: Ensure the device antenna (if external) is properly connected
Solutions:
- Move the device closer to a window or exterior wall
- Try a different location in the building
- Consider an external antenna extension if available
3. Fall Back to WiFi Hotspot
Section titled “3. Fall Back to WiFi Hotspot”If cellular signal is unavailable, you can configure the device to use WiFi:
- Access Arrow Manager via the device’s WiFi hotspot (during initial setup)
- Configure WiFi settings to connect to an available network
- The device will use WiFi for VPN connectivity
Connection Status Indicators
Section titled “Connection Status Indicators”In ARROW Portal
Section titled “In ARROW Portal”| Status | Meaning |
|---|---|
| 🟢 Online | VPN connected, device healthy |
| 🟡 Degraded | Connected via relay (slow) or intermittent |
| 🔴 Offline | No VPN connection |
| ⚪ Unknown | Waiting for first connection |
In Arrow Manager
Section titled “In Arrow Manager”| VPN Status | Meaning |
|---|---|
| Connected | Full connectivity established |
| Connecting | Attempting to establish connection |
| Disconnected | Not connected (check firewall) |
| Error | Service error (check logs) |
Escalation Path
Section titled “Escalation Path”If you’ve verified firewall rules are correct and connectivity still fails:
-
Collect diagnostics:
Terminal window sudo netbird status -d > /tmp/netbird-status.txtsudo journalctl -u netbird --since "1 hour ago" > /tmp/netbird-logs.txt -
Note the following:
- Device hostname (PVE-XXXX)
- Client network configuration (proxy, DPI, etc.)
- Time of last successful connection
- Error messages from logs
-
Contact VTEM Labs support with the above information
Related Documentation
Section titled “Related Documentation”- VPN Management - VPN setup and configuration
- Device Management - Managing deployed devices
- Arrow Manager Troubleshooting - Device-specific issues