用tor访问对tor不友好的网站(二)——使用V2Ray上游代理功能 翻墙

很多网站会屏蔽tor流量,比如imgur.com会限制tor用户上传图片,Google会给tor用户出验证码。解决方法之一是给tor增加后置代理,网站检测到非tor流量,就会放行访问通过。

前些日子V2Fly(原名V2Ray)發布了4.35.1版本,其中新增了对上游代理(upstream proxy)的支持。网络上有很多用于翻墙的免费代理服务器,可以用V2Fly的上游代理功能,将网络上的翻墙节点转变成tor的后置代理。

◇ 假设你不用翻墙,那么配置好tor的后置代理之后,电脑上的代理走向如下:

浏览器➜V2Fly➜Tor

数据包离开电脑之后,在代理服务器之间的跳转如下所示:

你的电脑➜Tor节点×3➜翻墙节点➜要访问的网站


◇ 如果你需要翻墙,那么需要先配置tor的前置代理才能访问tor网络。在配置好前置代理之后,电脑上的代理走向是这样的

浏览器➜V2Fly➜Tor➜翻墙代理

数据包离开电脑之后,在代理服务器之间的跳转如下:

你的电脑➜你自己的翻墙代理➜Tor节点×3➜翻墙节点➜要访问的网站

★ 配置方法

首先需要下载以下软件:

◇ 步骤1:配置tor浏览器

tor浏览器内部自带一个tor,可以用这个tor代理其它软件的流量。在配置后置代理之前首先要确保tor浏览器可以正常使用。tor浏览器的配置方法这里从略。

◇ 步骤2:导入开放代理

网上有很多追求自由的热心人会提供免费代理服务器,供国内用户翻墙上网,常见的提供者有freefq反共翻墙会(欢迎补充)。打开一个以下的订阅链接,把网页上的内容复制进V2RayN。

复制以上网页中的内容,在V2RayN中,点击左上角的【服务器】,再选择【从剪贴板批量导入url】即可(也可以直接输入订阅链接)。导入之后的效果如图。

fig.1

注意这里V2RayN只用来可视化分享链接编码,接下来需要手动编辑配置。

◇ 步骤3:编辑配置文件

遗憾的是到本文发出为止,还没有图形客户端支持配置V2Fly上游代理,因此只能手动编辑配置文件,然后在命令行下运行V2Fly。

主流的开放代理提供的节点种类有shadowsocks、Trojan、VMess+WS+TLS。我这里用上面的服务器链接,提供了一个写好的配置文件,其中包含shadowsocks、Trojan、VMess+WS+TLS三种节点。如果你要使用其它服务器,只要把以下配置当作模板,按照对应项修改即可。

所有需要修改的地方都用注释做出了说明,没有注释的地方不用更改。“//”以及后面的文字内容是注释,可以删去,不删去不影响使用。


