Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
yinxufeng opened this issue Feb 5, 2015 · 112 comments
Closed

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

yinxufeng opened this issue Feb 5, 2015 · 112 comments

Comments

@yinxufeng
Copy link

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

@FelisCatus
Copy link
Owner

之前有遇到过这类问题。我的建议打开 chrome://net-internals/#events 这个页面。保持那个页面开启,再用一下翻译功能,就知道请求了哪些URL。如果能找到 URL 的话就当然也可以添加到自动切换之类的。如果找不到,说明翻译功能不经过这套内部实现,如果是那样估计就没办法了。

@yinxufeng
Copy link
Author

在不设代理的情况,看到了一些跟translate有关的url,但是这方面信息我看不太懂,我上图帮忙看下,是否有办法
image

@yinxufeng
Copy link
Author

我用熟悉的Filddler试过了,SO切换到我自己的ss代理,这时候google,youtube都能正常打开,这时候点翻译,发现Fildder抓到了一些chrome进程的包。按道理如果走ss代理,Fiddler是不应该再抓到包的,但是有translate相关的url。这是否能说明chrome自带的翻译功能是不走SO的呢?如果这样是不是就没办法了?
image

@simonsww
Copy link

simonsww commented Feb 5, 2015

我用的360极速浏览器,可以直接走SS通道翻译网页。

@FelisCatus
Copy link
Owner

@yinxufeng 请给出 chrome://net-internals/#proxy 页面显示的代理设置。复制粘贴过来就可以。

@yinxufeng
Copy link
Author

这是使用ss代理的设置
Proxy server for everything else: socks5://127.0.0.1:1080
Bypass list:

@yinxufeng
Copy link
Author

不知道跟chrome版本是否有关, 40.0.2214.94 m (64-bit),我找个32位的试试

@yinxufeng
Copy link
Author

32位的也试过了,还是一样,必须要设置系统全局代理才能翻译
Effective proxy settings

Proxy server for everything else: socks5://127.0.0.1:1080
Bypass list:

@yinxufeng
Copy link
Author

@simonsww我试了360极速浏览器最新版,也是需要我shadowsocks-csharp设置为全局系统代理,才能正常用谷歌翻译的。不知道你怎么设置的呢?

@FelisCatus
Copy link
Owner

代理设置显然是对的,也就是说这已经是 SwitchyOmega 能做到的极限了吧。
如果真的是有些浏览器(或版本)走的网络请求流程,而另一些不走,那倒是挺令人吃惊的……

所以我先关闭这个 issue 了,但大家仍然可以继续讨论的。评论功能仍然可用。

@chaoshxxu
Copy link

感谢作者的贡献。同时希望作者能把这个问题解决了。

@taocwang
Copy link

正遇到这个问题,如何解决呢

@FelisCatus
Copy link
Owner

此问题和 SO 无关,真正的问题是 Chrome 在请求翻译的时候不使用代理。

遇到此问题的各位,请到 Chromium 项目相关的 Issue 加星☆以获取最新消息。

此外, Chromium 项目维护者之一的 [email protected] 建议提供以下信息以供分析:

Otherwise, please provide information to reproduce your problems.
In addition, following information will help us to investigate your problem.

  • Any error or warning messages in Tools > JavaScript Console > Console window
  • Network log file which is generated from chrome://net-internals/#export. Please open this page in another tab before you reproduce the problem, and press 'Save to file' button after reproducing the problem.

(无责任翻译:)

  • 第一条是要求提供开发者工具中 Console (控制台) 的输出,如错误信息等。
  • 第二条大致就是像 @yinxufeng 那样,提供 chrome://net-internals/#export 的导出文件(但注意是导出文件,不是截图。Chromium项目可以上传附件的)。

@honve
Copy link

honve commented Jun 12, 2016

需用内置翻译的朋友请开启这个 chrome://flags/#v8-pac-mojo-out-of-process 改默认为已启用。

@xinggsf
Copy link

xinggsf commented Oct 13, 2016

ublock可拦截后台请求!SwitchyOmega不能代理后台请求吗?

@celeron533
Copy link
Contributor

@xinggsf
adblock, ublock可以和SO一起使用,所以应该没有改变浏览器的代理设置而是用js注入。内置的翻译工具很有可能是忽略代理的。

@louisi
Copy link

