{"id":25732843,"url":"https://github.com/TheTorProject/ooni-probe","last_synced_at":"2025-02-26T04:01:49.556Z","repository":{"id":36100383,"uuid":"148605899","full_name":"ooni/probe-legacy","owner":"ooni","description":"The legacy python version of OONI Probe","archived":false,"fork":false,"pushed_at":"2022-12-07T23:41:42.000Z","size":9697,"stargazers_count":22,"open_issues_count":47,"forks_count":12,"subscribers_count":19,"default_branch":"master","last_synced_at":"2024-08-23T11:07:07.915Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ooni.png","metadata":{"files":{"readme":"README.rst","changelog":"ChangeLog.rst","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-13T08:20:48.000Z","updated_at":"2024-08-23T11:07:07.916Z","dependencies_parsed_at":"2022-09-01T06:22:43.929Z","dependency_job_id":null,"html_url":"https://github.com/ooni/probe-legacy","commit_stats":null,"previous_names":["thetorproject/ooni-probe"],"tags_count":57,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ooni%2Fprobe-legacy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ooni%2Fprobe-legacy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ooni%2Fprobe-legacy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ooni%2Fprobe-legacy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ooni","download_url":"https://codeload.github.com/ooni/probe-legacy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240788751,"owners_count":19857696,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-26T04:01:14.193Z","updated_at":"2025-02-26T04:01:49.504Z","avatar_url":"https://github.com/ooni.png","language":"Python","funding_links":[],"categories":["Network Analysis Tools"],"sub_categories":[],"readme":"⚠️⚠️⚠️⚠️: this repository contains the source code of the legacy\nimplementation of ooniprobe. Please, check out instead:\n\n1. https://github.com/ooni/probe, the meta-repository where you should\nbe opening issues and feature requests;\n\n2. https://github.com/ooni/probe-cli, which contains the new implementation\nof ooniprobe as a command line client written in Go;\n\n3. https://github.com/ooni/probe-desktop, which contains the ooniprobe\ndesktop applicaton, written in JavaScript and Electron.\n\nThank you for your interest in OONI!\n\nThe remainder of this file contains the original README.rst for\nthe legacy implementation:\n\n------------\n\nooniprobe: a network interference detection tool\n================================================\n\n.. image:: https://travis-ci.org/TheTorProject/ooni-probe.png?branch=master\n    :target: https://travis-ci.org/TheTorProject/ooni-probe\n\n.. image:: https://coveralls.io/repos/TheTorProject/ooni-probe/badge.png\n    :target: https://coveralls.io/r/TheTorProject/ooni-probe\n\n.. image:: https://slack.openobservatory.org/badge.svg\n    :target: https://slack.openobservatory.org/badge.svg\n\n___________________________________________________________________________\n\n.. image:: https://ooni.torproject.org/images/ooni-header-mascot.png\n    :target: https:://ooni.torproject.org/\n\nOONI, the Open Observatory of Network Interference, is a global observation\nnetwork which aims is to collect high quality data using open methodologies,\nusing Free and Open Source Software (FL/OSS) to share observations and data\nabout the various types, methods, and amounts of network tampering in the\nworld.\n\n\n    \"The Net interprets censorship as damage and routes around it.\"\n                - John Gilmore; TIME magazine (6 December 1993)\n\n\nooniprobe is the first program that users run to probe their network and to\ncollect data for the OONI project. Are you interested in testing your network\nfor signs of surveillance and censorship? Do you want to collect data to share\nwith others, so that you and others may better understand your network? If so,\nplease read this document and we hope ooniprobe will help you to gather\nnetwork data that will assist you with your endeavors!\n\nRead this before running ooniprobe!\n-----------------------------------\n\nRunning ooniprobe is a potentially risky activity. This greatly depends on the\njurisdiction in which you are in and which test you are running. It is\ntechnically possible for a person observing your internet connection to be\naware of the fact that you are running ooniprobe. This means that if running\nnetwork measurement tests is something considered to be illegal in your country\nthen you could be spotted.\n\nFurthermore, ooniprobe takes no precautions to protect the install target machine\nfrom forensics analysis.  If the fact that you have installed or used ooni\nprobe is a liability for you, please be aware of this risk.\n\nOONI in 5 minutes\n=================\n\nThe latest ooniprobe version for Debian and Ubuntu releases can be found in the\ndeb.torproject.org package repository.\n\nOn Debian stable (jessie)::\n\n    curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import\n    gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -\n    echo 'deb http://deb.torproject.org/torproject.org jessie main' | sudo tee /etc/apt/sources.list.d/ooniprobe.list\n    sudo apt-get update\n    sudo apt-get install ooniprobe deb.torproject.org-keyring\n\nOn Debian testing::\n\n    curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import\n    gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -\n    echo 'deb http://deb.torproject.org/torproject.org testing main' | sudo tee /etc/apt/sources.list.d/ooniprobe.list\n    sudo apt-get update\n    sudo apt-get install ooniprobe deb.torproject.org-keyring\n\nOn Debian unstable::\n\n    curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import\n    gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -\n    echo 'deb http://deb.torproject.org/torproject.org unstable main' | sudo tee /etc/apt/sources.list.d/ooniprobe.list\n    sudo apt-get update\n    sudo apt-get install ooniprobe deb.torproject.org-keyring\n\nOn Ubuntu 16.10 (yakkety), 16.04 (xenial) or 14.04 (trusty)::\n\n    curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import\n    gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -\n    echo 'deb http://deb.torproject.org/torproject.org $RELEASE main' | sudo tee /etc/apt/sources.list.d/ooniprobe.list\n    sudo apt-get update\n    sudo apt-get install ooniprobe deb.torproject.org-keyring\n\nNote: You'll need to swap out ``$RELEASE`` for either ``yakkety``, ``xenial`` or\n``trusty``. This will not happen automatically. You will also need to ensure\nthat you have the ``universe`` repository enabled. The ``universe`` repository\nis enabled by default in a standard Ubuntu installation but may not be on some\nminimal, or not standard, installations.\n\nInstallation\n============\n\nmacOS\n-----\n\nYou can install ooniprobe on macOS if you have installed homebrew (http://brew.sh/) with::\n\n    brew install ooniprobe\n\nUnix systems (with pip)\n-----------------------\n\nMake sure you have installed the following dependencies:\n\n  * build-essential\n  * python (\u003e=2.7)\n  * python-dev\n  * pip\n  * libgeoip-dev\n  * libdumbnet-dev\n  * libpcap-dev\n  * libssl-dev\n  * libffi-dev\n  * tor (\u003e=0.2.5.1 to run all the tor related tests)\n\nOptional dependencies:\n\n  * obfs4proxy\n\nOn debian based systems this can generally be done by running::\n\n    sudo apt-get install -y build-essential libdumbnet-dev libpcap-dev libgeoip-dev libffi-dev python-dev python-pip tor libssl-dev obfs4proxy\n\nThen you should be able to install ooniprobe by running::\n\n    sudo pip install ooniprobe\n\nor install ooniprobe as a user::\n\n    pip install ooniprobe\n\nUsing ooniprobe\n===============\n\n**Net test** is a set of measurements to assess what kind of internet censorship is occurring.\n\n**Decks** are collections of ooniprobe nettests with some associated inputs.\n\n**Collector** is a service used to report the results of measurements.\n\n**Test helper** is a service used by a probe for successfully performing its measurements.\n\n**Bouncer** is a service used to discover the addresses of test helpers and collectors.\n\nConfiguring ooniprobe\n---------------------\n\nAfter successfully installing ooniprobe you should be able to access the web UI\non your host machine at \u003chttp://localhost:8842/\u003e after running:: \n  ooniprobe -w \nor starting the daemon.\n\nYou should now be presented with the web UI setup wizard where you can read the\nrisks involved with running ooniprobe. Upon answering the quiz correctly you can\nenable or disable ooniprobe tests, set how you can connect to the measurement's\ncollector and finally configure your privacy settings.\n\nBy default ooniprobe will not include personal identifying information in the\ntest results, nor create a pcap file. This behavior can be personalized.\n\nRun ooniprobe as a service (systemd)\n------------------------------------\n\nUpon ooniprobe version 2.0.0 there is no need for cronjobs as ooniprobe-agent is\nresponsible for the tasks scheduling.\n\nYou can ensure that ooniprobe-agent is always running by installing and enabling\nthe systemd unit `ooniprobe.service`::\n\n    wget https://raw.githubusercontent.com/TheTorProject/ooni-probe/master/scripts/systemd/ooniprobe.service --directory-prefix=/etc/systemd/system\n    systemctl enable ooniprobe\n    systemctl start ooniprobe\n\nYou should be able to see a similar output if ooniprobe (systemd) service is\nactive and loaded by running `systemctl status ooniprobe`::\n\n    ● ooniprobe.service - ooniprobe.service, network interference detection tool\n       Loaded: loaded (/etc/systemd/system/ooniprobe.service; enabled)\n       Active: active (running) since Thu 2016-10-20 09:17:42 UTC; 16s ago\n       Process: 311 ExecStart=/usr/local/bin/ooniprobe-agent start (code=exited, status=0/SUCCESS)\n       Main PID: 390 (ooniprobe-agent)\n       CGroup: /system.slice/ooniprobe.service\n               └─390 /usr/bin/python /usr/local/bin/ooniprobe-agent start\n\n\nSetting capabilities on your virtualenv python binary\n=====================================================\n\nIf your distribution supports capabilities you can avoid needing to run OONI as root::\n\n\n    setcap cap_net_admin,cap_net_raw+eip /path/to/your/virtualenv's/python2\n\n\nReporting bugs\n==============\n\nYou can report bugs and issues you find with ooni-probe on The Tor Project issue\ntracker filing them under the \"Ooni\" component: https://trac.torproject.org/projects/tor/newticket?component=Ooni.\n\nYou can either register an account or use the group account \"cypherpunks\" with\npassword \"writecode\".\n\nContributing\n============\n\nYou can download the code for ooniprobe from the following git repository::\n\n\n    git clone https://github.com/TheTorProject/ooni-probe.git\n\n\nYou should then submit patches for review as pull requests to this github repository:\n\nhttps://github.com/TheTorProject/ooni-probe\n\nRead this article to learn how to create a pull request on github (https://help.github.com/articles/creating-a-pull-request).\n\nIf you prefer not to use github (or don't have an account), you may also submit\npatches as attachments to tickets.\n\nBe sure to format the patch (given that you are working on a feature branch\nthat is different from master) with::\n\n\n    git format-patch master --stdout \u003e my_first_ooniprobe.patch\n\n\nSetting up development environment\n----------------------------------\n\nOn Debian based systems a development environment can be setup as follows: (prerequisites include build essentials, python-dev, and tor; for tor see https://www.torproject.org/docs/debian.html.en)::\n\n\n    sudo apt-get install python-pip python-virtualenv virtualenv\n    sudo apt-get install libgeoip-dev libffi-dev libdumbnet-dev libssl-dev libpcap-dev\n    git clone https://github.com/TheTorProject/ooni-probe\n    cd ooni-probe\n    virtualenv venv\n\n`virtualenv venv` will create a folder in the current directory which will\ncontain the Python executable files, and a copy of the pip library which you can\nuse to install other packages. To begin using the virtual environment, it needs\nto be activated::\n\n\n    source venv/bin/activate\n    pip install -r requirements.txt\n    pip install -r requirements-dev.txt\n    python setup.py install\n\nThen, you can check whether the installation went well with::\n\n    ooniprobe -s\n\nThis will explain you the risks of running ooniprobe and make sure you have\nunderstood them, afterwards it shows you the available tests.\n\nTo run the ooniprobe agent, instead, type::\n\n    ooniprobe-agent run\n\nTo execute the unit tests for ooniprobe, type::\n\n    coverage run $(which trial) ooni\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTheTorProject%2Fooni-probe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTheTorProject%2Fooni-probe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTheTorProject%2Fooni-probe/lists"}