FelisCatus / SwitchyOmega

Manage and switch between multiple proxies quickly & easily.
GNU General Public License v3.0
21.34k stars 3.21k forks source link

chrome自带的翻译工具无法使用代理 #264

Closed yinxufeng closed 9 years ago

yinxufeng commented 9 years ago

无论选择哪种情景模式,貌似翻译功能不走代理。将shadowsocks-csharp设置为系统全局代理,SO切换到“系统代理”模式,则可以正常翻译了

hdz2020 commented 3 years ago

2021/03/29: 翻译流量不能通过SO插件中转的; 测试环境下:开个PY监听TCP/UDP,点翻译都是不会有请求过来; 但是翻译是可以直连的;把.*translate.googleapis.com解析到国内即可,是北京ip的谷歌云,但不稳定; 所以可以选择设全局或者PAC;

还有一个最简单的方法是: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) qm1 = b"\x1ck\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x09translate\x0agoogleapis\x03com\x00\x00\x01\x00\x01" s.sendto(qm1, ("114.114.114.114", 53)) b, a = s.recvfrom(1000) print(f"{b=}, {a=}") l = [x for x in b] print(l) 直接获取ip比如我这里是203, 208, 43, 65, 然后设置C:\Windows\System32\drivers\etc\hosts 在最尾添加 203.208.43.65 translate.googleapis.com 添加到host裡面嗎?

gamefunc commented 3 years ago

2021/03/29: 翻译流量不能通过SO插件中转的; 测试环境下:开个PY监听TCP/UDP,点翻译都是不会有请求过来; 但是翻译是可以直连的;把.*translate.googleapis.com解析到国内即可,是北京ip的谷歌云,但不稳定; 所以可以选择设全局或者PAC; 还有一个最简单的方法是: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) qm1 = b"\x1ck\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x09translate\x0agoogleapis\x03com\x00\x00\x01\x00\x01" s.sendto(qm1, ("114.114.114.114", 53)) b, a = s.recvfrom(1000) print(f"{b=}, {a=}") l = [x for x in b] print(l) 直接获取ip比如我这里是203, 208, 43, 65, 然后设置C:\Windows\System32\drivers\etc\hosts 在最尾添加 203.208.43.65 translate.googleapis.com 添加到host裡面嗎?

把: 203.208.43.65 translate.googleapis.com 这行添加到 C:\Windows\System32\drivers\etc\hosts 文件里面, hosts文件需要管理员模式打开;

17328-wu commented 3 years ago

添加就可以了 .translate.googleapis.com ||translate.googleapis.com

在哪添加呀?订阅链接的时候?

daiaji commented 3 years ago

translate.googleapis.com 就没个反代吗?

pklpkl0pkl commented 2 years ago

修改HOST文件,本地解析translate.googleapis.com是正解,HOST文件默认有权限限制,可以使用软件设置,如“火绒-修改HOST文件”,我测试有效

JaHuck commented 2 years ago

成功了,我一直因为是我的节点问题,一直调整规则。请问这个IP是哪里获取到的。居然现在都可以ping @gamefunc

gamefunc commented 2 years ago

成功了,我一直因为是我的节点问题,一直调整规则。请问这个IP是哪里获取到的。居然现在都可以ping @gamefunc

从 114.114.114.114 获取的,.. 实际就是估计你dns设置了国外的,然后他translate.googleapi解析到国外ip,.那是被屏蔽的; 但实际 translate.googleapi有北京/上海/广东 服务器; translate数据是udp请求的

gamefunc commented 2 years ago

更新一下, chrome 100好像 translate能通过 switch omega中转了; 请求用的是socks5或者http_7231;当然无论他能不能中转,tanslate.googleapis.com的ip用114解析还是都能使用;

liuilin commented 2 years ago

添加就可以了 .translate.googleapis.com ||translate.googleapis.com

谢谢,立竿见影

csyezheng commented 2 years ago

2021/03/29: 翻译流量不能通过SO插件中转的; 测试环境下:开个PY监听TCP/UDP,点翻译都是不会有请求过来; 但是翻译是可以直连的;把.*translate.googleapis.com解析到国内即可,是北京ip的谷歌云,但不稳定; 所以可以选择设全局或者PAC;