louisi commented Jul 23, 2017

有人解决了吗 ?

@celeron533
Copy link
Contributor

这是chrome自身的问题,除非chrome在源码上有变化,否则就无法解决

有人解决了吗 ?

@yinxufeng
Copy link
Author

yinxufeng commented Jul 24, 2017

已经可以了, chrome版本59.0.3071.115

@Justsoos
Copy link

Justsoos commented Feb 2, 2018

google translation of chrome 和 google chrome update 都是养尊处优,不知道天朝墙壁有多不要脸的傻冒美国人想当然的设计:
尤其是前者,更容易引起误会,已经内建在 chrome 浏览器的谷歌翻译,怎么不走我设置好的 socks5 代理?

因为重点:这两个货(在windows上)是开独立进程(线程)的,相当于独立chrome之外,都是走的系统代理,并不通过 chrome 内置 proxy 设置。

因此,给中国(和所有使用http,socks代理的)用户留下两个超恶心的大bug:
1,chrome 自带升级(三个... -> 帮助 -> 关于Google Chrome)
2,chrome 内置 google 翻译
都必须开 windows 系统代理,在SSR上就是 “全局代理”,或者你手动修改windows 的 Internet 设置。

@Justsoos
Copy link

Justsoos commented Feb 2, 2018

此问题也困扰我过,欢迎传播,如果 google 能因此修正更好。

@Justsoos
Copy link

Justsoos commented Feb 2, 2018

在 bugs.chromium.org 跟帖了,相当于请愿的回复 @FelisCatus
https://bugs.chromium.org/p/chromium/issues/detail?id=118074#c32

@Justsoos
Copy link

还是没能彻底解决这个问题,去找了资料,看完,被微软和 Google 这俩大企业恶心了半天。
只能画图来说了:

通过 chrome (需要)上网形式分三种:
1,chrome 访问 surfing webpage
2,chrome://help 内升级浏览器,实际是运行独立程序 GoogleUpdate.exe
3,chrome 内置 build-in google translate

这三个方式,在windows 10 上,还分别不完整的对应三种代理:
1,可以操纵 chrome 访问的 pac 代理,比如 switchyomega,autoproxy -> pac proxy
2,windows 系统的 WinINET 代理,也就是 -> ie proxy
3,windows 系统下 WinHTTP 代理,这个可以用 netsh winhttp show proxy 查看 -> winhttp proxy

面对如此令人头脑发昏的迷宫,我只能说,你们这些大企业一个萝卜一个坑,牛头萝卜不管马面红薯的活儿,还能拿美金过舒服日子,能也给我来一打!

2018-03-30_11-56-12

参考资料:https://blogs.msdn.microsoft.com/ieinternals/2013/10/11/understanding-web-proxy-configuration/
ping: #476

@Justsoos
Copy link

老外回复了
https://bugs.chromium.org/p/chromium/issues/detail?id=827478#c2
各位有啥想法,赶紧抓住这个老外,诉苦!哈哈
我正在写回复。。。。

@yinxufeng
Copy link
Author

我以为这问题早已经解决了呢,我现在chrome版本 65.0.3325.181(正式版本) (64 位)
已经有很长一段时间可以用翻译了,SwitchyOmega走自动切换模式,shadowsocks也不用设全局代理

@Justsoos
Copy link

Justsoos commented Mar 31, 2018

很明显,chrome 内置的 google translate 是不走 SO 的 pac 模式的啊,否则就不会有这么多人喊不好用了。
@yinxufeng 你可能是系统里开了 winhttp 代理,而你并不知道。
你可以试一下这个命令看看:
netsh winhttp show proxy
但我测下来,以及google到的信息是,chrome很早就不支持 winhttp 代理,现在好用或不好用,非常难说,也许依赖你系统其他未知设置。

酸酸 和酸酸乳 的 “系统代理”,其实是 winINET代理,那个是写注册表的。
在这里

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer

补充一下:你说的不是 网页访问google translate吧? 我这里说的可都是 chrome内置,鼠标右键 “T” 的,和这个是两回事。

@rikkix
Copy link

rikkix commented Apr 1, 2018

Chrome 版本 65.0.3325.181(正式版本) (64 位)
也是这样……

@Scribing
Copy link

搞定 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 的端口

@jingjingxyk
Copy link

jingjingxyk commented Oct 23, 2022

