Cent OS 7 服务器配置 Proxy
架构图⌗
首先需要在本地起一个 Shadowsocks Local 的服务,用来将本地的 Socks5 流量转发到能访问 Google Server 的节点上,然后在通过 Privoxy 将本地的 8118 端口的 HTTP 和 HTTPS 请求代理到本地的 Shadowsocks Local 1080 端口上(如果项目支持 Socks5 代理,那么可以跳过这一步)。
安装 Shadowsocks-libev⌗
$ cd /etc/yum.repos.d/
$ wget https://copr.fedoraproject.org/coprs/librehat/shadowsocks/repo/epel-7/librehat-shadowsocks-epel-7.repo
$ yum update
$ yum install shadowsocks-libev
配置 Shadowsocks⌗
$ vim /etc/shadowsocks-libev/config.json
{
"server":"服务器地址",
"server_port":38372,
"local_port":1080,
"local_address":"127.0.0.1",
"password":"xxxxxxxxxxx",
"timeout":60,
"method":"aes-256-cfb"
}
- server: SS 服务器地址或域名
- server_port: SS 服务器端口
- local_address: 本地 Socks5 服务监听地址
- local_port: 本地 Socks5 服务监听端口
- password: 连接远端 SS 服务器的密码
- method: 加密方式
启动服务⌗
$ sudo systemctl enable shadowsocks-libev #开机自启动
$ sudo systemctl start shadowsocks-libev
测试连接是否正常⌗
$ curl -x socks5h://localhost:1080 ip.sb
ip.sb 是用于获取当前公网 IP 地址的,如果正确返回了代理节点的 IP 则说明服务正常运行。
安装 Privoxy⌗
Privoxy 主要功能是将本地的 HTTP 流量转发到 Socks5 服务的端口上,比如 PHP 项目要访问 Google API 那么可以使用 HTTP 代理,如果无需 HTTP 或 HTTPS 代理的可以忽略后面的内容。
$ sudo yum install privoxy
修改配置文件⌗
# 取消注释的 forward-socks5t 行,修改为如下内容(后面要有 "."):
forward-socks5t / 127.0.0.1:1080 .
# 取消如下行的注释,设置本地 IP 不转发
forward 192.168.*.*/ .
forward 10.*.*.*/ .
forward 127.*.*.*/ .
forward localhost/ .
启动服务⌗
$ sudo systemctl enable privoxy #开机自启动
$ sudo systemctl start privoxy #启动服务
$ sudo systemctl status privoxy #查看服务状态
如果无法启动的话可能是 privoxy.service
这个文件有问题,修改 /lib/systemd/system/privoxy.service
这个单元文件,修改内容如下:
[Unit]
Description=Privoxy Web Proxy With Advanced Filtering Capabilities
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
PIDFile=/run/privoxy.pid
ExecStart=/usr/sbin/privoxy --no-daemon --pidfile /run/privoxy.pid --user privoxy /etc/privoxy/config
[Install]
WantedBy=multi-user.target
Type 默认是 forking
,这里要改为 simple,并且在 ExecStart 启动命令中加入 --no-daemon
参数,这样 Systemd 就能够获取到 privoxy 进程的控制权。
测试⌗
$ export http_proxy=http://127.0.0.1:8118
$ export https_proxy=http://127.0.0.1:8118
$ curl ip.sb #此时就无需再配置代理了,因为上述命令已经为当前会话配置了全局代理
如果要永久设置代理,可以编辑下面几个文件中的一个来实现:
- /etc/profile
- ~/.bashrc
- ~/.zshrc
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
完成后执行如下命令使环境变量生效:
$ source FILE #FILE 你编辑环境变量文件
这样就可以愉快的开发基于 Google 登录的项目了。
I hope this is helpful, Happy hacking…