内网穿透原理
v2ray反向代理的工作原理:
反向代理可以把服务器端的流量向客户端转发,即逆向流量转发。
- 反向代理的使用场景为:假设在主机A中有一个网页服务器,但其没有公网IP,无法直接通过公网访问。而另一台主机B则拥有公网IP。而这时,我们便需要将B作为入口,将流量从B转发到A。
- 主机A中的v2ray称为
bridge,主机B中的v2ray称为portal。 bridge会向portal主动建立连接,此连接的目标地址可以自行设定。portal会收到两种连接,一是由bridge发来的连接,二是主机B发来的连接。portal会自动将两类连接合并。于是bridge就可以收到了主机B的公网流量了。bridge在收到主机B的公网流量之后,会将其原封不动地发给主机 A 中的网页服务器。当然,这一步需要路由的协作。
配置文件中的reverse项
1 | { |
其中bridges代表bridge数组,portals代表portal数组。
tag:一个标识,所有由bridge发出的连接,都会带有这个标识。可以在路由中使用inboundTag进行识别。domain:一个域名。bridge向portal建立的连接,都会使用这个域名进行发送。这个域名只作为bridge和portal的通信用途,不必真实存在。
具体配置可参考配置文件
bridge通常需要两个出站代理(outbounds),一个用于连接portal,另一个用于发送实际的流量。也就是说,需要用路由(routing)区分两种流量。portal通常需要两个入站代理(inbounds),一个用于接收bridge的连接,另一个用于接收实际的流量。同时也需要用路由(routing)区分两种流量。
v2ray内网穿透的工作原理:
v2ray内网穿透具有三个对象,分别为:待访问的内网服务器bridge,具有公网IP外部用户可访问的中间服务器portal,需要访问内网的外部用户client。
基础内网穿透:只访问一个指定端口。client不需要配置v2ray,直接通过浏览器访问公网IP+端口号即可。场景举例:在外面访问家中的NAS。在本场景中,portal成为一个“端口转发机”。
- 在
bridge和portal中各配置v2ray portal中的接收真实流量的协议应设置为任意门 (dokodemo-door),即原封不动转发至指定端口。
全局内网穿透:可全局访问内网服务器。client需要配置v2ray并设置代理。场景举例:在国外访问国内网络,在校外访问校内网络。在本场景中,client等效于在bridge网络中,即portal成为一个从外部通向内网的“梯子”。
- 在
bridge,portal和client中各配置v2ray portal中的接收真实流量的协议应设为vmess,即接收client的vmess协议连接。client中需要设置入站代理。具体情况可见《内网穿透使用手册》。

v2ray内网穿透网络拓扑图