Collects ยท Filters ยท Deduplicates ยท Deep-Checks ยท Ranks ยท Publishes Fully automated. No ads. No login. No BS.
๐ Quick Start ยท ๐ Live Snapshot ยท ๐ Quality Tiers ยท ๐ Region Policy ยท ๐ All Subscriptions ยท โ๏ธ How It Works ยท ๐ฑ Clients
FastNodes is a fully automated, multi-vantage V2Ray/Xray proxy aggregator. Every hour, it fetches configs from 642 sources โ public GitHub repositories, Telegram channels, and standalone websites. It doesn't just list them; it runs them through a gauntlet of filters, deduplicates them by full config identity, and performs deep liveness checks using Xray-core, Cloudflare Workers, and Azure TLS probes.
The headline files are tuned for real-world usability: top.txt and verified.txt contain only Europe, Iran, and Iran-neighbor nodes โ the regions that empirically work. Everything else stays fully available in the global files.
Numbers from the latest full run (updated hourly โ typical values, not guarantees):
642 sources โโโบ 1,817,641 raw lines โโโบ 239,689 unique configs
โ
โโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโ
โ Dead-node & alias filters โ
โ (NXDOMAIN ยท TCP-RST ยท bogon) โ
โโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโ
โผ
192,413 alive nodes
โ
โโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโ
โผ โผ โผ
34,123 TLS-verified 734 Xray-verified 276 Edge-verified
(CF-fronted excluded) (FULL roundtrip, (CF 2nd vantage,
Europe/IR only) preferred regions)
โ โ
โโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโ
โผ
top.txt + verified.txt
(Europe + Iran + neighbors ONLY)
vless โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 145,240 (75.5%)
trojan โโโโโ 18,168 ( 9.4%)
vmess โโโโ 13,442 ( 7.0%)
ss โโโ 10,460 ( 5.4%)
hysteria2 โ 3,879 ( 2.0%)
wireguard โ 626 ( 0.3%)
ssr/tuic/socks/anytls/hysteria/socks5 598 ( 0.3%)
Europe โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ 75,684 (39.3%)
North America โโโโโโโโโโโโโโโโโ 31,067 (16.1%)
Asia โโโโโโโโโโโโโ 26,098 (13.6%)
Africa โโ 2,922 ( 1.5%)
Oceania โ 942 ( 0.5%)
South America โ 777 ( 0.4%)
| Metric | Value |
|---|---|
| Total runtime | ~21 minutes (of a 50-minute budget) |
| Raw lines parsed per run | ~1.82 million |
| Nodes dropped as provably dead | ~47,000 (NXDOMAIN + TCP-RST + bogons) |
| Xray deep check | 734/2,682 roundtrips completed in 161s โ 0 skipped by budget |
| Sources healthy / dead | 629 / 13 |
| History tracked (cross-run) | ~195,000 nodes |
| Nodes marked stable (3+ runs) | ~189,700 |
The fastest way to get working proxies. Just copy a link and paste it into your client (Hiddify, v2rayNG, NekoBox, etc.):
| What | Link |
|---|---|
| ๐ Top 1000 Ranked | https://raw.githubusercontent.com/rtwo2/FastNodes/main/sub/top.txt |
| ๐ฐ๏ธ Xray Verified (Europe + IR region) | https://raw.githubusercontent.com/rtwo2/FastNodes/main/sub/verified.txt |
| ๐ Everything (all regions) | https://raw.githubusercontent.com/rtwo2/FastNodes/main/sub/everything.txt |
| ๐ WireGuard (NekoBox) | https://raw.githubusercontent.com/rtwo2/FastNodes/main/sub/protocols/wireguard.txt |
top.txtandverified.txtcontain only Europe + Iran + Iran-neighbor nodes (๐ช๐บ๐ฎ๐ท๐น๐ท๐ฆ๐ช and neighbors). This matches empirical performance: European and Iranian-region servers connect reliably; US/Asia/CF-fronted free nodes rarely do. All other regions remain fully available in the global files below.
| File | Typical size | What it is |
|---|---|---|
sub/top.txt |
1,000 | The precision file. Europe + IR + neighbors only, ranked by composite score (observed range 117โ187). Gate: at least one affirmative current signal. |
sub/verified.txt |
~730 | The strongest life signal. Europe + IR + neighbor nodes that proxied a real HTTP generate_204 request end-to-end through xray-core this run. The entire roundtrip budget is spent exclusively on these regions. Never ships empty โ falls back to the last successful set if the check stage ever fails. |
sub/verified_tls.txt |
~34,000 | Nodes that completed a TLS handshake with their real SNI from a clean vantage. CF-fronted hosts are excluded (~32K per run) โ an edge handshake terminates at Cloudflare and proves nothing about the backend behind it. |
sub/curated.txt |
~45,000 | Nodes from explicitly Iran-tested sources, PLUS nodes that are both stable and TLS-verified. |
sub/stable.txt |
~190,000 | Nodes that have survived 3+ consecutive hourly runs without being dropped. |
sub/everything.txt |
~192,000 | The full, uncapped list of all surviving nodes โ all regions. Never split. |
sub/protocols/wireguard.txt |
~40 | WireGuard nodes as Clash YAML โ keys strictly validated (32-byte, base64-normalized), NekoBox imports this directly. |
sub/wireguard/*.conf |
~40 files | Individual sanitized .conf files โ WireGuard app imports these directly. |
One simple rule: top.txt and verified.txt admit only Europe, Iran, and Iran-neighbor countries (TR, AE, IQ, AM, AZ, TM, AF, PK, QA, KW, BH, OM, SA, GE, KZ). Every other output file remains global.
The Xray roundtrip budget and the Cloudflare Edge budget are spent exclusively on preferred-region nodes โ a verified US or Asian node would earn points it can never spend, so the budget goes where it pays. Within the region, nodes are ordered by a composite score:
| Signal | Points | What it proves |
|---|---|---|
| Xray roundtrip | +35 | A real HTTP request was proxied through this node, end-to-end |
| Iran-tested source | +30 | Delegated validation: a maintainer tested this node from inside Iran |
| CF Edge verified | +20 | Alive from a second vantage class (Cloudflare edge) |
| TLS verified | +20 | Completed a TLS handshake with the node's real SNI |
| Region weight | up to +27 | Europe-first ordering within the allowed set |
| Presence streak | up to +20 | Survived N consecutive hourly runs of all drop filters |
| Xray streak | up to +15 | Roundtrip-verified N runs in a row |
| Multi-source | up to +10 | Published by 2+ independent sources (ecosystem consensus) |
| Azure TLS probe | ๐ฐ๏ธ Xray deep check | ๐ CF Edge Worker | |
|---|---|---|---|
| Depth | TLS handshake only | Full proxy roundtrip (real traffic) | TCP + TLS handshake |
| Region focus | Global | Europe + IR + neighbors only | Europe + IR + neighbors only |
| CF-fronted nodes | Skipped โ edge handshakes prove nothing | โ Only valid judge of CF nodes | Skipped (platform restriction) |
| Drops on fail? | Never | Never | Never |
Why skip CF-fronted hosts in TLS? A TLS handshake with a Cloudflare edge server always succeeds โ even when the proxy hiding behind it is dead, because the handshake terminates at the edge and never reaches the origin. That fake "+20 verified" signal was flooding
top.txtwith CF nodes that never work. CF nodes can now only prove life through a genuine Xray roundtrip.
Why is verified.txt never empty? If the Xray stage ever fails to run (stage failure, binary issue), the last successful set is shipped from
state/verified_last.txtinstead of an empty subscription. Stale beats empty for a live subscription.
All output is plain raw URI lists (.txt) โ one config per line, works in every V2Ray/Xray client. Output files are sorted alphabetically (Host โ Protocol) for stability.
everything.txt and the quality tiers are never split. Every other category (protocols, countries, continents) caps at 1000 lines per file. The first 1000 always stay in xx.txt โ that link never changes โ and everything beyond that spills into xx_part2.txt, xx_part3.txt, etc.
sub/protocols/vless.txt โ first 1000
sub/protocols/vless_part2.txt โ next 1000
Nodes are classified by their resolved IP family (hostname nodes are included based on their DNS lookup).
| URL |
|---|
https://raw.githubusercontent.com/rtwo2/FastNodes/main/sub/ipv4_only.txt |
https://raw.githubusercontent.com/rtwo2/FastNodes/main/sub/ipv6_only.txt |
Base path: https://raw.githubusercontent.com/rtwo2/FastNodes/main/sub/protocols/
Recognized protocols: vmess, vless, trojan, ss, ssr, hysteria, hysteria2 (+ hy2 alias), tuic, wireguard, socks, socks5. Each gets its own file if at least one alive node uses it:
| Protocol | Nodes | File |
|---|---|---|
| ๐ต VLESS | ~145K | vless.txt |
| ๐ฃ Trojan | ~18K | trojan.txt |
| ๐ VMess | ~13K | vmess.txt |
| โซ Shadowsocks | ~10K | ss.txt |
| โก Hysteria2 | ~4K | hysteria2.txt |
| ๐ WireGuard | ~40 | wireguard.txt โ Clash YAML for NekoBox |
WireGuard users: The
wireguard.txtfile is a Clash YAML config (NekoBox imports it directly). Individual.conffiles for the official WireGuard app are in thesub/wireguard/directory. All keys are strictly validated โ nodes with malformed keys are dropped rather than crashing your client.
Base paths:
https://raw.githubusercontent.com/rtwo2/FastNodes/main/sub/continents/https://raw.githubusercontent.com/rtwo2/FastNodes/main/sub/countries/
Popular countries:
| Country | Nodes | File | |
|---|---|---|---|
| ๐ฎ๐ท | Iran | ~6.8K | IR.txt |
| ๐ฉ๐ช | Germany | ~17K | DE.txt |
| ๐บ๐ธ | United States | ~29K | US.txt |
| ๐ท๐บ | Russia | ~20K | RU.txt |
| ๐ฌ๐ง | United Kingdom | ~5.8K | GB.txt |
| ๐ซ๐ท | France | ~6.4K | FR.txt |
| ๐ณ๐ฑ | Netherlands | ~6.5K | NL.txt |
Around 90 countries are typically available. Just swap the country code in the URL pattern.
Every output file is a plain raw URI list โ works in virtually every V2Ray/Xray client:
| Client | Platform | How to import |
|---|---|---|
| Hiddify | Android / iOS / Desktop / Windows | Add Profile โ URL โ paste .txt link |
| v2rayNG | Android | Subscription โ Add โ paste .txt link |
| NekoBox / NB4A+ | Android | Profile โ New โ paste .txt link |
| NekoBox (WireGuard) | Android | Profile โ New โ paste wireguard.txt link โ imports Clash YAML |
| Shadowrocket | iOS | Add โ Type: Subscribe โ paste link |
| Streisand | iOS | Add Config โ paste link |
| v2rayN | Windows | Subscription Group โ Add โ paste .txt link |
| Nekoray | Windows / Linux | Preferences โ Subscription โ paste link |
| WireGuard app | Android / iOS / Windows | Import .conf files from sub/wireguard/ directory |
Raw URI lists work everywhere and load faster. For WireGuard, a Clash YAML config is provided specifically for NekoBox compatibility.
FastNodes runs a 5-stage pipeline every hour, with multiple fail-soft verification layers. Every stage is designed to never kill the pipeline if a third-party service crashes.
642 Sources (GitHub ยท Telegram ยท web, fetched in parallel)
โ ~1.82M raw lines โ 240K unique configs
๐งน Step 1: Decode & Smart Dedup (full config identity + alias collapse)
โ
๐ Step 2: GeoIP Lookup (106K unique hosts โ City ยท Org ยท Country, DNS cached)
โ
๐ Step 3: Dead-Node Filters (~47K dropped: NXDOMAIN ยท TCP-RST ยท bad IPs)
(Timeouts NEVER drop a node; circuit breakers protect against mass-drops)
โ
๐ Step 4: Multi-Vantage Promotion (Fail-Soft)
โโ TLS Verification โ ~34K promoted (CF-fronted hosts SKIPPED: ~32K per run)
โโ ๐ฐ๏ธ Xray Deep Check โ REAL proxy roundtrip via xray-core, candidates drawn
โ EXCLUSIVELY from Europe/IR/neighbors (2,682 candidates, 734 verified,
โ 161s โ xray's output pipes are drained live to prevent startup freezes)
โโ ๐ Edge Verification โ Cloudflare Worker 2nd vantage, pools drawn
โ EXCLUSIVELY from preferred regions (~276 promoted; catches nodes that
โ geo-block US datacenters)
โโ ๐ Stability Tracking (195K nodes in state/history.json)
โ
๐พ Step 5: Region Gate + Composite Score & Publish
top.txt + verified.txt โ Europe/IR/neighbors ONLY
all other files โ global, alphabetical
Most collectors dedup on host:port only, which silently drops configs with different UUIDs on the same server. FastNodes deduplicates on the full config identity:
protocol + host + port + credential + transport + security + SNI
+ path + REALITY pbk/sid + flow + obfs-password
If a server hosts multiple VLESS configurations (common with Xray setups), all of them are kept. On top of the identity key, an alias-collapse pass re-keys every node on its resolved IP and merges spelling-variants โ vless://uuid@1.2.3.4:443 and vless://uuid@server.com:443 ship as one node, keeping the hostname form (which survives IP rotation).
Each remark is geo info + server address. When multiple nodes share the same server, each gets a port suffix so you can tell the inbounds apart:
๐ฉ๐ช Frankfurt, DE ยท Hetzner | example.com โ only node on this server
๐ฉ๐ช Frankfurt, DE ยท Hetzner | example.com :8443 โ 2nd node, port 8443
๐ฉ๐ช Frankfurt, DE ยท Hetzner | example.com :8443ยทvless โ same port, different protocol
The suffix is stable across runs โ the input list is sorted (host โ port โ protocol) before naming, so the same server:port always gets the same suffix.
FastNodes/
โโโ .github/workflows/collect.yml # Hourly run, Xray setup, drives everything
โโโ ProxyCollector/
โ โโโ Collector/ProxyCollector.cs # Core engine โ fetchโparseโverifyโrank
โ โโโ Configuration/CollectorConfig.cs# Source list loading & normalization
โ โโโ Services/IPToCountryResolver.cs# GeoIP + bounded DNS, shared cache
โ โโโ Models/ # CityInfo, CountryInfo
โโโ state/
โ โโโ history.json # Hashed cross-run streak tracking (~195K nodes)
โ โโโ verified_last.txt # Last successful verified.txt set (empty-file fallback)
โโโ sub/
โโโ everything.txt # All surviving nodes โ never split
โโโ top.txt # Top 1000 โ Europe + IR + neighbors ONLY
โโโ verified.txt # Full Xray roundtrip โ Europe + IR + neighbors ONLY
โโโ verified_tls.txt # Azure TLS successes (CF-fronted excluded)
โโโ curated.txt # Iran-tested or stable+TLS-verified
โโโ stable.txt # 3+ consecutive hourly runs
โโโ ipv4_only.txt / ipv6_only.txt # By resolved IP family
โโโ protocols/ # Per-protocol .txt, chunked at 1000
โ โโโ vless.txt # โ first 1000 vless nodes
โ โโโ vless_part2.txt # โ overflow
โ โโโ wireguard.txt # โ Clash YAML config (NekoBox-importable!)
โ โโโ ...
โโโ wireguard/ # Individual .conf files (WireGuard app)
โ โโโ 001 Cloudflare 162.159.192.0.conf
โ โโโ ...
โโโ countries/ # Per-country .txt, same chunking
โโโ continents/ # Per-continent .txt, same chunking
Filtered on affirmative death only: NXDOMAIN, TCP-refused, bad resolved-IPs, alias duplicates. A node that merely times out from GitHub is kept โ it may work fine from your location.
Location labels come from resolved IPs, not source remarks: free-proxy channels routinely label dead US servers "๐ฉ๐ช Germany". FastNodes shows the physical location of the IP you connect to. CF-fronted nodes will show the edge's country, not the backend's.
This project does not:
- Host or operate any proxy servers
- Guarantee any node is online or reachable
- Guarantee any node works in your specific location or ISP
- Collect any user data whatsoever
All configs are sourced from publicly available GitHub repositories, Telegram channels, and public subscription sites. Credit goes to all the original collectors and server operators.
FastNodes aggregates from 642 public sources (GitHub repositories, Telegram channels, and standalone sites). Major contributors include: AvenCores, morpheusadam, MatinGhanbari, barry-far, Epodonios, Surfboardv2ray, 10ium, NiREvil, F0rc3Run, mahdibland, 4n0nymou3, sakha1370, wuqb2i4f, V2RayRoot, sevcator, igareck, youfoundamin, HosseinKoofi, Argh94, Mahdi0024, liketolivefree, AzadNetCH, Leon406, roosterkid, ebrasha, Danialsamadi, LalatinaHub, Farid-Karimi, 0xRadikal, Diversan313, Au1rxx, MustafaBaqer, MahanKenway, SoliSpirit, Delta-Kronecker, and many others.