⚠️⚠️⚠️⚠️:此仓库包含旧版 ooniprobe 实现的源代码。请查看以下链接:
感谢您对 OONI 的关注!
本文件其余部分为旧版实现的原始 README.rst:
.. image:: https://travis-ci.org/TheTorProject/ooni-probe.png?branch=master :target: https://travis-ci.org/TheTorProject/ooni-probe
.. image:: https://coveralls.io/repos/TheTorProject/ooni-probe/badge.png :target: https://coveralls.io/r/TheTorProject/ooni-probe
.. image:: https://slack.openobservatory.org/badge.svg :target: https://slack.openobservatory.org/badge.svg
.. image:: https://ooni.torproject.org/images/ooni-header-mascot.png :target: https:://ooni.torproject.org/
OONI(开放网络干扰观测站)是一个全球观测网络,旨在使用开放方法论收集高质量数据,并利用自由开源软件(FL/OSS)分享关于全球各类网络篡改的类型、方法和程度的观测数据。
“网络将审查视为损害,并绕路而行。”
——约翰·吉尔摩,《时代》杂志(1993年12月6日)
ooniprobe 是用户运行以探测其网络并为 OONI 项目收集数据的第一个程序。您是否对测试您的网络是否存在监视和审查迹象感兴趣?您是否希望收集数据与他人分享,以便您和他人更好地了解您的网络?如果是这样,请阅读本文档,我们希望 ooniprobe 能帮助您收集网络数据,以助您实现目标!
运行 ooniprobe 是一项可能存在风险的活动。这很大程度上取决于您所在地区的司法管辖区以及您正在运行的测试。从技术上讲,观察您互联网连接的人有可能注意到您正在运行 ooniprobe。这意味着,如果在您的国家运行网络测量测试被视为非法行为,您可能会被发现。
此外,ooniprobe 未采取任何措施保护安装目标机器免受取证分析。如果您因安装或使用 ooniprobe 而面临法律风险,请注意此风险。
最新的 ooniprobe 版本(适用于 Debian 和 Ubuntu 发行版)可在 deb.torproject.org 软件包仓库中找到。
在 Debian stable(jessie)上::
curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
echo 'deb http://deb.torproject.org/torproject.org jessie main' | sudo tee /etc/apt/sources.list.d/ooniprobe.list
sudo apt-get update
sudo apt-get install ooniprobe deb.torproject.org-keyring
在 Debian testing 上:::
curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
echo 'deb http://deb.torproject.org/torproject.org testing main' | sudo tee /etc/apt/sources.list.d/ooniprobe.list
sudo apt-get update
sudo apt-get install ooniprobe deb.torproject.org-keyring
在 Debian unstable 上:::
curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
echo 'deb http://deb.torproject.org/torproject.org unstable main' | sudo tee /etc/apt/sources.list.d/ooniprobe.list
sudo apt-get update
sudo apt-get install ooniprobe deb.torproject.org-keyring
在 Ubuntu 16.10 (yakkety)、16.04 (xenial) 或 14.04 (trusty) 上:::
curl https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add -
echo 'deb http://deb.torproject.org/torproject.org $RELEASE main' | sudo tee /etc/apt/sources.list.d/ooniprobe.list
sudo apt-get update
sudo apt-get install ooniprobe deb.torproject.org-keyring
注意:您需要将 $RELEASE 替换为 yakkety、xenial 或 trusty。这不会自动完成。您还需要确保已启用 universe 软件源。在标准 Ubuntu 安装中默认启用了 universe 软件源,但在某些最小化或非标准安装中可能未启用。
如果您已安装 homebrew (http://brew.sh/),可以使用以下命令在 macOS 上安装 ooniprobe:::
brew install ooniprobe
请确保已安装以下依赖项:
可选依赖项:
在基于 Debian 的系统中,通常可以通过运行以下命令完成安装:::
sudo apt-get install -y build-essential libdumbnet-dev libpcap-dev libgeoip-dev libffi-dev python-dev python-pip tor libssl-dev obfs4proxy
然后,您应能通过运行以下命令安装 ooniprobe:::
sudo pip install ooniprobe
或以用户身份安装 ooniprobe:::
pip install ooniprobe
网络测试 是一系列测量,用于评估正在发生何种互联网审查。
测试集 是 ooniprobe 网络测试及其相关输入的集合。
收集器 是一种服务,用于报告测量结果。
测试助手 是一种服务,供探测仪成功执行其测量使用。
引导器 是一种服务,用于发现测试助手和收集器的地址。
成功安装 ooniprobe 后,您应能通过运行以下命令在主机上访问 Web 界面::: ooniprobe -w 或启动守护程序后,在 http://localhost:8842/ 访问。
现在您将看到 Web 界面设置向导,您可以在其中了解运行 ooniprobe 所涉及的风险。正确回答测验后,您可以启用或禁用 ooniprobe 测试,设置如何连接到测量收集器,最后配置您的隐私设置。
默认情况下,ooniprobe 不会在测试结果中包含个人身份信息,也不会创建 pcap 文件。此行为可自定义。
在 ooniprobe 2.0.0 版本之后,不再需要 cronjob,因为 ooniprobe-agent 负责任务调度。
您可以通过安装并启用 systemd 单元 ooniprobe.service 来确保 ooniprobe-agent 始终运行:::
wget https://raw.githubusercontent.com/TheTorProject/ooni-probe/master/scripts/systemd/ooniprobe.service --directory-prefix=/etc/systemd/system
systemctl enable ooniprobe
systemctl start ooniprobe
如果 ooniprobe (systemd) 服务处于活动状态并已加载,运行 systemctl status ooniprobe 应能看到类似输出:::
● ooniprobe.service - ooniprobe.service, network interference detection tool
Loaded: loaded (/etc/systemd/system/ooniprobe.service; enabled)
Active: active (running) since Thu 2016-10-20 09:17:42 UTC; 16s ago
Process: 311 ExecStart=/usr/local/bin/ooniprobe-agent start (code=exited, status=0/SUCCESS)
Main PID: 390 (ooniprobe-agent)
CGroup: /system.slice/ooniprobe.service
└─390 /usr/bin/python /usr/local/bin/ooniprobe-agent start
如果您的发行版支持 capabilities,您可以避免以 root 身份运行 OONI:::
setcap cap_net_admin,cap_net_raw+eip /path/to/your/virtualenv's/python2
您可以在 Tor Project 问题跟踪器中报告与 ooniprobe 相关的 Bug 和问题,将其归类为 "Ooni" 组件:https://trac.torproject.org/projects/tor/newticket?component=Ooni。
您可以注册账户,或使用组账户 "cypherpunks"(密码 "writecode")。
您可以从以下 Git 仓库下载 ooniprobe 代码:::
git clone https://github.com/TheTorProject/ooni-probe.git
然后,您应将补丁作为拉取请求提交至此 GitHub 仓库进行审查:
https://github.com/TheTorProject/ooni-probe
请阅读此文章了解如何创建 GitHub 拉取请求 (https://help.github.com/articles/creating-a-pull-request)。
如果您不想使用 GitHub(或没有账户),您也可以将补丁作为附件提交到工单。
请确保使用以下命令格式化补丁(假设您正在处理一个与主分支不同的功能分支):::
git format-patch master --stdout > my_first_ooniprobe.patch
在基于 Debian 的系统中,可如下搭建开发环境:(先决条件包括构建必需包、python-dev 和 tor;关于 tor 请参见 https://www.torproject.org/docs/debian.html.en):::
sudo apt-get install python-pip python-virtualenv virtualenv
sudo apt-get install libgeoip-dev libffi-dev libdumbnet-dev libssl-dev libpcap-dev
git clone https://github.com/TheTorProject/ooni-probe
cd ooni-probe
virtualenv venv
virtualenv venv 将在当前目录中创建一个文件夹,其中包含 Python 可执行文件以及 pip 库的副本,您可以使用 pip 安装其他软件包。要开始使用虚拟环境,需要激活它:::
source venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt
python setup.py install
然后,您可以通过以下命令检查安装是否成功:::
ooniprobe -s
这将向您解释运行 ooniprobe 的风险,并确保您已理解这些风险,之后会显示可用测试。
要运行 ooniprobe 代理,请输入:::
ooniprobe-agent run
要执行 ooniprobe 的单元测试,请输入:::
coverage run $(which trial) ooni