When it comes to reverse tunneling, you'll continuously be recommended 3 main options: FRP (Fast Reverse Proxy), Rathole, and ngrok.
And to be honest, it can be kind of difficult figuring out which one is the right reverse tunneling solution for you. They're all slightly different, tailored to different use cases.
That said, in this article, we'll be comparing all of these options in depth, and our goal is to make that decision much easier for you.
Let's dive in.
What are FRP, Rathole, and ngrok?
FRP
FRP is an open-source, reverse proxy tool that enables secure communication between internal services and external clients.
It supports various protocols, including HTTP, HTTPS, TCP, and UDP, allowing users to expose local servers to the internet, perform internal network penetration testing, enable remote desktop access, and more.
FRP also offers a P2P connect mode for enhanced functionality.
Rathole
Rathole is an open-source reverse proxy solution written in Rust, known for its high performance and low resource consumption.
Rathole is designed to handle NAT traversal efficiently, achieving higher throughput and stability compared to similar tools.
It supports TCP and UDP protocols and features mandatory service tokens for security, optional Noise Protocol encryption, and TLS support. Rathole can dynamically add or remove services by hot-reloading the configuration file.
ngrok
ngrok is a widely-used tunneling service that provides a secure way to expose local servers to the internet.
It offers both free and paid plans, with additional features like custom domains, authentication, and detailed usage analytics.
ngrok is popular among developers for testing webhooks, demonstrating prototypes, and conducting secure local development.
Who are they for?
FRP is best suited for developers who need a flexible and configurable tunneling solution, network administrators performing internal network penetration tests, and IT professionals requiring remote access to internal services.
Rathole is ideal for developers working with low-end devices or embedded systems, hobbyists and makers needing a lightweight reverse proxy, and system administrators looking for a straightforward and resource-efficient tunneling tool.
ngrok is perfect for developers needing a quick and easy way to expose local servers for testing and development, startups and small businesses looking for a professional-grade tunneling service with additional features, and educators and trainers demonstrating web applications in real-time.
Detailed comparison
Feature | FRP | Rathole | ngrok |
---|---|---|---|
Protocol Support | HTTP, HTTPS, TCP, UDP | TCP, UDP | HTTP, HTTPS, TCP, TLS |
Ease of Use | Moderate | Easy | Very Easy |
Configuration | Highly Configurable | Simple Configuration | Pre-configured |
Security | High | High | High |
Resource Usage | Moderate | Low | Moderate |
Custom Domains | Yes | No | Yes (Paid plan) |
Analytics | No | No | Yes (Paid plan) |
Free Plan | Yes | Yes | Yes (Limited features) |
Paid Plan | No | No | Yes |
Self-hostable | Yes | Yes | Partially (Paid license) |
Open-source | Yes | Yes | No |
Latency | Low | Very Low | Moderate |
Scalability | High | High | High |
Community Support | Active | Growing | Active |
Platform Support | Windows, Linux, macOS, BSD | Windows, Linux, macOS, BSD | Windows, Linux, macOS, BSD |
Documentation Quality | Extensive | Moderate | Extensive |
Additional Features | P2P Mode | Hot Reloading, Noise Protocol | Custom Domains, API access, Authentication, Ingress platform, and more |
Performance
FRP offers high performance with a focus on speed and security, making it suitable for high-traffic applications.
It's well-suited for scenarios where flexibility and configurability are crucial. FRP can handle multiple protocols, providing a versatile solution for diverse needs. However, it requires careful configuration to optimize performance, especially in complex environments.
Rathole is optimized for low resource usage and high performance, achieving higher throughput than FRP and maintaining stability with a large volume of connections.
Its lightweight nature makes it particularly suitable for low-end devices and embedded systems. Rathole’s efficient use of memory and processing power ensures that it performs well even under significant load, making it ideal for high-performance applications with limited resources.
ngrok provides balanced performance with a focus on ease of use and additional features for professional users.
While it may not achieve the same raw performance metrics as Rathole, ngrok excels in delivering a user-friendly experience with robust functionality. Its global network infrastructure ensures reliable performance and low latency for users worldwide. The inclusion of features like load balancing, observability, and zero-trust security enhances its suitability for production environments and professional use cases.
Usability
FRP requires some configuration and is best suited for users familiar with networking concepts.
Its flexibility comes with a steeper learning curve, but it offers extensive customization options for those who need it. FRP is ideal for developers and IT professionals who need a highly configurable solution and are comfortable with more complex setups.
Rathole is simple to set up and use, ideal for users needing a quick and efficient solution.
Its minimal configuration requirements and straightforward design make it accessible even for those with limited technical expertise. Rathole's hot-reloading feature allows dynamic updates to the configuration without downtime, enhancing its usability for ongoing maintenance and adjustments.
ngrok is extremely user-friendly with minimal setup, perfect for quick deployments and testing.
Its intuitive interface and pre-configured options reduce the time and effort required to get started. ngrok's comprehensive documentation and active community support further enhance its usability. It is well-suited for developers, startups, and educators who need a reliable and easy-to-use solution for exposing local services to the internet.
Installation process
FRP has a straightforward installation process that involves downloading the binary for your platform and configuring the frps.ini
and frpc.ini
files.
While the setup is simple, configuring it to meet specific needs may require a good understanding of network configurations and reverse proxy setups. FRP’s detailed documentation aids in this process, making it accessible for users who are willing to invest time in learning its configuration options.
Rathole is also easy to install, with binaries available for multiple platforms. In fact, its configuration is simpler than FRP’s.
ngrok, though, is still the easiest out of any of these reverse tunnels to get set up.
Users simply download and run the binary, and they can immediately start creating tunnels with a single command. This makes ngrok particularly attractive for quick demos, testing, and development purposes.
Support and community
FRP has a strong community of users and contributors, with active development and frequent updates.
Its open-source nature means users can contribute to the project, suggest features, and get help from other community members. The project’s GitHub repository is a hub for finding resources, reporting issues, and collaborating on improvements.
Rathole is gaining traction with a growing community.
The simplicity and performance benefits of Rathole attract users who contribute to its development and provide support through forums and GitHub. While it may not have as large a community as FRP or ngrok, its user base is dedicated and actively involved in improving the tool.
ngrok has a vast user base and strong community support.
Its widespread use among developers means that help and resources are readily available through forums, community sites, and comprehensive official documentation. The company behind ngrok also provides professional support for its paid plans, ensuring that users can get assistance with any issues they encounter.
Scalability
FRP is designed to handle a wide range of use cases, from small personal projects to large-scale deployments. Its ability to support multiple protocols and extensive configuration options makes it highly scalable. Users can deploy FRP on various server setups and scale their applications as needed, making it suitable for growing businesses and expanding projects.
Rathole offers excellent scalability, particularly for high-performance applications on resource-constrained devices. Its efficient resource usage allows it to handle a large number of connections without significant performance degradation.
ngrok provides scalability through its global network infrastructure, which is designed to handle high volumes of traffic and large-scale deployments. It works quite well, and they even offer things like load balancing.
Security Features
FRP emphasizes security with features such as token authentication, TLS support, and IP whitelist/blacklist configurations. These security measures help protect exposed services and ensure that only authorized users can access them. FRP’s flexibility allows users to implement additional security layers based on their specific requirements.
Rathole provides many security features, including mandatory service tokens, optional Noise Protocol encryption, and beyond.
ngrok offers comprehensive security features, including automatic TLS certificates, OAuth, SAML, OIDC authentication, and webhook signature verification. Its zero-trust model ensures that all connections are authenticated and encrypted, providing a high level of security for exposed services. Enterprise features like SSO, RBAC, and audit trails further enhance ngrok’s security capabilities, making it a trusted solution for sensitive applications.
Pricing models
FRP is completely free and open-source, making it an attractive option for budget-conscious users.
Rathole is also free and open-source, providing a high-performance tunneling solution without any associated costs.
ngrok offers a freemium model, with a free plan that includes basic features and paid plans that unlock advanced functionalities. The free plan is suitable for small projects and testing, while the paid plans provide enhanced features such as custom domains, API access, and professional support. This tiered pricing model allows users to start with the free version and upgrade as their needs grow.
Conclusion
Ultimately, the tunneling solution that's right for you just depends on your needs and use case. It's up to you to make that decision.
Hopefully, though, this article helped clear things up for you and made that decision easier. And hey... if not, why not just try all 3 and see what works best for you?
By the way, if you're looking for premium digital infrastructure, anywhere from production to hobbyist, xTom would love to be your next host. We offer things like colocation, dedicated servers, and transit through our xTom brand.
For scalable and self-service NVMe VPS hosting, which are great for things like reverse tunnels and development environments (but also reliable enough for production environments), you can check out our VPS line right here.
Thanks for reading!