如何在linux环境下搭建Tor代理服务器

 

代理配置
现在要使该服务器成为一个TOR代理,使得其他主机可以使用该服务器的TOR代理,需要进行如下配置
vim /etc/tor/torrc 修改SOCK5代理端口,添加以下语句
SOCKSPort 9050 # Default: Bind to localhost:9050 for local connections.
SOCKSPort 0.0.0.0:9150 # Bind to this address:port too.

重新运行TOR,查看网络状态,新打开监听端口9150
tcp 0 0 127.0.0.1:9050 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9150 0.0.0.0:* LISTEN

因为TOR提供的SOCK5代理没有用户密码验证。所以我们需要配置防火墙,修改iptables来指定允许的IP连接该端口。或者直接修改Tor配置文件,只允许指定的IP访问TOR代理接口,在torrc文件末尾添加以下语句。
SOCKSPolicy accept 45.32.24.178
SOCKSPolicy reject *
#SOCKSPolicy accept 192.168.0.0/16

使用其他主机测试该代理,在一台VPS上配置firefox浏览器socks5代理为该服务器的9150端口,然后通过浏览器百度自己的ip,或者访问https://check.torproject.org/?lang=zh_CN,可以发现该浏览器的流量走的是tor网络。如果想要使整个主机流量走TOR网络,可以配合proxyfier等全局代理工具使用。

其他TOR相关配置
配置Tor网络出口节点
比如想实现指定Tor网络出口节点,或者限制出口节点不走某些区域的功能。以指定出口节点为日本为例,在torrc配置文档末尾添加以下语句(StrictNodes 表示强制执行)
ExitNodes {jp}
StrictNodes 1
如果想要排除某些国家/地区的节点,如中国,香港可以添加
ExcludeNodes {cn},{mo},{hk}
StrictNodes 1
这样,Tor客户端会主动规避来自香港的中继节点,但如果Tor在排除之后的中继节点中建立不起来虚拟线路的时候,还是会尝试使用那些排除在外的中继节点。所以,如果要再狠一点,哪怕不能连接也完全不考虑这些排除的节点,则可以再在配置文件中加入StrictNodes 1进行强制执行。

配置前置代理
为Tor配置前置代理,比如在国内是无法直接连接TOR网络的,需要使用前置代理翻墙,然后再使用TOR网络进行双重代理。前置代理可以是HTTP,SOCKS4,SOCKS5等代理,支持用户密码验证,如添加SOCK5代理,添加以下语句在torrc文件末尾。

Socks5Proxy 127.0.0.1:1080
#Socks5ProxyUsername username
#Socks5ProxyPassword password

FAQ:
Q: 若安装Tor碰到错误?
如果错误信息如下:
GPG key retrieval failed: [Errno 14] Could not open/read file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
这个错误是因为手动添加epel源时,未手动添加GPG密钥,
解决方案:
第一种是把这个key从这个源站copy过来,放到/etc/pki/rpm-gpg目录下
第二种是修改repo文件
vim /etc/yum.repos.d/epel.repo
把gpgcheck=1改为gpgcheck=0

Q: 安装和配置正常,但是启动Tor,发现无法连接到Tor网络?
国内需翻墙才能顺利连接接到TOR网络。
———————
作者:宁月_
来源:CSDN
原文:https://blog.csdn.net/smiler_sun/article/details/71124082

科学上网技巧

来源:https://g2ex.github.io/2016/05/20/Tips-on-Chinternet/

尽管也称互联网,但在国内,如若有以下一个或多个需求,你就不得不学习一下科学上网了:

  1. 访问的网站或服务被(GFW)墙;
  2. 网络提供商(ISP)劫持了网络流量;
  3. 需要匿名(隐藏真实 IP)的情况,如渗透测试;
  4. 躲避网络监控;
  5. 其他情况。

这里分享一下我的科学上网技巧,使用到的工具软件可能有 ShadowsocksLanternPrivoxyTor。根据不同的目的选择不同的工具。

一、绕过 GFW 和 ISP 劫持