搞定 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
Copy link

jingjingxyk commented Oct 23, 2022

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

分不清 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
Copy link

Ala-Tay commented Oct 25, 2022

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

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

@jingjingxyk
Copy link

jingjingxyk commented Oct 25, 2022

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

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

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

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

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

@gamefunc
Copy link

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

@adoin
Copy link

adoin commented Oct 26, 2022 via email

@adoin
Copy link

adoin commented Oct 26, 2022 via email

@jan-bar
Copy link

jan-bar commented Nov 2, 2022

我来说个骚操作吧,你们用的工具应该有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
Copy link

adoin commented Nov 9, 2022 via email

@jan-bar
Copy link

jan-bar commented Nov 9, 2022

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

@adoin
Copy link

adoin commented Nov 9, 2022 via email

@jan-bar
Copy link

jan-bar commented Nov 9, 2022

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

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

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

@adoin
Copy link

adoin commented Nov 9, 2022 via email

@adoin
Copy link

adoin commented Nov 9, 2022 via email

@jan-bar
Copy link

jan-bar commented Nov 10, 2022

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

@acrossTheGreatWall1024
Copy link

https://hcfy.app/blog/2022/09/28/ggg 改host解决了

@omaidb
Copy link

omaidb commented Jan 17, 2023

https://bugs.chromium.org/p/chromium/issues/detail?id=118074#c32

去这里请愿没用的,要去白宫网站请愿

@adoin
Copy link

adoin commented Feb 28, 2023

已经放弃,改用浏览器插件 沉浸式翻译 比谷歌翻译好用一万倍

@shadowprompt
Copy link

shadowprompt commented Mar 2, 2023 via email

@gamefunc
Copy link

gamefunc commented Mar 2, 2023

我现在处理手法比较直接, 反正主路由是x86 j1900 debian,
写个py脚本去取我外服务器解析的translate.googleapis.com ip,
之后
cmd = f"iptables -t nat -A PREROUTING "
cmd += f"--destination {google_translate_ip} "
cmd += f"-j BOOST_REDIRECT"
exec_cmd_get_stdout(cmd)
让他每15分钟查次和清理之前旧的和添加新的

@XYShaoKang
Copy link

哪个浏览器插件

On Tue, Feb 28, 2023 at 3:34 PM adoin @.> wrote: 已经放弃,改用浏览器插件 沉浸式翻译 比谷歌翻译好用一万倍 — Reply to this email directly, view it on GitHub <#264 (comment)>, or unsubscribe <github.com/notifications/unsubscribe-auth/AAO3LWGHQ2OJYCYC6YN44GLWZWTAVANCNFSM4A3QCFEQ> . You are receiving this because you are subscribed to this thread.Message ID: @.>

https://github.com/FilipePS/Traduzir-paginas-web 这个我觉得挺好用的,还能定义快捷键,方便多了

@adoin
Copy link

adoin commented Mar 2, 2023 via email

@elespec
Copy link

elespec commented Jun 29, 2023

win10 专业版 22H2 ,Chrome版本 114.0.5735.134(正式版本) (64 位)
打开系统代理即可,不需要全局系统代理;
但这个问题依然没有解决,就是内置的翻译功能走的内置的某种不被浏览器代理设置影响的某个隧道。

@qiseniguang
Copy link

qiseniguang commented Jun 30, 2023

我也是用的这种方法。

  1. 准备一个pac文件
  2. 把pac文件放到某个你喜欢的地方
  3. 利用everything开启http服务,注意地址一定要是127.0.0.1,别把自己电脑开盒了
  4. 打开系统代理,开启自动脚本模式,脚本地址填你放的位置

@TrillStones
Copy link

用火山引擎chrome插件代替,右键全文翻译。

@moll33er
Copy link

我来说个骚操作吧,你们用的工具应该有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

可以的,我这边能用,clash配置:

tunnels:
  - tcp,127.0.0.1:443,translate.googleapis.com:443,Proxy

@E1nzbern
Copy link

我也来更新一个自认为比较省心的方法吧,https://github.com/BeyondDimension/SteamTools,这个项目最近添加了加速谷歌翻译和修复chrome翻译的功能,我这里用着完全没问题,反正平时都是开机自启挂在后台加速steam之类的,不会有什么额外的操作和负担
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests