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网络。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)


相关推荐

  • windows server2016搭建ftp服务器_搭建网站的服务器

    windows server2016搭建ftp服务器_搭建网站的服务器WindowsServer2016系统中,快速搭建FTP服务器,作为文件服务器,下面分三步说明:安装IIS和FTP服务 配置FTP服务 测试FTP一、安装IIS和FTP服务首先点击开始菜单,进入找到服务器管理器,点击打开。进入后,找到管理菜单,点击添加角色和功能。进入服务器系统打开“服务器管理器”,点击“添加角色和功能”进入角色添加向导,一直点击下一步按钮到服务…

  • mysql添加唯一索引语句_mysql自动创建索引

    mysql添加唯一索引语句_mysql自动创建索引查看索引showindexfrom数据库表名altertable数据库addindex索引名称(数据库字段名称)PRIMARYKEY(主键索引)ALTERTABLE`table_name`ADDPRIMARYKEY(`column`)UNIQUE(唯一索引)ALTERTABLE`table_name`ADDUNIQUE(`column`)INDEX(普…

  • PS制作CSS精灵图

    PS制作CSS精灵图精灵图简介1.精灵图(雪碧图)(1)问题:精灵图就是将很多的小图标合并到一张较大的图片中,那精灵是啥意思呢?(为此笑了一下午的我)。(2)精灵图也称雪碧图,由于大型网页首次加载需要时间,如果再加之加载小图标的时间,则会严重影响到用户体验。所以,考虑到在同一时间内,服务器拥堵的情况,使用精灵图来解决这一问题。那么怎么制作精灵图呢2.使用ps制作精灵图的详细步骤示例:将如下图图片中的四个图…

  • docker访问宿主机端口_docker 访问宿主机局域网

    docker访问宿主机端口_docker 访问宿主机局域网有时候就需要在docker容器里访问宿主机提供的服务。例如容器里的应用需要访问宿主机的mysql服务。方案一:宿主机执行ifconfig会看到docker0那个ip,可以使用来访问宿主机方案二:docker18.03加入了一个feature,在容器中可以通过host.docker.internal来访问主机UseyourinternalIPaddres…

  • pycharm windows 重置_pycharm重置设置,恢复默认设置「建议收藏」

    pycharm windows 重置_pycharm重置设置,恢复默认设置「建议收藏」备忘,备忘,备忘2020-03-23日更新,重置有问题的,请参考底部官网链接.(另外:喷我并不能解决你的问题.)window系统找到下方目录–>删除.再重新打开pycharm#WindowsVista,7,8,10:\Users\\.例:C:\Users\Administrator\.PyCharm2018.1#WindowsXP:\DocumentsandSett…

  • 深度:一文看懂Linux内核!Linux内核架构和工作原理详解[通俗易懂]

    深度:一文看懂Linux内核!Linux内核架构和工作原理详解[通俗易懂]简介作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。目前支持模块的动态装卸(裁剪)。Linux内核就是基于这个策略实现的。Linux进程1.采用层次结构,每个进程都依赖于一个父进程。内核启动init程序作为第一个进程。该进程负责进一步的系统初始化操作。init进程是进程树的根,所有的进程都直接或者间接起源于该进程。virt/—-提供虚拟机技术的支…

发表回复

您的电子邮箱地址不会被公开。

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