linux做代理服务器_linux搭建http下载服务器

linux做代理服务器_linux搭建http下载服务器介绍了在linux上安装Tor内核,实现SOCK5代理服务,用于网络匿名。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

一、简介

首先, Tor官方提供已不再提供单独的Tor内核下载,只提供集成了Tor内核的Tor-Browser下载。Tor Browser 内置了Tor,firefox,配置工具等,使用方便,但是安装和启动需要依赖GUI图形界面,在Windows或者Mac系统上推荐安装Tor-Browser,会简便很多。如果Linux上没有安装图形界面系统,如代理服务器VPS等,是无法安装Tor-Browser的,这个情况下可以通过安装Tor内核软件的方式实现TOR代理功能。

Tor Browser的安装和使用已经在另一个文档Tor工具使用手册中详细介绍,这里主要介绍在没有图形界面的Linux服务器上安装Tor内核实现Tor代理功能。

二、安装

以下的安装在是centos6.5_64x系统上进行的。
centos系统默认yum源是找不到tor安装包的,若yum install tor提示未找到安装包,需要添加epel yum外部源。EPEL (Extra Packages for Enterprise Linux) 是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供他们默认不提供的软件包。这个源兼容RHEL及像CentOS和Scientific Linux这样的衍生版本。

安装步骤如下:

  1. yum install tor 若是提示未找到tor安装包,查看 /etc/yum.repos.d/下是否有epel.repo文件,若没有,说明系统未添加epel yum外部源,需要手动添加,若已经添加epel外部源,可直接安装tor,则跳过2-6步骤。
  2. 根据你的操作系统,从网站获取对应的epel 的安装包,centos6.5_64位系统获取的安装包如下 (查看系统版本指令lsb_release -a && uname -a)wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  3. sudo rpm -ivh epel-release-6-5.noarch.rpm
  4. 安装成功后可看到 /etc/yum.repos.d/目录下多了epel.repo 与epel-testing.repo文件
  5. yum clean all
  6. yum makecache
  7. yum install tor

三、启动

安装Tor成功之后,就可以启动Tor了。需要注意的是Tor必须以非root用户启动,否则会启动失败。可以新建一个用户或使用已经存在的其他用户。新建用户操作可参考如下

  1. useradd admin -d /home/admin
  2. passwd admin
  3. chown -R admin:admin /home/admin
  4. chown -R admin:admin /var/run/tor
  5. 切换到用户admin运行Tor,成功运行Tor会显示以下打印

    Feb 16 06:33:41.862 [notice] Tor v0.2.8.12 running on Linux with Libevent 1.4.13-stable, OpenSSL 1.0.1e-fips and Zlib 1.2.3.

    Feb 16 06:33:41.862 [notice] Tor can’t help you if you use it wrong! Learn how to be safe at
    https://www.torproject.org/download/download#warning

    Feb 16 06:33:41.862 [notice] Read configuration file “/etc/tor/torrc”.

    Feb 16 06:33:41.866 [notice] Opening Socks listener on 127.0.0.1:9050

    Feb 16 06:33:41.866 [notice] Opening Control listener on /var/run/tor/control

    Feb 16 06:33:41.000 [notice] Parsing GEOIP IPv4 file /usr/share/tor/geoip.

    Feb 16 06:33:41.000 [notice] Parsing GEOIP IPv6 file /usr/share/tor/geoip6.

    Feb 16 06:33:42.000 [notice] We were built to run on a 64-bit CPU, with OpenSSL 1.0.1 or later, but with a version of OpenSSL that apparently lacks accelerated support for the NIST P-224 and P-256 groups. Building openssl with such support (using the enable-ec_nistp_64_gcc_128 option when configuring it) would make ECDH much faster.

    Feb 16 06:33:42.000 [notice] Bootstrapped 0%: Starting

    Feb 16 06:33:43.000 [notice] Bootstrapped 5%: Connecting to directory server

    Feb 16 06:33:43.000 [notice] Bootstrapped 10%: Finishing handshake with directory server

    Feb 16 06:33:44.000 [notice] Bootstrapped 15%: Establishing an encrypted directory connection

    Feb 16 06:33:44.000 [notice] Bootstrapped 20%: Asking for networkstatus consensus

    Feb 16 06:33:44.000 [notice] Bootstrapped 25%: Loading networkstatus consensus

    Feb 16 06:33:46.000 [notice] I learned some more directory information, but not enough to build a circuit: We have no usable consensus.

    Feb 16 06:33:48.000 [notice] Bootstrapped 40%: Loading authority key certs

    Feb 16 06:33:48.000 [notice] Bootstrapped 45%: Asking for relay descriptors

    Feb 16 06:33:48.000 [notice] I learned some more directory information, but not enough to build a circuit: We need more microdescriptors: we have 0/7219, and can only build 0% of likely paths. (We have 0% of guards bw, 0% of midpoint bw, and 0% of exit bw = 0% of path bw.)

    Feb 16 06:33:50.000 [notice] Bootstrapped 50%: Loading relay descriptors

    Feb 16 06:33:51.000 [notice] Bootstrapped 55%: Loading relay descriptors

    Feb 16 06:33:53.000 [notice] Bootstrapped 60%: Loading relay descriptors

    Feb 16 06:34:02.000 [notice] Bootstrapped 69%: Loading relay descriptors

    Feb 16 06:34:47.000 [notice] Bootstrapped 74%: Loading relay descriptors

    Feb 16 06:34:47.000 [notice] Bootstrapped 80%: Connecting to the Tor network

    Feb 16 06:34:48.000 [notice] Bootstrapped 90%: Establishing a Tor circuit

    Feb 16 06:34:49.000 [notice] Tor has successfully opened a circuit. Looks like client functionality is working.

    Feb 16 06:34:49.000 [notice] Bootstrapped 100%: Done

