yanue / V2rayU

V2rayU,基于v2ray核心的mac版客户端,用于科学上网,使用swift编写,支持trojan,vmess,shadowsocks,socks5等服务协议,支持订阅, 支持二维码,剪贴板导入,手动配置,二维码分享等
https://github.com/yanue/V2rayU
18.66k stars 2.87k forks source link

如何使用v2rayU同时代理unblockneteasemuisc? #1028

Closed liqt91 closed 2 years ago

liqt91 commented 2 years ago

v2ray在我的电脑上正常工作,严格来说我希望得到配置方面的帮助:根据域名,将不同请求代理到本地不同端口

简单介绍下标题中的unblockneteasemusic:通过将访问music.163.com的请求重定向到本地的8080端口,并做额外解析的方式解锁网易云的灰色歌曲。 参见:https://github.com/UnblockNeteaseMusic/server

1) 你正在使用的 V2RayU 和 Mac 版本 ? v2rayU: 3.2.0 Mac: osx 12.1 processor:arm m1

2) 你遇到的问题是什么?简述:不知道如何根据域名将请求代理到本地不同端口 v2rayU本地端口:1080 unblockneteastmusic本地端口:8080 为了使用unblockneteasemusic的功能,希望将music.163.com、interface.music.163.com、interface3.music.163.com、apm.music.163.com、apm3.music.163.com、musicupload.netease.com、59.111.19.33、59.111.160.195、115.236.118.34、115.236.121.4、115.236.118.35、59.111.181.35 等网易云音乐相关网址和IP代理到本地的127.0.0.1:8080端口上,供端口程序做额外解析 个人理解,最简单的方式,使用PAC代理,在proxy.js文件中,修改路由函数FindProxyForURL,增加一个if判断如下即可:

function FindProxyForURL(url, host) {
  if (defaultMatcher.matchesAny(url, host) instanceof BlockingFilter) {
    return proxy;
  }
  if (host == 'music.163.com' || host == 'interface.music.163.com' || host == 'interface3.music.163.com' || host == 'apm.music.163.com' || host == 'apm3.music.163.com' || host == 'musicupload.netease.com' || host == '59.111.19.33' || host == '59.111.160.195' || host == '115.236.118.34' || host == '115.236.121.4' || host == '115.236.118.35' || host == '59.111.181.35') {
                            return 'PROXY 127.0.0.1:8080'
}
  return direct;
}
                    }

如果可以实现,那么默认的pac域名依旧走1080端口,和网易云音乐域名有关的请求可以走8080端口。问题在于没有找到这个proxy.js的编辑入口。 此外还考虑过2种方式:1、手动填写pac的方案,好像并不支持分别走不同的端口;2、routing方案,可以为8080端口单独配一个服务器,但是卡在根据域名指定不同的代理服务器上,图形化的配置界面上似乎不支持 综上,还是觉得修改proxy.js比较方便,希望作者大大或者其他大大指点一二,谢谢

3) 请附上你的配置(提交 Issue 前请隐藏服务器端IP地址)。

    {
  "log": {
    "error": "",
    "loglevel": "info",
    "access": ""
  },
  "inbounds": [
    {
      "listen": "127.0.0.1",
      "protocol": "socks",
      "settings": {
        "udp": false,
        "auth": "noauth"
      },
      "port": "1080"
    },
    {
      "listen": "127.0.0.1",
      "protocol": "http",
      "settings": {
        "timeout": 360
      },
      "port": "1087"
    }
  ],
  "outbounds": [
    {
      "mux": {
        "enabled": false,
        "concurrency": 8
      },
      "protocol": "vmess",
      "streamSettings": {
        "network": "ws",
        "wsSettings": {
          "path": "/hls/cctv5phd.m3u8",
          "headers": {
            "host": ""
          }
        },
        "security": "none"
      },
      "tag": "proxy",
      "settings": {
        "vnext": [
          {
            "address": "XXXXXXXXXXX",
            "users": [
              {
                "id": "XXXXXXXXXXX",
                "alterId": 2,
                "level": 0,
                "security": "XXXXXXXXXx"
              }
            ],
            "port": 80
          }
        ]
      }
    },
    {
      "tag": "direct",
      "protocol": "freedom",
      "settings": {
        "domainStrategy": "UseIP",
        "userLevel": 0
      }
    },
    {
      "tag": "block",
      "protocol": "blackhole",
      "settings": {
        "response": {
          "type": "none"
        }
      }
    }
  ],
  "dns": {},
  "routing": {
    "settings": {
      "domainStrategy": "AsIs",
      "rules": [
        {
          "type": "field",
          "outboundTag": "proxy",
          "domain": [
            "music.163.com"
          ]
        }
      ]
    }
  },
  "transport": {}
}

4) 请附上出错时软件输出的错误日志。 v2ray在我的电脑上正常工作,只是希望得到配置方面的帮助,万分感谢

liqt91 commented 2 years ago

auto re:来信已收到。                    ------------秋涛

vin9712 commented 1 year ago

有个办法,就是修改了proxy.js文件的路由函数FindProxyForURL之后,将当前文件锁定,这样下次打开应用就不会覆盖本次的修改了。

liqt91 commented 1 year ago

auto re:来信已收到。                    ------------秋涛