本帖最後由 kingwilliam 於 2019-7-10 12:52 編輯
13 - 反向代理
这个功能不止官网所说只是连接回家看看那个伺服器那麽简单。
这个功能最大的好处就是市内的“桥头堡”没有真正IP,路由也不能“端口影射”。就可靠这个“反向代理”功能,在郊外也可看市内的“爱奇艺”。
*** 图03 ***
上图正是官网所说的 多入站,多路由,多出站 架构
也是我现用 反向代理 的架构图。由两座桥组成,预设那座是一般由市内出郊外用的。反向那座是给郊外入市内用的。
*** 如有师兄可以用一座桥完城 请告知 *** 因我试了很多不同组合,但都有不同问题,两座桥的组合暂时发觉是最稳定。
因代码有点长,所以分了段落和简化。
先上客户端
=== code04-client-inbound ===- "inbounds": [
- {
- "protocol": "socks",
- "port": 1080
- }
- ]
複製代碼 只是一般入站代码
=== code04-client-reverse ===- "reverse": {
- "bridges":[
- {
- "tag":"bridge",
- "domain":"reverse.tunnel.projectv"
- }
- ]
- }
複製代碼 这段就是 触发 反向代理的代码
"domain": 是给服务器那边 识认 这是一个反向代理的標籤,所以要给一个两边一至不存在的域名。
=== code04-client-routing ===- "routing": {
- "domainStrategy": "IPOnDemand",
- "rules": [
- {
- "type": "field",
- "inboundtag": [
- "bridge"
- ],
- "domain": [
- "full:reverse.tunnel.projectv"
- ],
- "outboundTag": "tunnel"
- },
- {
- "type": "field",
- "inboundTag": [
- "bridge"
- ],
- "outboundTag": "direct"
- },
- {
- "type": "field",
- "domain": [
- "geosite:cn"
- ],
- "outboundTag": "direct"
- },
- {
- "type": "field",
- "ip": [
- "geoip:cn",
- "geoip:private"
- ],
- "outboundTag": "direct"
- }
- ]
- }
複製代碼 内有四组路由,第三四组是基本的,第一组路由解读是“inbound是bridge时,带着reverse.tunnel.projectv时就走 tag:tunnel出站”建立反向代理
第二组解读是“inbound是bridge时就走tag:direct出站”这组意思是,由郊外入来的都在市内出站。
*** 迟些再补充 ***
=== code04-client-outbound ===- "outbounds": [
- {
- "tag": "defaultout",
- "protocol": "vmess",
- "settings": {
- "vnext": [
- {
- "address": "address",
- "port": 443,
- "users": [
- {
- "id": "id"
- }
- ]
- }
- ]
- }
- },
- {
- "tag": "tunnel",
- "protocol": "vmess",
- "settings": {
- "vnext": [
- {
- "address": "server",
- "port": 443,
- "users": [
- {
- "id": "id"
- }
- ]
- }
- ]
- }
- },
- {
- "tag": "direct",
- "protocol": "freedom",
- "settings": {}
- }
- ]
複製代碼 出站有3组 第三组freedom不用说,第一二组给是建立 预设 和 反向 的出站。
*
*
*
*
*
服務器
=== code04-server-reverse ===- "reverse": {
- "portals":[
- {
- "tag":"portal",
- "domain":"reverse.tunnel.projectv"
- }
- ]
- }
複製代碼 domain:用來識別市內發出建立反向代理的標籤
=== code04-server-inbound ===- "inbounds": [
- {
- "tag": "defaultin"
- "port": 44303,
- "protocol": "vmess",
- "settings": {
- "clients": [
- {
- "id": "id",
- "alterId": 64,
- "level": 1
- }
- ]
- }
- },
- {
- "tag": "tunnel",
- "port": 44305,
- "protocol":"vmess",
- "settings":{
- "clients":[
- {
- "id": "id",
- "alterId":64,
- "level": 1
- }
- ]
- }
- },
- {
- "protocol": "socks",
- "port": 1080
- },
- ]
複製代碼 預設 和 反向 的入站口 和 socks入站
=== code04-server-routing ===- "routing": {
- "domainStrategy": "IPOnDemand",
- "rules": [
- // connect from cn
- {
- "type":"field",
- "inboundTag":[
- "tunnel"
- ],
- "outboundTag":"portal"
- },
- // domain to cn
- {
- "type": "field",
- "domain": [
- "domain:iqiyi.com"
- ],
- "outboundTag": "portal"
- }
- ]
- },
複製代碼 第一組路由解讀“由tunnel來的 就由portal回應” 接受市內要求 建立反向
第二組路由解讀“如果有iqiyi.com要求 就由portal出站” (需然這邊是郊外,但一樣可以有socks入站)
=== code04-server-outbounds ===- "outbounds": [
- {
- "tag": "direct",
- "protocol": "freedom",
- "settings": {}
- }
- ]
複製代碼 。。。後续。。。 |