最简单和不折腾的方法是购买 VPN,次之是购买一台海外 VPS,自己安装 VPN 或 Shadowsocks 服务端。VPN 的优点是可以全局翻墙,Shadowsocks 虽然可以设置全局模式,但是对于不支持代理的本地应用是没有办法的,当然这种情况下可以试试 ProxifierPE 强制所有连接通过代理上网。

使用 Shadowsocks 可能遇到的另一个问题是,因为 Shadowsocks 使用的是 SOCKS5 类型的代理,当本地应用只支持 HTTP/HTTPS 类型代理时,就需要自己解决 HTTP 转换为 SOCKS5 的问题。当然,这个问题使用 Privoxy 就能很好地解决。

本节主要介绍如何组合使用 Shadowsocks 和 Privoxy,并假设你已经安装并配置好了 Shadowsocks(Linux 中可以安装 shadowsocks-qt5 或 命令行版本的 Shadowsocks)。

Shadowsocks 与 Privoxy 组合使用的示意图如下所示:

Shadowsocks Privoxy 组合使用示意图

假设你已经配置好了 Shadowsocks,接下来配置 Privoxy。
Windows 系统中右键点击 Privoxy 托盘图标,依次点击 Edit – Main Configuration 打开配置文件;Linux 系统中 Privoxy 的配置文件位于/etc/privoxy/config
配置文件修改为:

1
2
3
4
5
6
# 把 HTTP 流量转发到本机 127.0.0.1:1080 的 Shadowsocks
forward-socks5 / 127.0.0.1:1080 .

# 可选,默认只监听本地连接 127.0.0.1:8118
# 可以允许局域网中的连接
listen-address 0.0.0.0:8118

启动 Shadowsocks 和 Privoxy 后,把本地应用的代理设置为 HTTP/HTTPS 类型的 127.0.0.1:8118,就可以绕过 GFW 和 ISP 了。如果局域网中的其他 PC 或手机也希望使用该电脑上网(假设该电脑 IP 地址为 192.168.1.10),把它们的代理设置为 19.168.1.10:8118 即可。

Tips

目前,有一个讨巧的的办法替代这两者的组合:使用 Lantern —— 一款开源的安全上网工具。它使用的是 HTTP 类型代理,本地端口为 8787,也就是说,把本地应用的代理设置为 127.0.0.1:8787 就可以使用 HTTP 类型的代理了。而且使用它,也无需自己购买 VPS。

Lantern 默认非全局代理,可以在设置中改为全局模式。

另一方面,Lantern 只监听本机 127.0.0.1:8787 的连接,如果局域网中的电脑或手机也想通过这台电脑翻墙(假设该电脑 IP 地址为 192.168.1.10),那么也需要配合 Privoxy 使用。这时,Privoxy 的配置应该如下:

1
2
3
# 监听局域网中连接到本地 8118 端口的连接,转发给 8787 端口的 Lantern
forward / 127.0.0.1:8787
listen-address 127.0.0.1:8118    # 可改为 0.0.0.0:8118 允许局域网的连接

二、匿名上网

网络中保持匿名的办法是使用 Tor,匿名的意思是隐藏你当前的 IP 地址。Internet 上有很多志愿者运行着 Tor 中继节点,Tor 能保证从出发点的流量至少经过三个不同的中继节点到达目的地址,而且这三个不同的中继不会每次都相同。

形象地说,你想把一封匿名信交给小明,在大街上随便找了一陌生人 A 让 A 帮忙转交,A 走了一段路程后随便找了一个陌生人 B 让 B 帮忙转交,B 走了一段路程后随便找了一个陌生人 C 让 C 帮忙转交,最终 C 按照信封上的地址找到了小明并把信交给了他。小明只知道是 C 转交了这封信,至于是谁写的这封信,他就无从得知了。A、B、C 分别对应着 Tor 网络的中继节点,这种投递匿名信的方式就起到了隐藏 IP 地址的效果。

如下图所示,使用 Tor 从本机经过三跳访问了 Google。

Tor Browser

Tor 浏览器