还有一个最简单的方法是: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) qm1 = b"\x1ck\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x09translate\x0agoogleapis\x03com\x00\x00\x01\x00\x01" s.sendto(qm1, ("114.114.114.114", 53)) b, a = s.recvfrom(1000) print(f"{b=}, {a=}") l = [x for x in b] print(l) 直接获取ip比如我这里是203, 208, 43, 65, 然后设置C:\Windows\System32\drivers\etc\hosts 在最尾添加 203.208.43.65 translate.googleapis.com

用你的代码跑不了,用203.208.43.65这个IP是可行的,这里放一下我的代码供其他人参考: 使用dnspython

import dns.resolver
my_resolver = dns.resolver.Resolver()
my_resolver.nameservers = ["114.114.114.114"]
answers = my_resolver.resolve('translate.googleapis.com')
ip_list = [answer.address for answer in answers]
print(ip_list)

或者使用dnslib

import socket
from dnslib import DNSRecord
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
q = DNSRecord.question('translate.googleapis.com')
s.sendto(bytes(q.pack()), ("114.114.114.114", 53))
data, _ = s.recvfrom(1024)
d = DNSRecord.parse(data)
ip_list = [addr.rdata for addr in d.rr]
print(ip_list)

最方便的是使用nslookup命令行

$ nslookup translate.googleapis.com 8.8.8.8
$ nslookup translate.googleapis.com 114.114.114.114
gamefunc commented 2 years ago

用你的代码跑不了,用203.208.43.65这个IP是可行的,这里放一下我的代码供其他人参考: 使用

Python 3.10.7 (tags/v3.10.7:6cc6b13, Sep 5 2022, 14:08:36) [MSC v.1933 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) qm1 = b"\x1ck\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x09translate\x0agoogleapis\x03com\x00\x00\x01\x00\x01" s.sendto(qm1, ("114.114.114.114", 53)) 42 b, a = s.recvfrom(1000) print(f"{b=}, {a=}") b=b'\x1ck\x81\x80\x00\x01\x00\x01\x00\x00\x00\x00\ttranslate\ngoogleapis\x03com\x00\x00\x01\x00\x01\xc0\x0c\x00\x01\x00\x01\x00\x00\x00\xc9\x00\x04\xac\xd9\xa0j', a=('114.114.114.114', 53) l = [x for x in b] print(l) [28, 107, 129, 128, 0, 1, 0, 1, 0, 0, 0, 0, 9, 116, 114, 97, 110, 115, 108, 97, 116, 101, 10, 103, 111, 111, 103, 108, 101, 97, 112, 105, 115, 3, 99, 111, 109, 0, 0, 1, 0, 1, 192, 12, 0, 1, 0, 1, 0, 0, 0, 201, 0, 4, 172, 217, 160, 106]

这里没问题得到 172.217.160.106这个ip.看了看现在得到是TW的,这个IP用不了

wenxiao707 commented 2 years ago

7年过去了,解决方法还是很不优雅🤣

E1nzbern commented 2 years ago

泪目,太折腾了,看来还是用别的翻译插件更省事一点

JumpStatus commented 2 years ago

添加就可以了 .translate.googleapis.com ||translate.googleapis.com @codingcn 可用,但是为什么需要加.translate,只有一个||translate却不行?

gonboy commented 2 years ago

将 *.googleapis.com 添加到代理列表就可以了 switchOmega 的代理列表。

如果还是有问题,将 *.googleapis.com 添加到本地的 socks/https 的代理工具就可以了

komomon commented 2 years ago

添加就可以了 .translate.googleapis.com ||translate.googleapis.com @codingcn 可用,但是为什么需要加.translate,只有一个||translate却不行?

请问在哪里添加

lilin3 commented 2 years ago

我只用了SS,没用SO,打开pac.txt把里面关于translate.googleapis.com的两行删除后就能用了

adoin commented 2 years ago

chrome浏览器改hosts也失效了. 使用代理走翻译吧. clash配置文件里记得把翻译地址translate.googleapis.com添加进规则.

貌似dns也得换吗 我v2ray的pac加了 switchyOmega规则也加了 都没用

vvanglro commented 2 years ago

chrome浏览器改hosts也失效了. 使用代理走翻译吧. clash配置文件里记得把翻译地址translate.googleapis.com添加进规则.

貌似dns也得换吗 我v2ray的pac加了 switchyOmega规则也加了 都没用