{
"inbounds": [
    {
        "tag": "socks",
        "listen": "127.0.0.1", 
        "port": 8964, 
        "protocol": "socks",
        "settings": {"udp": true}
    },
    {
        "tag": "http",
        "listen": "127.0.0.1",
        "port": 8965,
        "protocol": "http"
    }
],

"routing": {
    "domainStrategy": "AsIs",
    "rules":[
        {
            "type": "field", 
            "inboundTag": ["socks", "http"], 

            //这里填shadowsocks可以使用以下的shadowsocks节点,
            //填“vmess”可以使用下面的vmess节点,以此类推。
            // 可选项有“shadowsocks”,“vmess”,“trojan”
            "outboundTag": "shadowsocks"
        }
    ]
},

"outbounds": [
    {
        "tag": "tor_upstream",
        "protocol": "socks",
        "settings": {"servers": [{
            "address": "127.0.0.1", 
            "port": 9150
        }]}
    },

    {
        // shadowsock 服务器配置。如果你有shadowsocks链接,就填写这里的配置
        "tag": "shadowsocks",
        "protocol": "shadowsocks",
        "settings": {"servers": [{
            // 服务器地址
            "address": "185.2.100.166",

            // 端口
            "port": 33992,

            // 加密方式
            "method": "aes-256-gcm",

            // 密码
            "password": "8n6pwAcrrv2pj6tFY2p3TbQ6"
        }]},
        "proxySettings": {
            "tag": "tor_upstream", 
            "transportLayer": true
        }
    },

    {   // 这是一个vmess服务器配置。如果你有一个vmess+ws+tls链接,就填写这里
        "tag": "vmess",
        "protocol": "vmess",
        "settings": {"vnext": [{

            // vmess服务器地址
            "address": "104.16.0.0",

            // 端口,对于vmess+ws+tls组合一般不用更改
            "port": 443,
            "users": [
                {
                    // 用户id
                    "id": "ad806487-2d26-4636-98b6-ab85cc8521f7",

                    // alterid,这一项要填对
                    "alterId": 64,

                    // 加密方式,大多数节点是auto,不用更改
                    "security": "auto"
                }
            ]
        }]
        },
        "streamSettings": {
            "network": "ws",
            "security": "tls",
            "wsSettings": {
                // ws路径,注意需要填写对
                "path": "/",
                "headers": {

                    // vmess域名。在V2RayN图形界面裡,叫做“伪装域名”
                    "Host": "dawn-king-a02e.hd1831420646.workers.dev"
                }
            },
            "tlsSettings": {
                // vmess服务器地址,域名形式,和上面一样
                "serverName": "dawn-king-a02e.hd1831420646.workers.dev"
            }
        },
        "proxySettings": {
            "tag": "tor_upstream", 
            "transportLayer": true
        }
    },
    
    {// 这是一个trojan服务器配置项。如果你有trojan链接,就填写这里
        "tag": "trojan",
        "protocol": "trojan",
        "settings": {"servers": [{
                // trojan服务器地址
                "address": "pro-us1-3.sstr-api.xyz",

                // 端口,一般不用更改
                "port": 443,

                // 密码
                "password": "W3ADSjTHjxN3Nt28WC"
            }]
        },
        "streamSettings": {
            "security": "tls",
            "tlsSettings": {

                // trojan服务器地址,和上面一样
                "serverName": "pro-us1-3.sstr-api.xyz"
            }
        },
        "proxySettings": {
            "tag": "tor_upstream", 
            "transportLayer": true
        }
    }    
]
}

Tip:对于shadowsocks和trojan节点,V2RayN中的密码用“*”显示,无法复制。一个方法是打开V2RayN目录下的guiNConfig.json文件,按Ctrl+F输入关键字,查找对应节点的密码。“id”后面跟着的一项就是密码。

◇ 步骤4:运行V2Ray

下载好V2Fly并解压,在v2ray.exe旁边新建一个叫做config.json的文件,用记事本打开,添加进修改好的配置。

首先打开tor浏览器,确保tor可以正常联网。然后右键在文件夹背景处单击,打开powershell,输入

./v2ray.exe

就可以运行后置代理。以上文件会打开8964 socks5端口和8965 http端口,再打开一个浏览器(例如chrome),把浏览器的socks5设置成8964就可以用tor后置代理上网。

经过实测这种方法的速度非常快(因为tor出口节点和后置代理都在墙外),而且因为开放代理不需要注册账号,安全性也比较高。如果有长期使用tor+后置代理的需求,可以考虑使用支持加密货币的机场作为后置代理。

( 由 作者 于 2021年3月10日 编辑 )
3
2021年3月10日 534 次浏览
2 个评论
忙碌中

@inferior #129932

上面的配置测试过,完全没有问题。

  • 浏览器是firefox,代理用socks v5,同时打开【Proxy DNS when using Socks v5】;

  • 接受浏览器流量的socks5 inbound,需要打开"settings": {"udp": true}

  • 用socks outbound把流量导入tor(127.0.0.1:9150)。

  • 需要在ss/vmess/trojan outbound上打开"transportLayer": true(保持传输层协议),这个是新版本的功能。

应该就可以了。

北大未名
标记为删除
( 由 作者 于 2021年3月18日 编辑 )

欲参与讨论,请 登录注册

example notif text