为了方便使用 Tor,Tor 开发者把 Tor 集成到了定制版的 Firefox 中,简单设置一下就能正常使用。

Tor 浏览器专为大陆等网络环境加入了流量混淆的选项。首次打开浏览器时会弹出 Tor 状态检查,点击设置配置 Tor 网桥,勾选互联网提供商(ISP)是否对 Tor 网络连接进行了封锁或审查中的,把下一步中的网桥类型选择meek-amazonmeek-azure。这两者在大陆没被完全封锁,因此可以用来做跳板网桥。

不过随着网络环境的恶化,Tor 提供的网桥类型都不可用时,就需要使用自己的 Shadowsocks 或 Lantern 代理了。

首次打开 Tor 浏览器,在 Tor 设置中勾选互联网提供商(ISP)是否对 Tor 网络连接进行了封锁或审查中的,在下一步是否需要本地代理访问互联网?中选择,下一步中设置你的代理:

  • 使用 Shadowsocks 则设置为 SOCKS5 类型的 127.0.0.1:1080
  • 使用 Lantern 则设置为 HTTP/HTTPS 类型的 127.0.0.1:8787

如果通过局域网中其他计算机的配置联网,把 127.0.0.1 改为那台计算机的 IP 地址。

使用了代理的 Tor 浏览器原理示意图如下(以 Tor + Shadowsocks 组合为例):

Tor 浏览器 + Shadowsocks 组合使用示意图

Tor Expert Bundle

Tor 浏览器适用于使用浏览器匿名上网的场景,如果打算让本地应用(如其他浏览器、Linux 中的 Terminal 等)也使用 Tor 隐藏 IP 地址,那么就需要自己手动配置 Tor 了。从 Tor 官网下载 操作系统对应的 Expert Bundle,它只包含 Tor 工具,不含浏览器。

假设你已经配置好了 Shadowsocks,接下来,为 Tor 配置 Shadowsocks 代理。

Windows 系统中,打开 %AppData%/tor 目录(如果不存在则创建该目录),新建 torrc 文件,内容如下:

1
2
3
4
5
6
7
8
## 通过 SOCKS5 代理
SOCKS5Proxy 127.0.0.1:1080
## 如果使用 HTTP/HTTPS 代理
# HTTPSProxy 127.0.0.1:8118

## 如果只允许特定端口的网络连接,如 80 和 443
ReachableAddresses *:80,*:443
ReachableAddresses reject *:*

Linux 系统中,Tor 的配置文件位于 /etc/tor/torrc,配置内容同上。

启动 Shadowsocks 和 Tor,因为 Tor 监听的是 SOCKS5 类型的本地 9050 端口,把需要匿名的本地应用代理设置为 SOCKS5 类型,代理地址设置为 127.0.0.1:9050,实现匿名上网。

还是老问题,如果本地应用只支持 HTTP/HTTPS 代理类型,那么仍需要使用 Privoxy,修改其配置文件为:

1
2
forward-socks5 / 127.0.0.1:9050 .
listen-address 127.0.0.1:8118    # 可改为 0.0.0.0:8118 允许局域网的连接

这样一来,本地应用的代理设置为 HTTP/HTTPS 类型的 127.0.0.1:8118 就可以实现匿名上网了。

Privoxy + Tor + Shadowsocks 组合使用示意图如下所示:

Privoxy + Tor + Shadowsocks 组合使用示意图

One More Tip

使用 Tor 匿名访问网络除了应用于渗透测试,另一个应用场景是编写爬虫变换 IP 地址爬取站点,减小被网站屏蔽的可能性。

在 Linux Terminal 中,使用 export 命令设置代理,可以只在当前 Terminal 中生效,

1
2
export http_proxy=http://127.0.0.1:8118
export https_proxy=https://127.0.0.1:8118

三、总结

接下来简要归纳上述内容,给出每种组合的配置内容。

Privoxy + Shadowsocks 组合 —— 翻墙

配置 Privoxy,Linux 系统中位于 /etc/privoxy/config