可以把代理全局试一下. 一般代理规则没问题, 走了代理的话翻译是没问题的.

yejinson commented 2 years ago

7年了这个问题仍然没有解决,chrome干的什么奇葩事啊

Acer-bdog commented 2 years ago

chrome浏览器改主机也失效了。使用代理走翻译吧。冲突配置文件里记得把地址translate.googleapis.com添加进规则。

样子也得换吗 我v2ray的pac加了一个Omega规则也加了一个

image 照这样子把translate.googleapis.com添加进v2ray里面,然后用switchyOmega,不用在switchyOmega里加,就可以正常地用右键网页翻译了,我也是改hosts不行以后网上搜了一晚上才搞好的.

XYShaoKang commented 2 years ago

我试了下,把 translate.googleapis.com 添加到 SwitchyOmega 的规则中,然后只要在打开 Chrome 的时候开下全局代理,打开之后就可以把全局代理关掉,这样只要 Chrome 一直开着,翻译都能正常使用了。

虽然麻烦了点,但如果不想折腾全局代理的话,这样也可以凑合着用。

cssius111 commented 2 years ago

我试了下,把 translate.googleapis.com 添加到 SwitchyOmega 的规则中,然后只要在打开 Chrome 的时候开下全局代理,打开之后就可以把全局代理关掉,这样只要 Chrome 一直开着,翻译都能正常使用了。

虽然麻烦了点,但如果不想折腾全局代理的话,这样也可以凑合着用。

哥,我小白,MAC OS 能告诉我具体怎么操作嘛?就是怎么全局代理,还有加规则。

image
jingjingxyk commented 2 years ago

不用挣扎了哈。(解决办法,当然有了,而且解决办法很简单)

说解决办法之前:

先把正视以下存在的问题,好不好。比如为什么扩展不生效等等!(其实很多请求都不通过扩展的)比如这些请求地址。以及应用商店请求地址都是不通过扩展的!

在各种基础软件中嵌入谷歌服务,实际是谷歌网络霸权的一部分

## 你可以看看,只要浏览器启动,就会向如下这些地址发送数据。

 update.googleapis.com   edgedl.me.gvt1.com      optimizationguide-pa.googleapis.com     safebrowsing.googleapis.com     edgedl.me.gvt1.com      accounts.google.com       r1---sn-npoe7nes.gvt1.com       r5---sn-npoe7nsd.gvt1.com       clients2.google.com     redirector.gvt1.com content-autofill.googleapis.com

那我们先把问题展示出来,看看都请求了那些地址可好?

在浏览器启动的命令行里,添加参数

#把chromium 换成chrome即可

 chromium -enable-logging=stderr --v=1

#日志级别不一样而已

 chromium -enable-logging=stderr --v=5

参考:chromium自定义启动参数 和 启用远程调试

chromium proxy setup

搜索问题的解决方案

解决办法也很简单: (代理填写一个PAC文件即可)

# 其实就一个文件解决了

## 文件的源地址
https://github.com/jingjingxyk/ReplaceGoogleCDN/blob/dev/extension/tools/web/proxy.js

## 启动脚本
https://raw.githubusercontent.com/jingjingxyk/ReplaceGoogleCDN/dev/extension/tools/web-server.sh

proxy.pac 内容(已精简) ,端口号修改成你本地代理端口号


let proxy_domains = [
  "translate.googleapis.com",
];

function go_proxy(url, host) {
  return proxy_domains.find((currentValue, index, arr) => {
    if (host.indexOf(currentValue) !== -1) {
      return true;
    }
    return undefined;
  }, host);
}

function FindProxyForURL(url, host) {
  if (isPlainHostName(host)) {
    return "DIRECT";
  }
  if (
    isInNet(host, "192.168.0.0", "255.255.0.0") ||
    isInNet(host, "127.0.0.0", "255.0.0.0") ||
    isInNet(host, "10.0.0.0", "255.0.0.0") ||
    isInNet(host, "172.16.0.0", "255.240.0.0")
  ) {
    return "DIRECT";
  }

  if (go_proxy(url, host)) {
    return " SOCKS5 127.0.0.1:1080";
  }

  return "DIRECT";
}

解决办法

# vi web-server.sh

# 启动即可
cp -f proxy.js proxy.pac

