安装***

首先安装pip:

curl -LO "https://bootstrap.pypa.io/get-pip.py"
python get-pip.py

通过pip安装***:

$ pip install shadowsocks

$ vi /etc/shadowsocks.json
# 添加以下内容
{
  "server":        "123.45.67.89",    # ***服务器的IP
  "server_port":   "1234",            # ***服务器的端口
  "local_address": "127.0.0.1",       # 本机监听地址,不需要修改
  "local_port":    "5678",            # 本机监听端口,可以指定1024到65535之间的数字,和正在监听的端口不冲突即可
  "password":      "your_password",   # ***服务器的密码
  "method":        "aes-256-cfb",     # ***服务器的加密方式
  "timeout":       "300",
  "workers":       "1"
}

  

启动***:

# 以 daemon 模式启动 sslocal
sslocal -c /etc/shadowsocks.json -d start

# 确认 sslocal 已监听在预设端口
lsof -i | grep sslocal

# 开机启动
sh -c 'echo "sudo /usr/bin/sslocal -c /etc/shadowsocks.json -d start" >> /etc/rc.d/rc.local'

# 如果 rc.local 没有可执行权限就给它加上
if [ ! -x '/etc/rc.d/rc.local' ]; then
  chmod +x '/etc/rc.d/rc.local'
else
  echo 'rc.local already is executable!'
fi

  

测试***代理

***提供的代理是socks5类型,使用curl来测试代理是否生效:

$ curl --socks5 127.0.0.1:5678 http://httpbin.org/ip
{
  "origin": "123.45.67.89"       # 必须与 /etc/shadowsocks.json 中 server 字段的值相同
}

  

把socks5代理转换为http/https代理

许多命令仅支持http/https代理,不支持socks5代理,此时需要使用Privoxy把socks5代理转换为http/https代理。

安装Privoxy

# EPEL仓库已收录Privoxy
yum install -y privoxy

  

配置Privoxy

$ vi /etc/privoxy/config

# 确认下面这一行没有被注释掉
listen-address  127.0.0.1:8118
## 默认端口是8118,不需要修改

# 新增一行
forward-socks5t / 127.0.0.1:5678 .
## 端口必须与 /etc/shadowsocks.json 中 local_port 字段的值相同,
## 注意:行尾有一个英文句号(.)

  

启动Privoxy

systemctl start privoxy
ss -tnlp | grep :8118

# 开机启动
systemctl enable privoxy

  

测试Privoxy代理

$ curl --proxy https://127.0.0.1:8118 -Is https://google.com | grep -w 200
HTTP/1.1 200 Connection established

  

访问Google,返回的HTTP状态码是200,说明可以正常访问,证明https代理已经生效。

更方便的使用代理

并不是所有命令都像curl这样包含了设置代理的选项,即使有代理选项,每次执行命令都要输入也非常麻烦,其实还有更简单方便的用法。

临时启用代理

export http_proxy='127.0.0.1:8118'
export https_proxy='127.0.0.1:8118'

# 停用代理
export http_proxy=''
export https_proxy=''

  

设置shell函数快速启用代理

vi /etc/profile.d/vm-proxy.sh

  

粘贴以下内容:

function vm-proxy-on {
  export no_proxy="127.0.0.1,localhost,localaddress,.localdomain.com,tencentyun.com";
  export http_proxy='127.0.0.1:8118';
  export https_proxy=$http_proxy;
  echo 'HTTP proxy started.'
}
export -f vm-proxy-on

# 第二种声明函数的方式
vm-proxy-off() {
  unset http_proxy;
  unset https_proxy;
  echo 'HTTP proxy stopped.'
}
export -f vm-proxy-off

  

然后source文件:
chmod +x /etc/profile.d/vm-proxy.sh
source /etc/profile.d/vm-proxy.sh

  

此时就可以非常方便的启用或停用代理了:

$ vm-proxy-on
HTTP proxy started.

$ echo $https_proxy
127.0.0.1:8118

$ vm-proxy-off
HTTP proxy stopped.

  

原文出处链接:

https://liyang85.com/all-centos-7-command-line-tools-use-shadowsocks-and-privoxy-to-access-internet