1
2
forward-socks5 / 127.0.0.1:1080 .
listen-address 127.0.0.1:8118    # 可改为 0.0.0.0:8118 允许局域网的连接

本地代理需设置为 HTTP/HTTPS 类型的 127.0.0.1:8118
如果不使用 Privoxy,本地代理需设置为 SOCKS5 类型的 127.0.0.1:1080

Privoxy + Tor + Shadowsocks 组合 —— 匿名上网

配置 Privoxy,Linux 系统中位于 /etc/privoxy/config

1
2
forward-socks5 / 127.0.0.1:9050 .
listen-address 127.0.0.1:8118    # 可改为 0.0.0.0:8118 允许局域网的连接

配置 Tor,Windows 系统中位于 %AppData%/tor/torrc,Linux 系统中位于 /etc/tor/torrc

1
2
3
SOCKS5Proxy 127.0.0.1:1080    # Shadowsocks 代理地址
ReachableAddresses *:80,*:443
ReachableAddresses reject *:*

本地代理需设置为 HTTP/HTTPS 类型的 127.0.0.1:8118
如果不使用 Privoxy,本地代理需设置为 SOCKS5 类型的 127.0.0.1:9050

Privoxy + Tor + Lantern 组合 —— 匿名上网

配置 Privoxy,Linux 系统中位于 /etc/privoxy/config

1
2
forward-socks5 / 127.0.0.1:9050 .
listen-address 127.0.0.1:8118    # 可改为 0.0.0.0:8118 允许局域网的连接

配置 Tor,Windows 系统中位于 %AppData%/tor/torrc,Linux 系统中位于 /etc/tor/torrc

1
2
3
HTTPSProxy 127.0.0.1:8787    # Lantern 代理地址
ReachableAddresses *:80,*:443
ReachableAddresses reject *:*

本地代理需设置为 HTTP/HTTPS 类型的 127.0.0.1:8118
如果不使用 Privoxy,本地代理需设置为 SOCKS5 类型的 127.0.0.1:9050

 

tip:Could not bind to 127.0.0.1:9050: Address already in use. Is Tor already running

netstat will tell you what’s listening on that port. Open a terminal (press Ctrl+Alt+T), and run:

sudo netstat -plnt | fgrep 9050

It will tell you which program is using that port. For example, on my system, it shows:

tcp       0     0 127.0.0.1:9050         0.0.0.0:*              LISTEN     1198/tor

At the end, it says that the program listening on that port is tor.

使用you-get下载YouTube视频(被墙也不怕)

原文:https://www.qingsword.com/qing/1348.html

引言
这篇文章给大家推荐ubuntu下非常好用的视频解析工具you-get,这是一款基于命令行的工具,它能够解析各大视频网站的视频真实地址;我们可以通过它下载视频或通过配合本地播放器在线观看视频,因为是解析的真实地址,所以视频不会有广告,而使用本地播放器,对CPU的占用率较Flashplayer要低;下载可以根据不同视频,选择不同清晰度编码下载。

文章目录
0×1.如何获取和安装you-get
0×2.you-get使用实例
0×1.如何获取和安装you-get
在使用之前,这里有一段使用它代替Flashplayer的理由:

大家都知道Flashplayer漏洞频出,而Flashplayer官方已经声明,不再对linux提供更新,虽然我们可以使用Chromium推出的最新版的Flashplayer(本系列文章前面有介绍如何安装),但使用Flash播放视频CPU负载较高;使用浏览器Flash播放视频往往逃不过视频前的插入广告,就算屏蔽广告也会黑屏等待很久。

如果大家都被Flashplayer的这些问题困扰,那么使用you-get代替Flashplayer将是一个不错的选择,you-get能直接解析视频真实的播放地址,可以通过它来下载到本地,也可以直接调用本地mplayer播放器播放,因为是直接解析的播放地址,所以不会有播放前的广告,在这里感谢软件的作者,这是此项目的github地址:you-get作者的Github。

下面是安装步骤:

01
#0.更新系统软件列表
02
[email protected]:~$ sudo apt-get update
03