python3 -m http.server 8000

# 使用地址
# http://localhost:8000/proxy.pac

linux ubuntu上设置PAC文件

image

jingjingxyk commented 2 years ago

mac上的设置PAC文件

截屏2022-10-23 15 54 25
XIU2 commented 2 years ago

我这边测试 translate.googleapis.com 确实是可以通过 SwitchyOmega 使其走代理。

如下图所示,在当前网页全页翻译时,F12 - NetWork 中显示的目标地址确实是本地代理(SOCKS5)。

01

02

不过我在测试过程中发现,似乎并不完全是这样,似乎该域名的请求一部分是完全不受扩展约束的,而另一部分可以。


如果我在 Hosts 中将该域名指向谷歌国外可用的 IP,此时直连是可以翻译的(毕竟该域名没有任何污染/阻断),而只有这种情况下,我才能通过扩展控制该域名走代理/直连,翻译时才能在 NetWork 里看到上面图里的网络链接信息。

即使控制了该域名走代理,但通过 Win 自带的资源监视器可以发现,依然是有部分流量走了直连(访问了 Hosts 中我指向的谷歌国外可用的 IP)。

所以初步结论是:想要该域名走代理,需要先能直连该域名? 这特么什么鬼,这不就成悖论了么,毕竟能直连为啥还要折腾其走代理,而且还只能一部分流量走代理。。。


如果我在 Hosts 中将该域名指向不可用的任意 IP,那么无论如何都无法翻译,NetWork 中也完全没有动静,似乎此时扩展无法控制该域名走代理了一样。


我看翻译时加载的静态文件,其中有几个 JS 脚本,可能是这 JS 脚本负责翻译网页的?而这 JS 脚本发出的网络请求应该是可以被扩展控制是否走代理,而 Chrome 在翻译一开始时会强制直连该域名来获取什么东西,然后才能加载这些 JS 脚本什么的,然后才能继续由该 JS 脚本负责翻译全页?


又研究了下,确实是上面说的这样,发起 POST 翻译请求的是:

https://translate.googleapis.com/element/TE_20220815_00/e/js/element/element_main.js

这个 JS 脚本文件,而这些由 JS 脚本发起的 POST 翻译请求都是可以走代理。

所以目前的问题就是,开始翻译时,在加载这几个 JS 脚本之前,Chrome 浏览器强制直连访问 translate.googleapis.com 到底在获取什么,以及是否可以解决。

jingjingxyk commented 2 years ago

proxy.pac 内容


let proxy_domains = [
  "translate.googleapis.com",
];

function go_proxy(url, host) {
  return proxy_domains.find((currentValue, index, arr) => {
    if (host.indexOf(currentValue) !== -1) {
      return true;
    }
    return undefined;
  }, host);
}

function FindProxyForURL(url, host) {
  if (isPlainHostName(host)) {
    return "DIRECT";
  }
  if (
    isInNet(host, "192.168.0.0", "255.255.0.0") ||
    isInNet(host, "127.0.0.0", "255.0.0.0") ||
    isInNet(host, "10.0.0.0", "255.0.0.0") ||
    isInNet(host, "172.16.0.0", "255.240.0.0")
  ) {
    return "DIRECT";
  }

  if (go_proxy(url, host)) {
    return " SOCKS5 127.0.0.1:1080";
  }

  return "DIRECT";
}
cssius111 commented 2 years ago

这好麻烦,我还是科学上网吧

jingjingxyk commented 2 years ago

把chromium 换成chrome即可 命令行里启动chrome

jingjingxyk commented 2 years ago

7年了这个问题仍然没有解决,chrome干的什么奇葩事啊

作为网络霸权的一部分,为什么要解决?解决了还怎么维持霸权?

jingjingxyk commented 2 years ago

如何找命令行启动命令

截屏2022-10-23 16 31 20

空格用引号包起来

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --flag-switches-begin --flag-switches-end -enable-logging=stderr --v=1
jingjingxyk commented 2 years ago

我这边测试 translate.googleapis.com 确实是可以通过 SwitchyOmega 使其走代理。

如下图所示,在当前网页全页翻译时,F12 - NetWork 中显示的目标地址确实是本地代理(SOCKS5)。

01

02

