前言
最近chrome浏览器的翻译功能不能用了,并且chrome的翻译不走chrome的代理配置,要想让翻译走代理,除非用全局代理才行,限制太大。
网上有一部分人给出了修改hosts文件的方法,即让域名translate.googleapis.com指向没有被墙的ip,但是实测,这种方法很不稳定。
那我就想,能不能让translate.googleapis.com指向自己的服务器ip,让自己的服务器返回翻译内容?
我首先想到的是nginx的反向代理,但是通常我们配置的时候,都需要在nginx上配置服务端的证书。但是很显然,我们是不可能有谷歌的证书的,因此简单的反向代理方法无效。
经过网上搜索,知道了nginx有一个ssl_preread的配置,具体原理大家可以网上搜索,简单来说就是nginx获取请求域名后,不直接返回证书,而是自己去请求域名,将请求过来的证书返回。
准备
一台国外linux服务器
1. 编译安装nginx
此方法需要编译特定的模块,大家可能之前安装过,但是没有将所需的模块编译,到启动的时候是会报错的。因此建议大家重新编译安装。
1.1 下载nginx
https://nginx.org/en/download.html
选择稳定版下载并解压到linux服务器中
1.2 安装
cd nginx-1.22.1
./configure –prefix=/usr/local/nginx –with-stream –with-http_ssl_module –with-stream_ssl_preread_module
sudo make
sudo make install
2. 修改配置文件
vim /usr/local/nginx/conf/nginx.conf
在配置文件中添加如下内容:
stream {
log_format proxy
$proxy_protocol_addr $remote_addr [$time_local]
$protocol $status $bytes_sent $bytes_received
$session_time “$upstream_addr”
“$upstream_bytes_sent” “$upstream_bytes_received” “$upstream_connect_time”;
access_log logs/stream-access.log proxy;
error_log logs/stream-error.log;
open_log_file_cache off;
map $ssl_preread_server_name $backend_server {
translate.googleapis.com $ssl_preread_server_name;
}
server {
listen 443;
listen [::]:443;
ssl_preread on;
proxy_pass $backend_server:$server_port;
resolver 223.5.5.5 223.6.6.6;
resolver_timeout 5000s;
proxy_timeout 15s;
proxy_connect_timeout 15s;
proxy_next_upstream_timeout 15s;
}
}
3. 修改本机电脑的hosts文件
修改本机电脑的hosts文件,添加如下内容:
xx.xx.xx.xx translate.googleapis.com
其中xx.xx.xx.xx为你服务器的公网ip地址这样就可以了,如果不行,大家可以检查一下服务器的防火墙配置,或者服务器的ip有没有被墙
4. 进阶
这样虽然已经可以了,但是(我猜测)你的国外服务器ip会很快被封。
如果大家有梯子的话,可以使用梯子加密你本机和服务器的传输内容。方法有很多,这里给出linux(指你本机也是linux系统)的参考解决方案。
以下命令均在您本机,且必须是ubuntu系统上运行4.1. 安装6tunnel
apt install 6tunnel
4.2. 安装并配置proxychains4
apt install proxychains4
配置方法很简单,修改/etc/proxychains.conf文件,将原本的最后一行注释,并在最后一行添加:
socks5 127.0.0.1 1080
其中1080为您梯子在本地监听的socks端口4.3. 开启转发
sudo proxychains4 -q -f /etc/proxychains.conf 6tunnel -4 443 xx.xx.xx.xx 443
其中xx.xx.xx.xx为您服务器的公网ip4.4. 修改本机电脑的hosts文件
127.0.0.1 translate.googleapis.com
将指向地址改为本机127.0.0.1即可