04
#1.安装必要组件
05
[email protected]:~$ sudo apt-get install python3 python3-pip rtmpdump git vlc
06
#如果安装下面这个组件时提示没有适合的软件包,那就跳过这一步继续
07
[email protected]:~$ sudo apt-get install ffmpeg
08

09
#2.克隆项目到本地(为了防止出现连接跳转,https后面的”:”使用了中文环境的说明号,请手动将其替换成英文状态下的说明号”:”,否则会出现版本库不存在的错误)
10
[email protected]:~$ git clone git://github.com/soimort/you-get.git
11

12
#3.进入项目目录安装
13
[email protected]:~$ cd you-get
14
[email protected]:~/you-get$ sudo python3 setup.py install
0×2.you-get使用实例
安装完成后,直接在终端输入you-get –help能查看使用方法,下面是几种常用方法:

01
#1.调用vlc播放在线视频,打开优酷或者任何you-get支持的视频站点,复制视频地址替换下面双引号中的视频地址,因为视频是分段缓存,所以在vlc的播放列表中可以看到很多段视频,一段大约是几分钟到十几分钟不等,一段结束后会自动播放下一段,所以大家不要认为一个好几G的视频怎么才几分钟,其实是当前这一段只有这么长时间
02
[email protected]:~$ you-get -p vlc “视频地址”
03

04
#2.显示这个视频的详细信息,如果视频有好几种清晰度,会在下面列出
05
[email protected]:~$ you-get -i “视频地址”
06
site: 视频站点名称
07
title: 视频名称
08
streams: # Available quality and codecs
09
– format: hd3
10
container: flv
11
video-profile: 1080P
12
size: 2098.3 MiB (2200242143 bytes)
13
# download-with: you-get –format=hd3 [URL]
14

15
– format: hd2
16
container: flv
17
video-profile: 超清
18
size: 1067.3 MiB (1119127653 bytes)
19
# download-with: you-get –format=hd2 [URL]
20

21
– format: mp4
22
container: mp4
23
video-profile: 高清
24
size: 492.6 MiB (516537666 bytes)
25
# download-with: you-get –format=mp4 [URL]
26

27
– format: flv
28
container: flv
29
video-profile: 标清
30
size: 257.0 MiB (269486431 bytes)
31
# download-with: you-get –format=flv [URL]
32

33
#3.使用-u命令查看视频的真实url地址,会看到很多地址,因为大多视频网站的视频都是分块存放的,不是一个完整的文件
34
[email protected]:~$ you-get -u “视频地址”
35

36
#4.使用-o命令将视频下载到一个指定的文件夹(本例指定的文件夹是/home/qing/movice/),如果不指定,则下载到终端所在目录
37
[email protected]:~$ you-get -o /home/qing/movice/ “视频地址”
38

39
#5.在使用-i命令列出视频清晰度列表后,可以使用format命令指定自己下载哪个清晰度的视频,这里选择hd3模式(1080p)
40
[email protected]:~$ you-get –format=hd3 “视频地址”

原文:http://blog.topspeedsnail.com/archives/4884

you-get是个什么东西:

You-Get is a tiny command-line utility to download media contents (videos, audios, images) from the Web, in case there is no other handy way to do it.

You-Get是从在线视频网站上下载视频的工具,支持很多网站,并不限于youtube。

它是使用Python编写的开源命令行工具,代码托管在Github。Readme文件详细介绍了使用方法。

You-Get支持代理,youtube虽然被墙,但是可以借助像lantern这样的代理下载。

我使用的系统是Ubuntu 16.04:

Ubuntu 16.04编译Lantern
安装You-get:

$ sudo apt install python3-pip
$ sudo apt install ffmpeg
$ sudo pip3 install you-get

运行lantern;lantern的代理端口是127.0.0.1:8787。

下载youtube视频:

$ you-get -x 127.0.0.1:8787 https://www.youtube.com/watch?v=wrwk8j287301

下载Tor浏览器:https://www.torproject.org/projects/torbrowser.html

如果tor的官网被墙,可以去github下载。
https://github.com/TheTorProject/gettorbrowser