不过我在测试过程中发现,似乎并不完全是这样,似乎该域名的请求一部分是完全不受扩展约束的,而另一部分可以。

如果我在 Hosts 中将该域名指向谷歌国外可用的 IP,此时直连是可以翻译的(毕竟该域名没有任何污染/阻断),而只有这种情况下,我才能通过扩展控制该域名走代理/直连,翻译时才能在 NetWork 里看到上面图里的网络链接信息。

即使控制了该域名走代理,但通过 Win 自带的资源监视器可以发现,依然是有部分流量走了直连(访问了 Hosts 中我指向的谷歌国外可用的 IP)。

所以初步结论是:想要该域名走代理,需要先能直连该域名? 这特么什么鬼,这不就成悖论了么,毕竟能直连为啥还要折腾其走代理,而且还只能一部分流量走代理。。。

如果我在 Hosts 中将该域名指向不可用的任意 IP,那么无论如何都无法翻译,NetWork 中也完全没有动静,似乎此时扩展无法控制该域名走代理了一样。

我看翻译时加载的静态文件,其中有几个 JS 脚本,可能是这 JS 脚本负责翻译网页的?而这 JS 脚本发出的网络请求应该是可以被扩展控制是否走代理,而 Chrome 在翻译一开始时会强制直连该域名来获取什么东西,然后才能加载这些 JS 脚本什么的,然后才能继续由该 JS 脚本负责翻译全页?

又研究了下,确实是上面说的这样,发起 POST 翻译请求的是:

https://translate.googleapis.com/element/TE_20220815_00/e/js/element/element_main.js

这个 JS 脚本文件,而这些由 JS 脚本发起的 POST 翻译请求都是可以走代理。

所以目前的问题就是,开始翻译时,在加载这几个 JS 脚本之前,Chrome 浏览器强制直连访问 translate.googleapis.com 到底在获取什么,以及是否可以解决。

你这样看看,就知道为什么了


"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --flag-switches-begin --flag-switches-end -enable-logging=stderr --v=1
XIU2 commented 2 years ago

@jingjingxyk 奇怪,我看了下,测试了好几遍,滚动日志里没发现有额外的网络链接。。。 依旧是依次:1 个 CSS 样式文件、2 个 JS 脚本文件、2 个 PNG 图片文件、4 个 POST 请求

和 NetWork 看到的一致,这就奇了怪了,难道我前面得出的结论是错误的么,但资源监视器里看确实是 Chrome 进程直连了 Hosts 中指定的可用谷歌国外 IP,并且也走了代理。

jingjingxyk commented 2 years ago

@jingjingxyk 奇怪,我看了下,测试了好几遍,滚动日志里没发现有额外的网络链接。。。 依旧是依次:1 个 CSS 样式文件、2 个 JS 脚本文件、2 个 PNG 图片文件、4 个 POST 请求

和 NetWork 看到的一致,这就奇了怪了,难道我前面得出的结论是错误的么,但资源监视器里看确实是 Chrome 进程直连了 Hosts 中指定的可用谷歌国外 IP,并且也走了代理。

你的测试没问题哈 (你可以把浏览器完全关闭,关闭程度:后台不要有守护进程)

问题在于http2 链接,并不会立即断开,而是保持一段时间后断开 。例子: 比如nginx http2 默认 keepalive_timeout 65;

你可以用浏览器打开 chrome://net-internals/#sockets,每次测试完毕,你都把所有激活连接都断开(close ide sockets),你再测试就知道了

image

Scribing commented 2 years ago

搞定 chrome 右键翻译的一种解决思路

docker 部署,RAM 50MB 简单说就是重定向转发到SOCKS,避免使用全局模式 可选优化: nginx 开启 ssl_preread 能用 $ssl_preread_server_name 进行 map 自动选择 socat 的端口

jingjingxyk commented 2 years ago

搞定 chrome 右键翻译的一种解决思路

* 建立本地服务 dnsmasq nginx socat

* dnsmasq 设置: address=/translate.googleapis.com/[nginx-ip]

* nginx 设置: stream{server{listen:443;proxy_pass [socat-ip]:[socat-port];}}

* socat 命令:  socat TCP-LISTEN:[port],fork SOCKS4a:[SOCKS-ip]:translate.googleapis.com:443,socksport=[SOCKS-port]

* 设备的dns改为[dnsmasq-ip]

