#linux #shell #proxy #shadowsocks

在 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 带上端口就可以使用你的代理服务。并不推荐使用这种方式共享你的代理服务,如需要共享可以通过安装客户端来实现多端共享。

Author Mo 最后更新: 2018-12-09 00:03:29