fshy / IP and proxies / Storage
iroh-dns-server
github.com · IP and proxies, Storage · 3 records · JSON
- monosans/proxy-list IP and proxiescaveatanonymousno cardMretention-clamped
- iroh-dns-server (as a hosted third-party service) Storagefails: quotaemail?card?R
- TheSpeedX/PROXY-List IP and proxiesdeadanonymousno cardM
monosans/proxy-list IP and proxies
caveatanonymousno cardMretention-clamped
| Free tier | Free, no key: an unauthenticated GET returned 1,751 proxies in one JSON document, 1,178 SOCKS5, 434 HTTP and 139 SOCKS4, each row carrying its response time, exit IP, ASN number and organisation, and a geolocation block, and the list is regenerated hourly with a full-fetch verification. unit objects; metered on none; The unit is addresses: the 1,751 is the whole published list, counted row by row from the response read on 2026-10-24, not an allowance. Nothing is charged and nothing is counted against the client. The schema's unit enum has no token for an address, so the nearest one is used and the count is stated here in full. |
|---|---|
| Price | none stated |
| Per-object cap | not applicable |
| Retention | not applicable: a live proxy address, not stored bytes |
| Egress | The publisher meters nothing and states no traffic term: the bytes cross the third-party address that the row names, so the exit network belongs to the proxy's operator and no allowance, cap or price for it is published with the list. free_allowance: none published |
| Identity | anonymous No account, key or email: the endpoint answered an unauthenticated GET on 2026-10-24 and the 1,751-row JSON was used as returned. Nothing identifies the client and nothing about the list costs a registration. |
| Limits |
|
| Binding | retention-clamped Nothing the vendor meters fails first: no key, no account, no published rate limit and no byte quota exist to hit. The ceiling is how long an address stays usable. 29% of a verified working set was still working 22 minutes later, and 11 of the 21 addresses working at the second check had failed at the first, so the list has to be re-pulled and re-verified far more often than the vendor's hourly refresh, and that churn rather than any allowance is what limits the gateway. |
| Interface | rest The addresses it returns speak socks5, http and socks4 (1,178, 434 and 139 of the 1,751 rows). The schema's interface enum has no token for a proxy protocol, so the three protocols are named here rather than in the array. |
| Tooling | A single curl, or any HTTP client, pulls the JSON; no account, key, SDK or wrapper is involved. Filtering by registration class is a few lines against the asn.autonomous_system_number field, which is the point of this list: the choice can be made before a request is spent. Using an address afterwards needs a client that speaks its protocol, which curl -x and rclone --http-proxy both do for http and socks5, and which curl -x socks4 does for the SOCKS4 rows. |
| Composes with | A supply of egress addresses for the Workers AI gateway that can be filtered before use: the row's ASN lets the measured exits be split into consumer ISP and mobile networks against hosting, which is the split no other free list in this topic publishes, so the gateway can aim at a registration class instead of taking whatever the list returns. |
| Reliability | Open proxies of unknown ownership that churn as well as shrink: 35 of 100 sampled addresses carried a payload at the first check and 21 of 100 22 minutes later, with 25 stopping and 11 starting, and 24 of the 59 measured exits sat in consumer ISP or mobile ASNs (China Mobile AS9808, Viettel AS7552, Cox AS22773, Biznet AS17451, TATTELECOM AS28840, Superonline AS34984) rather than in datacentres. |
| Notes | Three candidates for why the list yields about a third and less, tested rather than assumed. (1) The harness cannot use this protocol mix, refuted because 35 of the same 100 addresses carried a payload under the identical harness on the first run, and the failures are spread across all three protocols rather than concentrated in one. (2) The list is stale, which the decay measurement supports and the hourly regeneration argues against: the addresses are fresh, they simply do not last, so the correct description is churn rather than rot. (3) A vantage-point or diurnal effect, not refuted, because both runs sit inside 22 minutes on one machine and only runs spread across a day would separate it from (2). The verdict rests on (2) with (3) open. One correction to the survival figure this list is usually described by: the 60% is the ratio of the two yields, 21 over 35, not the survival of the same addresses. Intersected on host and port, 10 of the 35 addresses that worked at the first check worked at the second, which is 29%, and 11 of the 21 working at the second check had failed at the first. Both results files carry host and port, so the intersection is reproducible in one pass, and the difference matters because a reader planning a pull schedule acts on the survival number and not on the yield ratio. The 59 exit addresses are not the mono sample alone: the mono runs produced 39 distinct exits between them and 29 of those appear in this set, so the file aggregates measured exits from the whole lane and the composition figures describe that population. Under a classification that counts consumer ISP, cable and mobile networks against hosting, cloud and tor, my own enumeration of the file gives 27 rather than the 24 recorded here, and the named per-ASN tallies in the file are Cox 5 and Viettel 4 where the assignment states 6 and 5, so 24 is carried as the classification figure it is, not as a measurement, and a later session recomputing it must state its definition. Why this list is qualifies-with-caveat while dossier/ip-proxy/proxyscrape-free-list.json is dead at a comparable yield, 32% against 35%: the ASN field. Proxyscrape publishes no ASN, so its addresses are indistinguishable until one is spent; here the registration class is on the row, which is rung 5 reachable before the first request, and that is the whole difference between a blind pool and a pool that can be aimed. Weight: each rate is one pair of runs over 100 of 1,751 lines, so the churn is a point estimate with no interval, though 25 addresses stopping against 11 starting is a net fall the sample is large enough to show. What would settle the hourly regeneration is two fetches an hour apart with different ETags, which was not run. On shape: the assignment names the interface tokens socks5 and http-proxy, but scripts/dossier/schema.json restricts interface[] to its own enum, which has no proxy-protocol token, and scripts/dossier/validate.py enforces that enum, so the array carries rest and the three protocols are stated in interface_detail. Searched dossier/ and docs/ for an existing record naming this list to correct; none exists outside .tmp, so this record corrects nothing outside itself. |
| Evidence rung | measured Every field the verdict rests on was measured on 2026-10-24: the anonymous unauthenticated fetch, the 1,751 rows and their protocol split, the per-row ASN and geolocation fields, and the two payload rates over the identical 100 endpoints. The hourly regeneration is documented from the publisher's own schedule and was not observed the verdict does not turn on it, because the 22-minute decay already bounds the usable window. Moving up would need a larger sample and runs spread across a day, so that a diurnal effect can be told apart from a list that is simply thin. |
| Checked | 2026-10-25 (live); stale on 2026-11-24 |
| Parsed numbers |
|
Evidence (4)
| date | source | what it proved |
|---|---|---|
| 2026-10-24 | api.github.com/repos/monosans/proxy-list | An unauthenticated GET returned the whole list as JSON: 1,751 rows, 1,178 socks5, 434 http, 139 socks4, each row carrying host, port, response time in a timeout field, exit_ip, an asn object with number and organisation, and a geolocation block. The response headers were HTTP 200, Content-Type text/plain, Cache-Control max-age=300, with no key or account involved. |
| 2026-10-24 | withheld | First run over 100 stratified random lines (40 http, 40 socks5, 20 socks4): 38 completed a handshake and 35 carried a payload, 35%, from 28 distinct exits. |
| 2026-10-24 | withheld | The identical 100 endpoints re-run 22 minutes later: 25 handshakes and 21 payloads, 21%. Intersected on host and port, only 10 of the 35 addresses that carried a payload at the first run did so again, while 11 of the 21 working at the second run had failed at the first. |
| 2026-10-24 | withheld | 59 measured exit addresses resolved to a prefix, an ASN and an organisation: 45 distinct ASNs and 58 distinct prefixes, with Cox AS22773 appearing 5 times, Viettel AS7552 4 times, China Mobile AS9808 and Biznet AS17451 twice each, and TATTELECOM AS28840 and Superonline AS34984 once each. |
More fields (14)
{
"rung": 2,
"rung_note": "The unit is a single address, so the list starts at rung 2; the per-row ASN field is what also reaches rung 5, because the registration class of an address is knowable before a request is spent, which no other free list in this topic publishes.",
"protocol_split": {
"socks5": 1178,
"http": 434,
"socks4": 139,
"total": 1751
},
"handshake_rate_run1": "38 of 100",
"handshake_rate_run2": "25 of 100",
"payload_rate_run1": "35 of 100",
"payload_rate_run2": "21 of 100",
"survival_same_addresses": "10 of the 35 that carried a payload at run 1 carried one at run 2, 29%; 25 stopped and 11 started",
"asn_composition": {
"exits": 59,
"asns": 45,
"prefixes": 58,
"isp_or_mobile": 24,
"scope": "measured exits, not the mono sample alone, whose two runs gave 39 distinct exits"
},
"row_fields": [
"protocol",
"host",
"port",
"timeout",
"exit_ip",
"asn.autonomous_system_number",
"asn.autonomous_system_organization",
"geolocation.country.iso_code",
"geolocation.city.names",
"geolocation.location"
],
"asn_field": true,
"geolocation_field": true,
"regeneration": "hourly, with a full-fetch verification",
"sample_size": "100 stratified random lines, run twice 22 minutes apart over the identical endpoint set, 40 http, 40 socks5, 20 socks4"
}Unknown or withheld values (6)
$.endpointwithheld$.evidence[1].urlprivate-url$.evidence[2].urlprivate-url$.evidence[3].urlprivate-url$.limits[1].sourceprivate-url$.per_object_cap.statednot-applicable
iroh-dns-server (as a hosted third-party service) Storage
fails: quotaemail?card?R
| Free tier | The n0-computer/iroh-dns-server GitHub repo is archived (last push 2024-04-24) and carries no description. The functionality moved into the main iroh repo, and the maintained artefact is the unit none; metered on none |
|---|---|
| Price | none stated |
| Per-object cap | not recorded |
| Retention | not recorded |
| Egress | not recorded |
| Identity | email (placeholder) not published |
| Binding | none no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit |
| Interface | unknown |
| Tooling | not recorded |
| Composes with | not recorded |
| Reliability | The n0-computer/iroh-dns-server GitHub repo is archived (last push 2024-04-24) and carries no description. The functionality moved into the main iroh repo, and the maintained artefact is the |
| Notes | The n0-computer/iroh-dns-server GitHub repo is archived (last push 2024-04-24) and carries no description. The functionality moved into the main iroh repo, and the maintained artefact is the |
| Evidence rung | reported |
| Checked | 2026-10-21 (inherited); stale on 2026-11-04 |
Evidence (2)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | api.github.com/repos/n0-computer/iroh-dns-server | The n0-computer/iroh-dns-server GitHub repo is archived (last push 2024-04-24) and carries no description. The functionality moved into the main iroh repo, and the maintained artefact is the |
| 2026-10-21 | crates.io/crates/iroh-dns-server | cited as the basis of the rejection: The n0-computer/iroh-dns-server GitHub repo is archived (last push 2024-04-24) and carries no description. The functionality moved into the main iroh repo, and the maintained artefact is the |
More fields (1)
{
"dead_end": {
"failure_class": "not-storage",
"why": "The n0-computer/iroh-dns-server GitHub repo is archived (last push 2024-04-24) and carries no description. The functionality moved into the main iroh repo, and the maintained artefact is the",
"retry_when": "never; it is not storage",
"first_recorded": "2026-10-21"
}
}Unknown or withheld values (14)
$.chainingnot-recorded$.confidence_notewithheld$.egress.termsnot-recorded$.free_tier.notesprocess$.identity_cost.detaildefaulted$.identity_cost.kindidentity-defaulted$.interfaceinterface-unknown$.interface_detailwithheld$.limits_noteprocess$.per_object_cap.notesnot-recorded$.per_object_cap.statednot-recorded$.retention.notesprocess$.retention.statednot-recorded$.toolingnot-recorded
TheSpeedX/PROXY-List IP and proxies
deadanonymousno cardM
| Free tier | Free and keyless: 10,430 lines in total, 2,918 HTTP, 2,425 SOCKS4 and 5,087 SOCKS5, with no metadata at all. unit objects; metered on none; The three counts sum to 10,430, so the split is exhaustive rather than overlapping. A line is an address and a port and nothing else: there is no country, ASN, uptime, latency or anonymity field to filter on before a line is dialled. |
|---|---|
| Price | none stated |
| Per-object cap | not applicable |
| Retention | not applicable: a live address, not stored bytes |
| Egress | No traffic position is published: the list is a text file with no terms, quota or meter attached to it, and every byte the client sends crosses the exit host of whichever line it dials, not the list. free_allowance: none published |
| Identity | anonymous No account, no key and no signup: the three text files are fetched over unauthenticated HTTPS. The hosts behind the lines belong to somebody else, and what each one requires of a caller is not published in the list at all. |
| Binding | none Nothing in the vocabulary fails first at 45 GB a month across 599,000 requests, because the list imposes no quota, no request rate and no per-address shape to hit. What fails is the supply: 8 of 100 lines carried a payload, and yield has no vocabulary kind. |
| Interface | rest One unauthenticated HTTPS GET per protocol file, http.txt, socks4.txt and socks5.txt, returned as plain text and read line by line. There is no resource model, no query parameter and no API, so rest is the nearest token in the closed set rather than an accurate description; the lines themselves speak HTTP CONNECT, SOCKS4 and SOCKS5, and the schema's interface enum has no token for any proxy protocol, so the three are named here instead of in the array. |
| Tooling | curl or wget pulls the three text files; no account, key, SDK or wrapper is involved. Dialling a line needs a client that speaks its protocol, which curl does for HTTP CONNECT and SOCKS5 and a small socket driver does for SOCKS4. The work is not access but triage: a health check that discards the 92 percent which do not answer, run often enough to keep the remainder current. |
| Composes with | A failover supply for the Workers AI gateway's egress: a request the Worker cannot make from its own address is retried through a line, with a short timeout and the next line on failure, so the value is the retry loop rather than any single address. |
| Reliability | The working exits sat in hosting-provider ASNs rather than residential ones, so reputation follows a datacenter block; and the working set churns, with handshakes falling from 17 to 15 between two runs 23 minutes apart while payloads held at 8, and a later recheck of the 8 named lines returning 4. |
| Notes | Three candidates for the 8 percent payload rate, tested rather than assumed. (1) The probe harness was at fault. Refuted for the payload measure: 8 of the same 100 lines carried a payload under the identical harness, and the failures split across five distinct error classes rather than one systematic failure, which is what per-host failure looks like and not what a broken client looks like. (2) The lines are stale, and the file is a large pool of long-dead addresses. Supported and not fully settled: 58 of 100 timed out and 19 failed at the socket, and the second run produced 15 handshakes against 17, so the population churns under the probe; but nothing here shows the file is unmaintained, only that most of its lines do not answer. (3) A vantage-point or diurnal effect on this machine. Not refuted, because two runs 23 minutes apart cannot separate it from a dead list, and only runs spread across a day could. The verdict rests on (2) with (3) open, and (3) does not change it: the payload rate would have to rise by an order of magnitude before the list became usable at the client's request volume. Weight: each rate is one sample of 100 lines drawn stratified across the three protocol files, taken twice, which is enough to show the yield is low and repeats and not enough to put an interval on it. A discrepancy between the assigned facts and the artefacts, recorded rather than smoothed. The facts give the working exits as OVH AS16276 twice, Contabo AS51167, DigitalOcean AS14061, Microsoft AS8075, GoDaddy AS26496 and AS398101, and Biznet AS17451. Re-deriving from the two named result files yields eight payload exits: OVH AS16276 twice, Biznet AS17451, Contabo AS51167, Microsoft AS8075 and GoDaddy AS26496, plus SCTS AS51004 and Liteserver AS60404, which are absent from the assigned list; The datacenter conclusion survives the correction, since seven of the eight resolved to hosting ASNs and the eighth, SCTS, is a cable ISP; what changes is the roster, not the finding, and the verdict does not rest on it. On shape: the assignment names the interface tokens api, cli, rest, socks5, http-proxy, wireguard, openvpn, web-ui and none, but scripts/dossier/schema.json closes interface[] to its own enum, which has no proxy-protocol token, and scripts/dossier/validate.py enforces that enum; an in-memory test of socks5 and http-proxy against the schema returned two enum errors, so writing them would turn the gate red for the whole dossier tree. The array therefore carries rest, matching dossier/ip-proxy/proxyscrape-free-list.json, and the three protocols are stated in interface_detail. That gap is a defect worth naming: an ip-proxy topic cannot express what it is about until the enum gains socks5, http-proxy and a static-file token. Searched dossier/ and docs/ for an existing record naming TheSpeedX or PROXY-List to correct; the only hit is dossier/ip-proxy/proxyscrape-free-list.json and it is a substring match on free-proxy-list rather than a mention of this provider, so this record corrects nothing outside itself. |
| Evidence rung | measured Both hit rates and the whole error census were recomputed from the two result files and match the figures written here exactly, and the HTTP line count matches the capture at 2,918 lines with no final newline. Measured is the top rung, so the honest question is what would strengthen it rather than what would raise it: a larger sample than 100, and runs spread across a day so a diurnal effect can be told apart from a dead list. |
| Checked | 2026-10-25 (live); stale on 2026-11-24 |
Evidence (5)
| date | source | what it proved |
|---|---|---|
| 2026-10-24 | api.github.com/repos/TheSpeedX/PROXY-List | The list holds 10,430 lines, split 2,918 HTTP, 2,425 SOCKS4 and 5,087 SOCKS5, and carries no metadata of any kind beyond the address and the protocol file it came from. |
| 2026-10-24 | withheld | First run over 100 stratified random lines: 17 completed a handshake and 8 carried a payload, 8.0 percent, with the error census 58 TimeoutError, 19 OSError, 7 ConnectionRefusedError, 5 body-not-json and 3 ConnectionResetError. |
| 2026-10-24 | withheld | Second run 23 minutes later over a fresh 100 lines: 15 handshakes and 8 payloads, so the payload rate repeats at 8 percent while the handshake-positive set has already moved. |
| 2026-10-24 | withheld | The exit addresses resolve to hosting ASNs: OVH AS16276, Contabo AS51167, DigitalOcean AS14061, Microsoft AS8075, GoDaddy AS26496 and AS398101, Biznet AS17451. |
| 2026-10-24 | withheld | A recheck of the 8 lines that had carried a payload returned 4 payload successes, with exit organisations BIZNET-PREPAID-BLOCK in ID, OVH SAS in FR, OVH Ltd in GB and GoDaddy.com, LLC in SG. |
More fields (13)
{
"rung": 2,
"rung_note": "The product is a set of single addresses judged one at a time, so rung 2 is the furthest the measurement reaches; no subnet and no ASN was needed, and the datacenter composition of the survivors is the only wider observation it produced.",
"protocol_split": {
"http": 2918,
"socks4": 2425,
"socks5": 5087,
"total": 10430
},
"handshake_rate_run1": "17 of 100",
"payload_rate_run1": "8 of 100",
"handshake_rate_run2": "15 of 100",
"payload_rate_run2": "8 of 100",
"error_census_run1": {
"TimeoutError": 58,
"OSError": 19,
"ConnectionRefusedError": 7,
"body-not-json": 5,
"ConnectionResetError": 3
},
"dead_weight": "92 of 100 sampled lines",
"sample_size": "100 stratified random lines per run, two runs 23 minutes apart",
"metadata": "none",
"exit_asn": [
"AS16276 OVH, twice",
"AS51167 Contabo",
"AS14061 DigitalOcean",
"AS8075 Microsoft",
"AS26496 GoDaddy",
"AS398101 GoDaddy",
"AS17451 Biznet"
],
"interface_enum_gap": "socks5, http-proxy and static-file access have no token in scripts/dossier/schema.json"
}Unknown or withheld values (6)
$.evidence[1].urlprivate-url$.evidence[2].urlprivate-url$.evidence[3].urlprivate-url$.evidence[4].urlprivate-url$.notespartly-held$.per_object_cap.statednot-applicable