发布时间: 2018-12-06 23:20:10
最后更新: 2018-12-09 00:03:29
在 linux 服务器命令行中使用代理服务
简介
本文可满足需要在命令行中直接访问国外地址,或需要在程序内使用代理服务的朋友。也可方便共享给他人使用。
主要详细讲解 Shadowsocks 及 Privoxy 的安装及配置。
背景
最近在装 k8s 集群,需要拉取 google 的镜像,主机在国内无法连接到 google 服务器,只能借助自己海外服务器作中转。
出于学习的目的,代理服务器在国内已经形成一个产业,无论自建还是购买第三方服务都可以轻松实现。如果你还没有自己的代理服务器,又想自建的话,可以考虑买一台国外的服务器。
所需环境与软件
- CentOS 7 (其它系统安装对应的软件包就可以了,操作一样)
- Shadowsocks
- Privoxy
开始
在 Linux 上安装 Shadowsocks
$ yum -y install python-pip
$ pip install shadowsocks
配置 Shadowsocks 客户端
$ mkdir /etc/shadowsocks
$ vim /etc/shadowsocks/shadowsocks.json
所需要填写的配置项:
{
"server":"1.2.3.4",
"server_port":8910,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"you-password",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false,
"workers": 1
}
- server : 你代理服务器的地址
- server_port : 你代理服务器的端口
- local_address : 绑定在本地的哪个 IP 上,默认 127.0.0.1 就可以,如果需要给其它人访问,也可以绑定在 0.0.0.0
- local_port : 在你本地启动代理服务的端
- password : 连接你代理服务器所需的密码
- method : 数据传输加密类型,需与代理服务器配置一致
配置自动启动
$ vim /etc/systemd/system/shadowsocks.service
写入如下配置信息:
[Unit]
Description=Shadowsocks
[Service]
TimeoutStartSec=0
ExecStart=/usr/bin/sslocal -c /etc/shadowsocks/shadowsocks.json
[Install]
WantedBy=multi-user.target
启动 Shadowsocks
$ systemctl enable shadowsocks
$ systemctl start shadowsocks
- 第一条命令 : 启用 shadowsocks 自启动, 就是之前你配置的
- 第二条命令 : 启动 shadowsocks
查看 Shadowsocks 是否已经启动, 状态是否是 active
$ systemctl status shadowsocks
测试本地代理服务
$ curl --socks5 127.0.0.1:1080 https://ip.cn
当前 IP: xxx.xxx.xxx.xxx 来自: 新加坡
- 你此命令显示的 IP 地址为你代理服务器的地址时,说明你已经配置完成了。不过如果这么在命令行中用起来还是有点不方便。
至此,如果你的所有操作都成功的话,你已经在本地启动了 Shadowsocks 客户端了,并且已经成功连接上你的代理服务器,只需要一步,你就可以在你本地使用代理服务器作中转,访问到你所需的资源了。
那我们来结束这一步。
最后一步
安装 Privoxy
$ yum -y install privoxy
配置 Privoxy
$ vim /etc/privoxy/config
# 检查以下配置是否存在,不存在则加上,存在则忽略,主要第二条会不存在
# 默认端口8118,可以改为你想要的端口
listen-address 127.0.0.1:8118
# 转发到本地端口,注意最后有个点
forward-socks5t / 127.0.0.1:1080 .
启动 Privoxy
$ systemctl enable privoxy
$ systemctl start privoxy
$ systemctl status privoxy
- 和之前的步骤类似,先安装,再启用,启动,最后检测启动状态
在 Shell 中使用代理服务
# 可以是任何你启动时会加载的配置,如 ~/.zshrc ~/.bash_profile 不清楚可以直接使用下面的公位置
$ vim /etc/profile
在文件最后加入如下配置
PROXY_HOST=127.0.0.1
export all_proxy=http://$PROXY_HOST:8118
export ftp_proxy=http://$PROXY_HOST:8118
export http_proxy=http://$PROXY_HOST:8118
export https_proxy=http://$PROXY_HOST:8118
export no_proxy=localhost,127.0.0.1
加载配置,Shell 启用代理
$ source /etc/profile
Shell 禁用代理
$ unset all_proxy; unset ftp_proxy; unset http_proxy; unset https_proxy; unset no_proxy;
测试代理是否生效
$ curl google.com
至此你已经可以在你的 Shell 中使用代理服务,如需在其它服务中使用代理,只需要使用 127.0.0.1:8118 进行配置即可,如果你绑定的 IP 为 0.0.0.0 那么其它用户只要可以访问你的主机,就可以通过你的外网 IP 带上端口就可以使用你的代理服务。并不推荐使用这种方式共享你的代理服务,如需要共享可以通过安装客户端来实现多端共享。