Can not access Workers in China after I payed

I Can not access my Workers in China after I payed.

the worker address is :https://rss.kenien.workers.dev/

Seems to work fine for me but there is an issue with some ISP’s in China sinkholing the workers.dev domain to somewhere else.

What does dig rss.kenien.workers.dev (Linux/Mac) or nslookup rss.kenien.workers.dev (Windows) in terminal/cmd return?

1 Like

Don’t blame the ISPs. The ISPs could do better but its not entirely their fault either. There is some simple things you can do to fix the issues for your own Cloudflare zones, but ultimately Cloudflare need to fix the issues themselves.

@assmdx183 Cloudflare has a lot of problems in China, see here:

So what can you do about it? Well if you have your own domain then use that for the worker instead and you can take control of the IP’s, 104.x is well known to have horrible performance and packet loss in China. Doing something simple like changing the IP which your users in China are connecting to Cloudflare with can turn around 50% packet loss to something normal like 0.5-1%, and can increase your speeds from 150Kbps to 10Mbps.

I fail to see how this is an issue caused by Cloudflare? DNS pollution by something that isn’t Cloudflare - hence why I asked what address it was returning.

If an ISP blocks something, the ISP is the one to blame. If Cloudflare should reach out to the ISP & put some pressure on getting rid of their blocks is another question.

1 Like

So I think Cloudflare should give money back to me, because it doesnt work for me.

If you don’t want to continue using Cloudflare I can understand, but if you are willing to continue then let me know and I’ll give you some code that you can add to your Workers to force it to run in specific COLO such as HKG, SIN, or close to your origin. And I’ll show you some configurations for your Cloudflare zone to fix the DNS hijacking issues for your users in China and fix the throughput, latency & packet loss.

I would just like to mention that this likely isn’t officially supported by Cloudflare and should probably not be used in production as it may be patched.

1 Like

Yes thats a caution, but it’s a choice between having something that doesn’t work right now, or potentially not working in the future. The best path is to use something that’ll get stuff working again immediately until Cloudflare fix the issues.

I would completely back this up and also suggest that there’s many reasons why you can’t just pick a colo for a Worker to run in, the least of them being that if everyone got to pick a colo then controlled DDoS attacks would be possible by just picking the same colos…

1 Like

I mean, do workers even run in China in the first place? AFAIK they don’t.

Thats not the issue. No one claimed they run in mainland China. They do if you have a enterprise plan, an ICP and Cloudflare China Network enabled.

On a free plan, you can still use Workers in China but it’s executed on POP’s outside of China. Just like you can access any of Cloudflare’s other services in China, its just not running on POP’s in China.

Yes I understand this, but who is to say that it’s Cloudflare’s fault when it’s likely china or chinese ISPs blocking the domain/content outright?

If his worker works from outside of China then it isn’t Cloudflare’s fault :man_shrugging:t4:

I said he’ll need his own domain.

The design and implementation of Cloudflare’s platform (not just workers) is more likely to be prone to routing issues of the network in China, and more likely to be caught up in content blocks.

It’s not really Cloudflare’s fault but their more susceptible to these issues then they otherwise would be with a better design given to how the network works and how content blocks are carried out. So they could fix it.

Thank you very much. I really appreciate it.

So how can I fix this issue, my source code is very simple now like this:

// index.js code
addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
  const res = await KENIEN.get('key', { type: "text" })
  return new Response(res, {
    headers: { 'content-type': 'text/plain' },
  })
}
// toml code
name = "rss"
main = "src/index.js"
compatibility_date = "2022-05-21"
account_id = "1234"
kv_namespaces = [
  { binding = "KENIEN", id = "123" }
]

I sent you an email

1 Like

@andrewnyr How to run Workers on specific datacenter colo's?