洋葱网络 Tor

来源:互联网 发布:网络流行语英文翻译 编辑:程序博客网 时间:2024/04/28 22:40

1. 简介

洋葱网络是一种匿名通信技术,保护消息发送者和接受者的通信隐私,隐藏消息在通过网络时所走过的路线。经过多层加密的通信数据在由若干个被称为洋葱路由器组成的通信线路上传输,每个洋葱路由器去掉一个加密层,以此得到下一条路由信息,然后将数据继续发往下一个洋葱路由器,不断重复,直到数据到达目的地。这就防止了那些知道数据发送端以及接收端的中间人窃取数据内容。

Tor 是一个占主导地位的对洋葱网络的实现,官网 https://www.torproject.org/。

2. 部署

可以通过 apt 包管理器进行安装,apt-get install tor

Tor 配置文件所在路径为 /etc/tor/torrc,主要语义如下:

ControlPort 控制程序访问的端口SocksPort (Default: 9050) 应用程序连接端口NewCircuitPeriod NUM (Default: 30 seconds) 尝试新建链路的时间间隔MaxCircuitDirtiness NUM (Default: 10 minutes) 链路有效时间,超出视为链路老化KeepalivePeriod NUM (Default: 5 minutes) 连接维护时间间隔,保证有效连接的存在和无效连接的删除

配置示例:

ControlPort 9051NewCircuitPeriod 10MaxCircuitDirtiness 2KeepalivePeriod 1

服务重启 /etc/init.d/tor restart

3. 测试代码

import osimport requestsimport requesocksimport itertoolsimport timeurl = 'http://api.ipify.org?format=json'def getip_requests(url):    print "(+) Sending request with plain requests..."    r = requests.get(url)    print "(+) IP is: " + r.text.replace("\n", "")def getip_requesocks(url):    print "(+) Sending request with requesocks..."    session = requesocks.session()    session.proxies = {'http': 'socks5://127.0.0.1:9050', 'https': 'socks5://127.0.0.1:9050'}    r = session.get(url)    print "(+) IP is: " + r.text.replace("\n", "")def main():    print "Running tests..."    getip_requests(url)    getip_requesocks(url)    for i in itertools.count(1):        getip_requesocks(url)        time.sleep(10)if __name__ == "__main__":    main()
原创粉丝点击