| 本帖最後由 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 ===
 内有四组路由,第三四组是基本的,第一组路由解读是“inbound是bridge时,带着reverse.tunnel.projectv时就走 tag:tunnel出站”建立反向代理複製代碼"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时就走tag:direct出站”这组意思是,由郊外入来的都在市内出站。
 *** 迟些再补充 ***
 
 
 === code04-client-outbound ===
 出站有3组 第三组freedom不用说,第一二组给是建立 预设 和 反向 的出站。複製代碼"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": {}
   }
]
*
 *
 *
 *
 *
 服務器
 === code04-server-reverse ===
 domain:用來識別市內發出建立反向代理的標籤複製代碼"reverse": {
   "portals":[  
      {  
         "tag":"portal",
         "domain":"reverse.tunnel.projectv"
      }
   ]
}
 
 === code04-server-inbound ===
 預設 和 反向 的入站口 和 socks入站複製代碼"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
 },
]
 
 === code04-server-routing ===
 第一組路由解讀“由tunnel來的 就由portal回應” 接受市內要求 建立反向複製代碼"routing": {
   "domainStrategy": "IPOnDemand",   
   "rules": [
      // connect from cn
      {
         "type":"field",
         "inboundTag":[
            "tunnel"
         ],
         "outboundTag":"portal"
      },
      // domain to cn
      {
         "type": "field",
         "domain": [
            "domain:iqiyi.com"
         ],
         "outboundTag": "portal"
      }
   ]
},
第二組路由解讀“如果有iqiyi.com要求 就由portal出站” (需然這邊是郊外,但一樣可以有socks入站)
 
 
 === code04-server-outbounds ===
 。。。後续。。。複製代碼"outbounds": [
   {
      "tag": "direct",
      "protocol": "freedom",  
      "settings": {}
   }
]
 |