Thousands of configs.
Few work.
grep.su collects configurations from open sources, brings each one up on its own hardware and sends a request through it to an outside service. Only what answered enters the list. The published list is re-checked every five minutes.
16 sources5841 configs1868 addresses alive900 measured436 answered100 published
A public list is a list of addresses. Fewer than one in ten of them works.
Entries are published without being tested. Your app works through the dead ones at the moment you need the connection.
The name is set by whoever published the configuration. We take the country from the exit address and the speed from an actual download.
One server appears under dozens of names. Such entries are reduced to one by entry point and exit point.
Every configuration is tested under load, not by its description.
Eighteen independent sources. A reachability check removes dead addresses before any tunnel is started.
Each remaining entry gets its own tunnel and one outbound request. Latency, jitter and loss are recorded.
The published list is tested every five minutes. A node that stops answering is removed and the next one takes its place.
The list maintains itself. One action is required of you: add the link.
A node that stops working is replaced without your involvement: the app fetches the updated list on schedule.
More than twenty countries are present in the list at once. Switching between them is selecting a row in the app.
A separate selection of independent nodes: distinct entry points, measured throughput, stable identifiers.
01 What is in the list
Countries
Protocols
02 Tunnels
Nothing found
| # | Location | Protocol | Latency | Speed | Uptime |
|---|---|---|---|---|---|
| 01 | 🇪🇪Estonia ×2 | Vless [Reality] | 101 ms | 45 Mbit/s | 83% |
| 02 | 🇳🇱Netherlands ×21 | Ss [TCP] | 130 ms | 37 Mbit/s | 100% |
| 03 | 🇳🇱Netherlands, Dronten | Hysteria2 [QUIC] | 148 ms | 41 Mbit/s | 100% |
| 04 | 🇳🇱Netherlands, Lelystad | Ss [TCP] | 160 ms | 33 Mbit/s | 100% |
| 05 | 🇩🇪Germany, Frankfurt | Trojan [TLS] | 186 ms | — | 100% |
| 06 | 🇩🇪Germany | Trojan [TLS] | 188 ms | — | 100% |
| 07 | 🇦🇹Austria, Vienna | Hysteria2 [QUIC] | 190 ms | — | 100% |
| 08 | 🇩🇪Germany ×6 | Vless [Reality] | 195 ms | — | 75% |
| 09 | 🇵🇱Poland, Warsaw ×3 | Vless [Reality-gRPC] | 210 ms | — | 100% |
| 10 | 🇬🇷Greece, Thessaloníki | Hysteria2 [QUIC] | 218 ms | — | 100% |
| 11 | 🇮🇪Ireland, Dublin ×5 | Trojan [TLS] | 249 ms | — | 100% |
| 12 | 🇪🇸Spain, Barcelona | Ss [TCP] | 266 ms | — | 100% |
| 13 | 🇵🇱Poland, Warsaw | Trojan [TLS] | 298 ms | — | 100% |
| 14 | 🇬🇷Greece, Thessaloníki | Tuic [TCP] | 309 ms | — | 100% |
| 15 | 🇬🇷Greece, Thessaloníki | Ss [TCP] | 324 ms | — | 100% |
| 16 | 🇩🇪Germany, Frankfurt | Vless [Reality-gRPC] | 335 ms | — | 100% |
| 17 | 🇳🇱Netherlands, Amsterdam | Vless [Reality] | 335 ms | — | 100% |
| 18 | 🇳🇱Netherlands, Amsterdam | Vless [TLS-WS] | 341 ms | — | 100% |
| 19 | 🇩🇪Germany, Frankfurt | Hysteria2 [QUIC] | 270 ms | 16 Mbit/s | 100% |
| 20 | 🇵🇱Poland, Warsaw | Vless [Reality] | 346 ms | — | 92% |
| 21 | 🇺🇸USA, San Jose ×9 | Hysteria2 [QUIC] | 359 ms | — | 100% |
| 22 | 🇷🇸Serbia ×18 | Vless [Reality-gRPC] | 367 ms | — | 100% |
| 23 | 🇧🇬Bulgaria ×5 | Vless [Reality-gRPC] | 378 ms | — | 100% |
| 24 | 🇬🇷Greece, Thessaloníki | Vless [TLS] | 385 ms | — | 100% |
| 25 | 🇺🇸USA, Chicago | Ss [TCP] | 407 ms | — | 100% |
| 26 | 🇫🇮Finland, Helsinki | Vless [Reality] | 469 ms | 53 Mbit/s | 83% |
| 27 | 🇹🇷Turkey, Istanbul | Vless [Reality-gRPC] | 504 ms | — | 92% |
| 28 | 🇨🇭Switzerland, Geneva | Vless [Reality-gRPC] | 554 ms | — | 100% |
| 29 | 🇯🇵Japan, Tokyo | Hysteria2 [QUIC] | 637 ms | — | 100% |
| 30 | 🇭🇰Hong Kong | Vless [Reality] | 722 ms | — | 92% |
| 31 | 🇸🇬Singapore | Trojan [TLS] | 804 ms | — | 100% |
| 32 | 🇲🇩Moldova | Vless [Reality-gRPC] | 817 ms | — | 92% |
| 33 | 🇷🇺Russia | Vless [Reality-gRPC] | 972 ms | — | 83% |
| 34 | 🇮🇳India | Vless [Reality] | 975 ms | — | 100% |
| 35 | 🇹🇼Taiwan, Taipei | Tuic [TCP] | 1078 ms | — | 100% |
| 36 | 🇰🇷South Korea, Incheon | Trojan [TLS] | 1107 ms | — | 100% |
| 37 | 🇿🇦South Africa | Vless [Reality] | 1231 ms | — | 100% |
| 38 | 🇫🇷France, Paris | Hysteria2 [QUIC] | 947 ms | 14 Mbit/s | 100% |
| 39 | 🇹🇭Thailand, Bangkok | Vless [Reality] | 1643 ms | — | 100% |
03 Questions
No. We own no servers and charge nothing for access. What is tested is configurations already published in the open.
Published nodes are re-checked every five minutes; a full sweep of the sources runs every half hour. The time of the last check is shown in the header.
No. The service hands over configurations; your app connects to the node directly. Only the measurements use our infrastructure.
Any with subscription support: Happ, Streisand, Shadowrocket, v2rayNG, Hiddify, sing-box, Clash. The subscription page opens them with one tap.
Yes. Protocols, countries, minimum speed and node count are set in the bot. Changes apply without re-adding the link.
More than that answer. The published list takes the best by latency, speed and stability, no more than a quarter from any one country — a list of that size can be re-checked in full within five minutes.
Beyond the node list it configures routing — Russian services go direct, everything else through the tunnel — and it picks the tunnel for you: the app tests the nodes from your own device and keeps the working one with the lowest latency, switching over if it stops answering. Other apps receive the same node list as before.
The full profile — routing plus auto-select — goes to sing-box and Clash clients, and to Happ and v2rayTun via an Xray profile. Hiddify, v2rayNG, Streisand and Shadowrocket read only the node list, so turn on their own auto-select and routing there (in Hiddify: Auto mode and the Russia region bypass).
The bot issues a personal link. Add it to your app once — the list then updates without you.
Get a subscription