四、测试

启动Tor成功之后,可以输入netstat -lnt查看本机的网络状态,

tcp     0     0     127.0.0.1:9050      0.0.0.0:*      LISTEN  

可以看到TOR开启了本地9050端口作为SOCKS5代理,其他应用程序可以通过使用torsocks全局代理工具或者配置应用程序的代理为127.0.0.1:9050走Tor网络。 在服务器上验证能否正常连接到Tor 网络 ,可以使用以下语句测试进行对比测试

curl ipinfo.io            #可以获取到正确的本机IP信息 
torsocks curl ipinfo.io   #公网上获取到的的IP为非本机IP,且每隔几分钟变化一次 

五、代理配置

现在要使该服务器成为一个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:

  1. 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

  2. Q: 安装和配置正常,但是启动Tor,发现无法连接到Tor网络?
    国内需翻墙才能顺利连接接到TOR网络。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/187885.html原文链接:https://javaforall.net

(0)
上一篇 2026年4月18日 上午10:40
下一篇 2026年4月18日 上午10:46


相关推荐

  • mac goland 2021.12激活码_在线激活

    (mac goland 2021.12激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html3YVYA7ZZGQ-eyJsaWN…

    2022年3月30日
    152
  • Nhibernate_juan benet

    Nhibernate_juan benet什么是NHibernate?NHibernate是一个基于.Net,用于关系数据库的对象持久化类库.它是著名的Hibernate的.Net版本.NHibernate用于把你的.Net对象持久化到底层的关系数据库中.你完全不用自己编写Sql语句去操作这些对象,NH会代替你做.你的代码里面只需要关心这些对象,NH生成sql语句并能为你取到正确的东西.开发过程HNibernate将会有一些工具帮助你,如

    2025年7月3日
    4
  • iOS App 签名的原理

    iOS App 签名的原理感谢作者 bang 的授权发布 版权归原作者所有 未经允许 请勿转载 原文地址 http blog cnbang net tech 3386 作者 陈振焯 网名 bang iOS 开发者 推特中文圈 JSPatch 作者 CSDN 有奖征稿啦 技术之路 共同进步 有优质移动开发 VR AR MR 物联网原创技术文章欢迎发送邮件至 mobilehub csdn

    2026年3月18日
    2
  • notepad主题_python主题更改

    notepad主题_python主题更改转载于:点击这里查看原博客更改jupyternotebook的主题颜色(theme)包括pycharmpython/

    2022年8月27日
    8
  • 【coze扣子一】从创建一个智能体开始快速入门

    【coze扣子一】从创建一个智能体开始快速入门

    2026年3月12日
    3
  • 面试框架题整理

    面试框架题整理面试题总结一基础部分1.1集合1.1.1fail-fast与fail-safe机制有什么区别1.1.2说出ArrayList,Vector,LinkedList的存储性能和特性ArrayList采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦LinkedList采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引但是缺点就是查找非常麻烦要丛第一个索引开始ArrayList和Vector都是用数组方

    2022年5月11日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号