docker 部署,RAM 50MB 简单说就是重定向转发到SOCKS,避免使用全局模式 可选优化: nginx 开启 ssl_preread 能用 $ssl_preread_server_name 进行 map 自动选择 socat 的端口

你说的这些方法都可以哈,而且我都尝过了。每个功能都用,依据不同场景,变换使用方式

试来试去,最合适的还就是PAC模式了,最简单了,每次变更只需要修改 PAC 文件就行。

# 浏览器使用pac代理 
chromium  --proxy-pac-url="http://localhost:8000/proxy.pac"

# 浏览器使用http代理
chromium  --proxy-server="http=127.0.0.1:1087;https=127.0.0.1:1087"

# 浏览器使用socks5代理
chromium --proxy-server="socks5://127.0.0.1:1080" --host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE 127.0.0.1"
jingjingxyk commented 2 years ago

这好麻烦,我还是科学上网吧

分不清 VPN 和PROXY的区别就很尴尬了! 引申一下,比如(透明代理、匿名代理、高度匿名代理、代理中继) 是不是又不认识了!

还有洋葱路由(使用了P2P技术,更多的可能是美军和电信运营商合作直接提供P4P,毕竟它是网管),客户节点既是代理节点,又是代理中继节点,隶属美军(美军是网管,鼓吹去中心化本质是伪命题,网管才是中心,急眼了网管拔网线)

隧道+代理功能柔和在一起以及功能交叉使用,是不是更不认识了!

我们是不是应该加强学习能力!

  1. 代理(Proxy)和VPN的区别
  2. Proxy_Auto-Configuration_PAC_file
  3. 觉得气不过,受制与人,那么就自己修改chromium浏览器源码
  4. 用chromium源码打造自己的chromium浏览器,【普通个人用PC编译4核16GB,编译需要11个小时左右】

比如写一个扩展,当真正去写的时候,才发现,原来pac如此简单

要是没有墙,我们的互联网真就成发达国家的网络经济殖民地 《环球时报》丨为什么建墙?用翻墙VPN软件上外网违法吗?

Ala-Tay commented 2 years ago

我是用Clash+SwitchyOmega代理的,我发现SwitchyOmega切到代理模式也不能使用网页翻译功能。这时候我打开了Clash的全局代理,就可以用网页翻译了,而且再把全局代理关了也依然生效。

另外大概是在两周前,我参考的是这个帖子:

jingjingxyk commented 2 years ago

我是用Clash+SwitchyOmega代理的,我发现SwitchyOmega切到代理模式也不能使用网页翻译功能。这时候我打开了Clash的全局代理,就可以用网页翻译了,而且再把全局代理关了也依然生效。

另外大概是在两周前,我参考的是这个帖子:

“打开了Clash的全局代理,就可以用网页翻译了,而且再把全局代理关了也依然生效” 这个是有前提的。

前提是:你的浏览器没有完全关闭。一旦浏览器关闭,再次打开是不行的。亲可以再次测试验证。

关于这个问题网友已经有很准确描述了:https://v2ex.com/t/889119

gamefunc commented 2 years ago

现在114那里解析出的不是大陆ip了,我试了好几个大陆dns全部都解析不出大陆ip了。然后旧那些大陆google翻译服务器ip全挂了。所以现在基本是要有右键翻译只能全局

adoin commented 2 years ago

