自架服务器 HTTP 透明代理并应用给 Wordpress 以解决网络连接缓慢问题

Wordpress 的插件生态大多是海外用户建起来的,在使用与云服务有关的插件的时候基本都会遇到国内服务器与海外云服务连接不通畅的问题。

其实 Wordpress 本身支持使用 HTTP 透明代理访问的,因此我们可以在本地架设 HTTP 透明代理提供给 Wordpress 使用以解决此类难题。

摘要结束,正文开始!

免责声明:以下内容均来自于网络,本站不提供资源分发服务。
您不得使用下面所提及的工具和技术用于非法用途。

Ghost_chu's Blog 使用的是 ShadowSocksR + Privoxy 解决方案,将 ShadowSocksR 挂载到本地服务器并创建 HTTP 代理给 Wordpress 使用。

部署 ShadowSocksR 客户端

服务器环境为 Ubuntu 20.04.3 LTS。

我使用的是 ShadowSocksR 的一键安装脚本:

执行命令

git clone https://github.com/ZoeyWoohoo/shadowsocksr && cd shadowsocksr

为了操作简单,将两个文件 runssrstopssr 挪到 /usr/local/bin 里,并授予可执行权限。

sudo chmod 755 runssr
sudo chmod 755 stopssr
sudo mv runssr stopssr /usr/local/bin 

将 ShadowSocksR 安装到 /opt 目录

sudo mv shadowsocksr/ /opt/
source /etc/profile

编辑 ShadowSocksR 配置文件,填入你的服务器的信息

vim /opt/shadowsocksr/config.json

启动 ShadowSocksR

runssr

测试代理可用性

curl -x socks5h://localhost:1080 https://www.google.com/

可选的,如果你不喜欢 runssr 这种操作,可以将其安装为系统服务

sudo vim /etc/systemd/system/shadowsocksr.service

输入以下内容

[Unit]
Description=ShadowSocksR
[Service]
Type=simple
ExecStart=python /opt/shadowsocksr/shadowsocks/local.py -c /opt/shadowsocksr/config.json
[Install]
WantedBy=multi-user.target

保存,注册服务

systemctl daemon-reload
systemctl start shadowsocksr

查看服务是否运行正常

systemctl status shadowsocksr

如果一切正常,输出应该像下面的示例:

root@VM-24-3-ubuntu:~# systemctl status shadowsocksr
● shadowsocksr.service - ShadowSocksR
     Loaded: loaded (/etc/systemd/system/shadowsocksr.service; disabled; vendor preset: enabled)
     Active: active (running) since Tue 2022-01-04 18:35:59 CST; 1min 19s ago
   Main PID: 3242329 (python)
      Tasks: 1 (limit: 4608)
     Memory: 9.1M
     CGroup: /system.slice/shadowsocksr.service
             └─3242329 /usr/bin/python /opt/shadowsocksr/shadowsocks/local.py -c /opt/shadowsocksr/config.json

Jan 04 18:35:59 VM-24-3-ubuntu.localdomain systemd[1]: Started ShadowSocksR.
Jan 04 18:35:59 VM-24-3-ubuntu.localdomain python[3242329]: 2022-01-04 18:35:59 INFO     util.py:85 loading libsodium from libsodium.so.23
Jan 04 18:35:59 VM-24-3-ubuntu.localdomain python[3242329]: 2022-01-04 18:35:59 INFO     local.py:49 local start with protocol[auth_aes128_md5] password [b'password_masked']>
Jan 04 18:35:59 VM-24-3-ubuntu.localdomain python[3242329]: 2022-01-04 18:35:59 INFO     local.py:53 starting local at 127.0.0.1:1080
Jan 04 18:35:59 VM-24-3-ubuntu.localdomain python[3242329]: 2022-01-04 18:35:59 INFO     asyncdns.py:324 dns server: [('127.0.0.53', 53)]
Jan 04 18:36:21 VM-24-3-ubuntu.localdomain python[3242329]: 2022-01-04 18:36:21 INFO     util.py:85 loading libcrypto from libcrypto.so.1.1

最后设置开机自启动

systemctl enable shadowsocksr

Socks5 -> HTTP Proxy

上面我们提到,Wordpress 支持 HTTP 代理,但并不支持 Socks5 代理。

因此我们需要将其转换为 HTTP 代理。

在本文中,我们使用 Privoxy 将其转换为 HTTP 代理并使用 GFWList 规则。

安装 Privoxy

Privoxy 在 Ubuntu 的默认安装源就存在,直接使用 apt 命令安装

sudo apt-get install privoxy
sudo systemctl start privoxy
sudo systemctl enable privoxy

生成 GFWList 文件

使用 gfwlist2privoxy 项目,创建 GFWList 文件。

无脑执行命令

curl -4sSkLO https://raw.github.com/zfl9/gfwlist2privoxy/master/gfwlist2privoxy
bash gfwlist2privoxy 127.0.0.1:1080
mv -f gfwlist.action /etc/privoxy/
echo 'actionsfile gfwlist.action' >>/etc/privoxy/config
systemctl restart privoxy.service

现在,Privoxy 就处于 PAC 模式,只代理 GFWList 中的网站了。

如果你需要自行添加其他网站,你可以编辑 /etc/privoxy/gfwlist/action 这个文件。

设置 Wordpress 的代理

打开 Wordpress 的 config.php 找个看着顺眼的位置插入两行代码:

define('WP_PROXY_HOST', '127.0.0.1');
define('WP_PROXY_PORT', '8118');

保存退出即可。

现在,诸如 Site Kit 等工具就都可以使用了
除特殊说明以外,本站原创内容采用 知识共享 署名-非商业性使用 4.0 许可。转载时请注明来源,以及原文链接
暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
呼呼
派蒙
巴巴托斯
上一篇
下一篇