ooni / probe

OONI Probe network measurement tool for detecting internet censorship
https://ooni.org/install
BSD 3-Clause "New" or "Revised" License
754 stars 142 forks source link

engine: all available probe services failed #1324

Open Mmdk2m opened 3 years ago

Mmdk2m commented 3 years ago

I'm from Iran and it seems OONI not working. I try with WiFi and cellular network Network : Pars Online PJS AS16322, Iran Cell AS44244

Screenshot_20210119-011856_OONI Probe

p.s : my ISP on WiFi is Dadeh Gostar Asr Novin but ooni detect network as Pars Online image

bassosimone commented 3 years ago

Thank you for letting us know!

Fardin574 commented 3 years ago

same here on Aria Shatel Company Ltd AS31549 i tried using DoH but i faced with MaybeUpdateResorce error. i don't know if there is a relation between these two errors or not. image

I test this again a couple hours later. i still cannot use OONI on the AS31549 network directly but with using DoH i didn't see a problem. image

bassosimone commented 3 years ago

@Mmdk2m wrote:

p.s : my ISP on WiFi is Dadeh Gostar Asr Novin but ooni detect network as Pars Online

Thanks for letting us know, I've filed as separate issue for that: https://github.com/ooni/probe-engine/issues/1204

bassosimone commented 3 years ago

@Mmdk2m, @Fardin574 thank you for letting us know of this issue <3. We are testing a fix already, but it is not immediate for us to release it. If you are willing to help us testing, perhaps join our slack channel or, as an alternative, contact me privately. My work email is public on my personal GitHub page (@bassosimone) and my PGP key is also public via the GitHub API (https://api.github.com/users/bassosimone/gpg_keys) and here https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x738877aa6c829f26a431c5f480b691277733d95b.

bassosimone commented 3 years ago

Moving to Sprint 32. In Sprint 31 we have started testing a fix. The main issue blocking us at this time seems thinking about how to integrate this fix into our build process. This is something we will think about in Sprint 32, as this issue is high-pri for us now.

bassosimone commented 3 years ago

We have made progress with @FedericoCeratto and @hellais. We discussed a sound strategy for shipping the Psiphon config along with Go 1.16 using the //go:embed feature. This is the plan:

  1. add the encrypted psiphon config to the repository and //go:embed it
  2. add an empty decryption key and //go:embed it
  3. when we make our own builds, replace the key before building
  4. if psiphon is requested, attempt decrypt and, if successful, configure and use psiphon
  5. merge the --tunnel and --proxy features so that --proxy psiphon:/// is the new --tunnel=psiphon
  6. expose a proxy setting into advanced settings with the possibility of choosing psiphon or a custom socks5 proxy

Once this is done, we would probably want to ship out APKs for testing.

bassosimone commented 3 years ago

We are refactoring and redesigning the probeservices package to reduce the possibility of this happening. It seems a bit more work than we anticipated, but we've made progress in this Sprint and we have some PRs that are landing. I am going to move this issue into the next development Sprint and this will continue to be a very high priority issue for me.

bassosimone commented 3 years ago

We are going to do more work to address this problem in https://github.com/ooni/probe/issues/1405. We will keep this issue open until we have introduced enough improvements that the original problem is significantly less likely to occur.

bassosimone commented 3 years ago

We have added support for embedding the Psiphon config: https://github.com/ooni/probe-cli/pull/285. This opens up the possibility of always using Psiphon as a proxy: https://github.com/ooni/probe/issues/985. (The overall plan I am following is at https://github.com/ooni/probe/issues/1324#issuecomment-777294472.)

bassosimone commented 3 years ago

We have identified the underlying reason for the problem for Android: https://github.com/ooni/probe/issues/1444. We have just received today a report that there are issues also for iOS. This problem on iOS needs more investigation. It may be worth figuring out whether this device is arm or arm64. Maybe, if it's arm, it's reasonable that there is no AES?

Update: it's "Apple A14 Bionic ARM 64", so we need to figure out whether the processor flags are missing also on this case or whether this is an unrelated kind of problem. (The solution at https://github.com/ooni/probe-cli/pull/285 is good anyway for this use case.)

bassosimone commented 3 years ago

Here's another status update: we are landing soon a new release of OONI Probe Android that includes both the fingerprinting enhancements and the possibility of configuring a proxy. I've branched off issues describing how to continue this work. I have also just finished writing a blog post in which I recount what we did to fix this issue and the upcoming changes.

The related Android PR is https://github.com/ooni/probe-android/pull/423. When this is merged, we're good to go!

(I would like to thank here all the users who reported this issue and who helped to further investigate it as well as to develop and test fixes for that: thank you so much! <3)

bassosimone commented 3 years ago

In https://github.com/ooni/probe-cli/pull/413, I added a new factory for HTTP transports that ensures there is always a read timeout when we're using HTTP, therefore avoiding any lingering connection when there is the blocking condition described in https://github.com/ooni/probe/issues/1609.