Solving Low VPN Speed Issues
Introduction
When hosting your own VPN on our virtual servers, you may sometimes encounter issues with connection speed or stability.
In this article, we explain the main causes of speed reduction and methods to resolve them. Before starting optimization, it's necessary to perform diagnostics to determine the source of the problem.
Speed Diagnostics
First, you need to run speed tests from both your device and the server itself.
To test your network speed, we recommend using official applications from Ookla. Download links: Windows/macOS, iOS, Android
On the server, we also recommend using Ookla's official utility - Speedtest CLI. Detailed instructions for using Speedtest CLI are available in the article Server Speed Testing.
When testing speed, it's recommended to choose servers located in the same region as your server. This will provide more accurate measurement results.
If you identify speed issues on the server, we recommend contacting our support team for diagnostics and troubleshooting.
Network Settings
MTU
Due to the specifics of our network, for protocols using UDP (WireGuard, AmneziaWG, OpenVPN and others), the optimal MTU value on the server side is 1420
. This value prevents packet fragmentation and provides a more stable connection compared to automatically determined MTU.
On your VPN client side it is recommended to use a value of MTU 1332
or 1368
. If neither works well for you, try selecting a value between the two.
SNI
When using protocols like VLESS, V2Ray, and others that require SNI (Server Name Indication), consider the following recommendations:
- Use domains with a positive reputation
- Avoid suspicious names
- Ensure SSL certificates are "fresh"
- Choose domains with the lowest ping to reduce connection setup latency
Performance Optimization
VPN Protocols
Different VPN protocols have different performance characteristics:
- WireGuard: optimal performance, high speed, stable connection
- OpenVPN: stable connection, easy setup
- VLESS/V2Ray: high performance when configured correctly
System Settings
- TCP BBR configuration:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
- Network settings optimization:
cat >> /etc/sysctl.conf << EOF
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fack = 1
net.ipv4.tcp_ecn = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_timestamps = 1
EOF
sysctl -p
Monitoring
To maintain optimal performance, it's recommended to regularly check:
- CPU load
- RAM usage
- Network activity
- System logs
By regularly checking these parameters, you can be confident there are no issues with the server itself.
Conclusion
Optimizing VPN speed requires a special approach. Following the recommendations in this article will help improve your VPN server's performance. If speed issues persist after applying all recommendations, we recommend contacting our support team for further diagnostics.