应该是有个翻译api的前置api,因为那个地址大家都不知道,没有办法获取,导致即使翻译的api上了梯子也不行

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2022年10月25日(星期二) 下午2:48 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [FelisCatus/SwitchyOmega] chrome自带的翻译工具无法使用代理 (#264)

现在114那里解析出的不是大陆ip了,我试了好几个大陆dns全部都解析不出大陆ip了。然后旧那些大陆google翻译服务器ip全挂了。所以现在基本是要有右键翻译只能全局

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

adoin commented 2 years ago

龟龟,还得按nginx啊

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2022年10月23日(星期天) 晚上9:21 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [FelisCatus/SwitchyOmega] chrome自带的翻译工具无法使用代理 (#264)

搞定 chrome 右键翻译的一种解决思路

建立本地服务 dnsmasq nginx socat

dnsmasq 设置: address=/translate.googleapis.com/[nginx-ip]

nginx 设置: stream{server{listen:443;proxy_pass [socat-ip]:[socat-port];}}

socat 命令: socat TCP-LISTEN:[port],fork SOCKS4a:[SOCKS-ip]:translate.googleapis.com:443,socksport=[SOCKS-port]

设备的dns改为[dnsmasq-ip]

docker 部署,RAM 50MB 简单说就是重定向转发到SOCKS,避免使用全局模式 可选优化: nginx 开启 ssl_preread 能用 $ssl_preread_server_name 进行 map 自动选择 socat 的端口

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

jan-bar commented 2 years ago

我来说个骚操作吧,你们用的工具应该有TCP转发功能吧,例如某软件可以配置 如下规则

{
    "protocol": "tunnel",
    "local_address": "127.0.0.1",
    "local_port": 443,
    "forward_address": "translate.googleapis.com",
    "forward_port": 443,
    "mode": "tcp_only"
}

然后host里面配置如下,然后就可以享受翻译的快乐。

127.0.0.1  translate.google.com
127.0.0.1  translate.googleapis.com
adoin commented 1 year ago

V2rayN怎么设置啊

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2022年11月2日(星期三) 晚上9:19 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [FelisCatus/SwitchyOmega] chrome自带的翻译工具无法使用代理 (#264)

我来说个骚操作吧,你们用的工具应该有TCP转发功能吧,例如某软件可以配置 如下规则 { "protocol": "tunnel", "local_address": "127.0.0.1", "local_port": 443, "forward_address": "translate.googleapis.com", "forward_port": 443, "mode": "tcp_only" }

然后host里面配置如下,然后就可以享受翻译的快乐。 127.0.0.1 translate.google.com 127.0.0.1 translate.googleapis.com

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

jan-bar commented 1 year ago

@adoin 我没用过这个,刚才下载了看了下,貌似只提供socks协议的代理,不支持tcp转发吧。我那个方法是需要tcp转发功能。

adoin commented 1 year ago

嘶。你用的啥?ssr?

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2022年11月9日(星期三) 下午2:59 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [FelisCatus/SwitchyOmega] chrome自带的翻译工具无法使用代理 (#264)

@adoin 我没用过这个,刚才下载了看了下,貌似只提供socks协议的代理,不支持tcp转发吧。我那个方法是需要tcp转发功能。

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

jan-bar commented 1 year ago

@adoin 自己写代码弄得,主要参考下面两个项目,这两个项目都支持tcp转发。用别人的不放心,还容易被识别特征,不过这两个项目都支持SIP003插件,也可以写个插件混淆数据屏蔽特征,这个简单些。

https://github.com/shadowsocks/go-shadowsocks2

https://github.com/shadowsocks/shadowsocks-rust

adoin commented 1 year ago

嘶、、、关键为啥直接加代理不行 全局可以呢。。。

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2022年11月9日(星期三) 下午3:13 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [FelisCatus/SwitchyOmega] chrome自带的翻译工具无法使用代理 (#264)

@adoin 自己写代码弄得,主要参考下面两个项目,这两个项目都支持tcp转发。用别人的不放心,还容易被识别特征。

https://github.com/shadowsocks/go-shadowsocks2

https://github.com/shadowsocks/shadowsocks-rust

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

adoin commented 1 year ago

终于搞定了,用这个工具分析ip 改hosthttps://github.com/Ponderfly/GoogleTranslateIpCheck

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2022年11月9日(星期三) 下午3:13 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [FelisCatus/SwitchyOmega] chrome自带的翻译工具无法使用代理 (#264)

@adoin 自己写代码弄得,主要参考下面两个项目,这两个项目都支持tcp转发。用别人的不放心,还容易被识别特征。

https://github.com/shadowsocks/go-shadowsocks2

https://github.com/shadowsocks/shadowsocks-rust

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

jan-bar commented 1 year ago

@adoin 全局是在电脑上虚拟了一张网卡,所有流量都走这张网卡,当然能满足各种需求了,不过可能让访问国内的网站走代理,所以我不喜欢。直接加代理不行,上面也提到过了,是Chrome浏览器问题,这个插件没有办法让浏览器的这个翻译请求走代理。你这个分析ip工具只是找一个可访问IP,我估计后续这些ip会被封。我之前也是用的网上找的ip,但是后面就不行了,所以不是个长久方案。