中转路由(搭建中转机场的一种方式)

介绍一种中转的方式,有一些翻墙机场是这样中转的,有一些不是。这样做达不到最高的性能,但是简单方便功能多。如果单纯是翻墙中转的需求,建议搜索转发。

先说一下这篇奇怪的配置的初衷:我目前居住在美国,用币安炒币,而币安不服务美国用户,于是租了一台欧洲(卢森堡)的机器,用来代理炒币。同时,我白嫖了甲骨文的免费实例(美东)。发现:本地到卢森堡的机器路由不稳,ping 时高时低,挂单不及时,但是本地到甲骨文比较稳定,而美东甲骨文到卢森堡非常非常稳定。于是我就想用甲骨文中转一下到卢森堡的流量。

同时,甲骨文的免费 ARM 实例,4 核心 24G 内存,最大 200G 硬盘,每月 10T 流量,性能挺好。我想用它来挂个 PT,BT。但是甲骨文版权管理挺严格,乱下载被封号就不爽了,正好卢森堡的机器不鸟 DMCA,完美,这样就需要在甲骨文机器上也开个代理到卢森堡的端口。

我没有过墙的需求,因此下面使用都是 Shadowsocks 协议,目前 Shadowsocks 易检测,不建议使用 Shadowsocks 过墙。

中转机器的配置如下:

{
  "log": {
    "loglevel": "error"
  },
  "inbounds": [
    {
      "port": 12345, // 服务甲骨文本地的端口号,接收 socks 协议
      "protocol": "socks",
      "settings": {
        "udp": true
      }
    },
    {
      "listen": "0.0.0.0",
      "port": 23456, // 接收远程用户连接的端口号,接收 Shadowsocks 协议
      "protocol": "shadowsocks",
      "settings": {
        "clients": [
          {
            "password": "password",
            "method": "chacha20-poly1305"
          }
        ],
        "network": "tcp,udp"
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "shadowsocks",
      "settings": {
        "servers": [
          {
            "address": "lu.ip", // 卢森堡 ip
            "port": 12356, // 卢森堡机器的服务端口
            "password": "anotherpassword",
            "method": "chacha20-poly1305"
          }
        ]
      }
    }
  ]
}

上面的配置,本地开了两个inbound,一个接收本地的 socks5 流量,一个接收远程的 Shadowsocks 流量。outbound是 Shadowsocks,没有分流,直接转发。入站出站可以用不同的协议,比如入站用 xtls ,出站用 Shadowsocks,迷惑一下可能存在的网络跟踪,还可以加上route配置分流。还可以入站前用 WS 经过 CDN转发,出站使用 WARP ,这样路由就很复杂了,可能有利于保护隐私吧。

本地和卢森堡就是常规配置,本地可以直连卢森堡,也可以经甲骨文中转连接卢森堡。通过简单测试,经甲骨文中转的 ping 值,比最好情况下的直连要慢 20 - 30 毫秒,但是稳定很多(正常情况下)。甲骨文的免费服务一言难尽,我这才开机 40 天,经历过两次服务中断了……连 10 块钱一年的 Racknerd 都不如,甲骨文是把免费用户当成公测劳动力了吧。