使用***客户端和Privoxy让所有CentOS 7命令行工具通过代理访问互联网(转载)的更多相关文章

  1. CentOS 6 命令行下安装 VirtualBox 虚拟机步骤

    CentOS 6 命令行下安装 VirtualBox 虚拟机步骤 1. 准备工作 安装内核更新 yum install kernel-develyum update kernel*如果内核有更新,则需 ...

  2. Linux(CentOS 7)命令行模式安装VMware Tools 详解

    本篇文章主要介绍了如何在Linux(CentOS 7)命令行模式安装VMware Tools,具有一定的参考价值,感兴趣的小伙伴们可以参考一下. 本例中为在Linux(以CentOS 7为例)安装VM ...

  3. 其他综合-CentOS 7 命令行显示优化

    CentOS 7 命令行显示优化 1.实验描述 通过 CentOS 7.6 的显示优化,为实现命令行显示提供良好视觉体验. [基于此文章的环境]点我快速打开文章 2.实验环境 使用软件的版本:VMwa ...

  4. 屹今为止最好用的HTTP客户端命令行工具-接口调试神器HTTPie

    一.思考❓❔ 1.你用过哪些http客户端调试工具? Postman 不够灵活 需要打开客户端, 麻烦 学习成本高 Jmeter 臃肿 麻烦 学习成本高 curl 参数多, 记不住 不够灵活 主要在L ...

  5. CentOS 7 命令行安装TeamViewer

    由于要通过要远程登录到内网的电脑(一台笔记本),用于在紧急情况下处理服务器故障.刚开始准备使用ssh端口转发,无奈vps转发速度太慢. 后面考虑使用TeamViewer远程控制Windows桌面,但是 ...

  6. centos/redhat命令行上传下载文件

    前言:客户端上没有安装xftp,winscp等等软件,无法将服务器上需要的文件下载到本地去解析,无法将本地的安装包上传到服务器上去,这个时候命令行就可以带你翱翔一波 配置如下: 服务器上: 1.安装需 ...

  7. CentOS 7命令行安装图形界面(GNOME、KDE等)

    CentOS 7 默认是没有图形化界面的,但我们很多人在习惯了 Windows 的图形化界面之后,总是希望有一个图形化界面从而方便我们使用,这里介绍一下 CentOS7安装图形化桌面系统的方法. 一. ...

  8. 30. CentOS终端命令行显示中文乱码的解决方法

    安装CentOS的时候选择了中文,结果在终端不能显示中文,都是乱码,解决方法:修改/etc/sysconfig/i18n,内容为   代码如下: LANG="zh_CN.GB18030&qu ...

  9. CentOS 7命令行安装GNOME、KDE图形界面(成功安装验证)

    来源:cnblogs.com/Amedeo  作者:Amedeo 正文 CentOS 7 默认是没有图形化界面的,但我们很多人在习惯了 Windows 的图形化界面之后,总是希望有一个图形化界面从而方 ...

随机推荐

  1. node源码详解(四)

    本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/nodesource4 本博客同步在https://cnodejs.o ...

  2. android下xml放哪儿?

    1.用Project->Deployment,打开发布文件窗口,增加要发布的文件.然后设置文件发布的位置Remote Path,填写为assets\internal\ 2.代码 varp: st ...

  3. lucene_01_入门程序

    索引和搜索流程图: 1.绿色表示索引过程,对要搜索的原始内容进行索引构建一个索引库,索引过程包括:确定原始内容即要搜索的内容->采集文档->创建文档->分析文档->素引文档2. ...

  4. Spring MVC灵活控制返回json的值(自定义过滤字段)

    在使用spring MVC开发过程中,为了提高项目执行效率,所以在一些外键字段的实体中会注解”@ManyToOne(fetch = FetchType.LAZY)”以实现延迟加载的效果. 但是,在使用 ...

  5. 手动编译java的package问题,及演示继承的基本实现

    不用IDE,而直接用命令编译JAVA包,仔细看了下,作一个记录. 以下的URL值得收藏. http://www.aiuxian.com/article/p-2115485.html http://ww ...

  6. geos库交叉编译生成ARM平台库

    版本号信息: GEOS:geos-3.4.2.tar.bz2(http://trac.osgeo.org/geos/) CPU:ARM 编译器:arm-linux 4.2.2 1.  解压源代码包ge ...

  7. plsql developer ini

    plsql developer ini [Colors] GradientEnabled=True VerticalGradient=True DefaultGradient=True Gradien ...

  8. Linux系统下怎样配置SSH?怎样开启SSH?

    SSH作为Linux远程连接重要的方式,怎样配置安装linux系统的SSH服务.怎样开启SSH?以下来看看吧(本例为centos系统演示怎样开启SSH服务) 1.登陆linux系统,打开终端命令.输入 ...

  9. 贪吃蛇c++实现

    近期没事翻了一下曾经写的程序.真是不堪入目.曾经真是什么都不懂.只是有一个程序倒是挺有意思的,大二的时候写的一个贪吃蛇游戏.尽管程序非常难看,还有非常多漏洞.但也是这个程序让我真正開始喜欢上了编程.不 ...

  10. Mina airQQ聊天开门见山篇(一)

    Mina airQQ聊天开门见山篇(一) 近期项目可能要用到Mina,这个礼拜就在看这个框架,所以想写个小小的聊天的demo来巩固下,打算用几篇博客来记录下相关的知识 client用的是Flex Ai ...