端口转发详解,v2ray 配置端口转发

一、端口转发是什么

端口转发程序会监听某一个端口,将发送到此端口的数据原封不动地传送到设定好的目标服务器 + 端口中,目标服务器可以是本机,也可以是另一个 IP,端口则是目标服务器的一个端口。若目标服务器返回了数据,则端口转发程序也负责将数据回传给用户。

先画个简图吧,端口转发程序在中间就相当于一个连接用户和目标服务器的桥梁,只会原封不动的将数据来回传输,不会数据进行任何处理。对于用户来说,连接端口转发程序就好像直接连接了目标服务器一样,端口转发程序的存在感很低。

端口转发示意图

二、端口转发能做什么

你可能有时会听人说【中转】二字,比如 A 服务器线路不好,用线路好的 B 服务器进行【中转】,其实这个【中转】就是利用了端口转发的原理。

降低数据传输延迟

假设你连接 A 服务器需要 100 ms,连接 B 服务器需要 30 ms,而 B 服务器连接 A 服务器只要 30 ms,那么你通过 B 服务器中转来连接 A 服务器,得到的时间可以粗略的估算为 60 ms,比直接连接 A 服务器要快 40 ms,若其它的成本忽略不计,那么这个中转就是值得的。

但是不一定所有的中转都会降低延迟,绝大多数反而会增大延迟,对于你来说,只有当 B 服务器的线路比 A 服务器要好上一个档次的时候,中转才可能是有用的。

解锁 Netflix 等视频流媒体

我这里拿 Netflix 来说明,其它的网站也是同理。

同样拿 A、B 服务器说明,假设 A 服务器可以观看 Netflix,但是 B 服务器却不可以,但是苦恼的是,你用 A 服务器速度很慢或者根本无法连接,你用 B 服务器速度快,且 B 服务器和 A 服务器之间也很快,这个时候就可以在 B 服务器架设端口转发程序至 A 服务器了,即使增加了延迟,这也是值得的。

其它说明

实际上,你可以使用不止一个转发程序进行中转,甚至可以形成一条转发链,比如 [你->B->C->D->A] 等等,中间的 B、C、D 都是转发程序,A 则是目标服务器。但是过长的转发链是弊大于利的,在满足你的需求的前提下,应尽量减少转发链的长度。

转发会消耗所有服务器的流量,就拿 [你->B->A] 来说,你发送 1MB 的数据至 A,那么流量消耗可以大致估算为:你(上行 1MB)、B(下行 1MB,上行 1MB)、A(下行 1MB),那么就是说,中间的转发程序永远都会消耗双倍的流量(即上行 + 下行)。从 A 送回数据也是同理。

三、v2ray 使用 dokodemo-door 进行端口转发

Dokodemo door(任意门)是一个入站数据协议,它可以监听一个本地端口,并把所有进入此端口的数据发送至指定服务器的一个端口,从而达到端口映射的效果。

下面来讲讲实际的例子,假设我有一台 A 服务器的 IP 是 1.2.3.4,并且在此服务器上的 1234 端口搭建了一个 vmess 代理(或其它任何代理),我想通过 B 服务器(IP 为 5.6.7.8)的 5678 端口来中转 A 服务器的 1234 端口,那么以下是 B 服务器所需要做的设置

v2ray 配置文件设置

添加一个 inbound:

推荐使用配置文件生成器:强大的 v2ray 配置文件生成器

{
  "protocol": "dokodemo-door",  // 协议名称
  "port": 5678,                 // 本地监听端口
  "settings": {
    "address": "1.2.3.4",       // 目标服务器,填写 IP 或域名
    "port": 1234,               // 目标端口
    "network": "tcp,udp",       // 要转发的网络协议,可填"tcp","udp","tcp,udp"
    "timeout": 0                // 入站数据的时间限制(秒),默认 300 秒
  }
}

v2-ui 面板设置

设置好后,重启 v2ray,此时你连接 B 服务器(IP 为 5.6.7.8)的 5678 端口,vmess (或其它任何代理)其它的配置仍旧和之前一样,只是将连接的 IP 和端口改为了 5.6.7.8 和 5678,就可以成功使用 B 服务器 中转 A 服务器了。

这篇文章有 6 个评论

  1. 头像

    想请问一下 转发 CDN+WS+TLS 需要怎么设置呢
    CDN+WS+TLS 不通过转发 或者 dokodemo-door 转发 WS+TLS 都可以连接
    使用 dokodemo-door 转发到 CDN 会出现错误

  2. 头像

    请问这个转发地址可以用域名代替吗

    1. sprov

      可以

  3. 头像

    这个中转的方法不能用于 WS + TLS.

  4. 头像

    请问下作为转发的服务器B没有走任何加密混肴会不会更容易被墙?

    1. sprov

      传给B的数据已经是加密的了,B只充当桥梁的作用

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

关闭菜单