1. 安装编译环境

Ubuntu在默认情况下没有提供C/C++的编译环境,因此需要手动安装。如果单独安装gcc以及g++比较麻烦,为了方便,我们直接安装Ubuntu提供的build-essential软件包,下面是命令:

sudo apt-get install build-essential

2. 安装libsodium

Shadowsocks需要libsodium这个包才能安装成功,所以我们输入下面的命令进行安装:

sudo wget https://github.com/jedisct1/libsodium/releases/download/1.0.16/libsodium-1.0.16.tar.gz
tar xf libsodium-1.0.16.tar.gz
cd libsodium-1.0.16/
sudo ./configure
sudo make -j3 && sudo make install

这一步其实就是进入libsodium这个包的位置,然后解压,再进入解压后的路径,编译一下就可以了。

3. 安装Shadowsocks-libev

我们先看一下Shadowsocks-libev官方的介绍--Shadowsocks-libev,里面介绍到了各种版本的Linux下的安装方法,我这里用的是Ubuntu 16.04,按照官方的介绍:

For Ubuntu 14.04 and 16.04 users, please install from PPA:

sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev -y
sudo apt-get update
sudo apt install shadowsocks-libev

这样就可以安装成功了。

4. 编写json文件

下面我们创建一个服务器配置文件,命名为shadowsocks.json,里面内容的格式为:

{
"server":"服务器 IP 或是域名",
"server_port":端口号,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"密码",
"timeout":300,
"method":"加密方式 (chacha20-ietf-poly1305 / aes-256-cfb)",
"fast_open": false
}

你一定要记住这个json文件在哪个位置,比如我就放在了/home/xxx/shadowsocks文件夹下面。

5. 终端运行shadowsocks

接下来我们就可以在终端运行shadowsocks了,命令是:

ss-local -c /home/xxx/shadowsocks/shadowsocks.json

启动shawdowsocks服务后,发现并不能FQ上网,这是因为shawdowsocks是socks 5代理,需要客户端配合才能FQ。

为了让整个系统都走shawdowsocks通道,需要配置全局代理,可以通过polipo实现。

6.安装polipo:

sudo apt-get install polipo
接着修改polipo的配置文件/etc/polipo/config

logSyslog = true
logFile = /var/log/polipo/polipo.log

proxyAddress = "0.0.0.0"

socksParentProxy = "127.0.0.1:1080"
socksProxyType = socks5

chunkHighMark = 50331648
objectHighMark = 16384

serverMaxSlots = 64
serverSlots = 16
serverSlots1 = 32

重启polipo服务:

sudo /etc/init.d/polipo restart
为终端配置http代理:

export http_proxy="http://127.0.0.1:8123/"
接着测试下能否FQ:

curl www.google.com
如果有响应,则全局代理配置成功。

注意事项

服务器重启后,下面两句需要重新执行:

sudo sslocal -c shawdowsocks.json -d start
export http_proxy="http://127.0.0.1:8123/"

参考:
https://www.jianshu.com/u/e1c843b42353
https://zhuanlan.zhihu.com/p/47706985

ubuntu/deepin 下 Sha 哈 dow 哈 socks 全局配置的更多相关文章

  1. 3.Ubuntu/Deepin下安装Monaco/Menlo字体

    前段时间在一家公司实习,让IT给电脑安装了Ubuntu系统,用着挺好,但总感觉字体不太好看,网上小伙伴说Monaco字体不错,所以计划安装试试. 看了好多教程,不得不说,一些教程走下来真心是装不成功, ...

  2. Ubuntu系统下的多路径软件 DM Multipath 配置。

    Ubuntu系统下的多路径软件是操作系统自带的 DM Multipath工具.------------------------------------------------------------- ...

  3. Debian/Ubuntu/Deepin下AndroidStudio2/3打开AVD模拟器无反应

    Debian系AS无法启动模拟器 问题描述 早在半年前将开发环境从windows迁移到了Linux:当时用的是Debian系统,也是在安装完成AndroidStudio之后无法开启模拟器,也没出现什么 ...

  4. ubuntu/deepin 下下载wxpython

    1 输入apt-cache search wxpython 如果有返回信息 则输入 sudo apt-get install python-tools 2 否则 1.添加软件源地址到apt列表中.输入 ...

  5. Ubuntu/Deepin下常用软件汇总(持续更新)

    最近开始用Ubuntu了,好多软件都不是常用的了,在这边留底,以免忘记.如果没有写安装方法,则直接在软件源中可以找到 UNetbootin U盘制作工具,制作Ubuntu的安装U盘超好用 Braser ...

  6. Debain/Ubuntu/Deepin 下使用 ss

    如果你有一台 ss 的服务器,在 Debian Like 的环境下要如何***呢? 安装 ss 客户端 如果还没安装 pip 就得先安装 sudo apt-get install python-pip ...

  7. Ubuntu环境下利用ant编译nutch2.2.1 & 配置nutch2.2.1

    /×××××××××××××××××××××××××××××××××××××××××/ Author:xxx0624 HomePage:http://www.cnblogs.com/xxx0624/ ...

  8. 在Ubuntu 15下搭建V/P/N服务器pptpd安装和配置

    在Ubuntu 15下搭建VPN服务器pptpd安装和配置 在ubuntu下配置vpn的方式有很多种,其中比较常见的是pptpd,它配置简单,但是安全性不高,不过对于一般使用来说足够了,我按照程搭建了 ...

  9. [ubuntu][deepin]系统增加自定义开机启动项

    [ubuntu][deepin]系统增加自定义开机启动项 进行配置 cd /etc/init.d/ ls vim myScript nginx实例 #! /bin/sh # chkconfig: # ...

随机推荐

  1. 文件的暂存(git add)

    如果我们更改了之前已经被跟踪的main.c,然后执行git status $ git status On branch master Changes not staged for commit: (u ...

  2. conda和pip相关操作

    1.conda创建.删除.激活和退出环境 创建:conda create -n [name] python=[version] 删除:conda remove -n [name] --all 激活:s ...

  3. CentOS7中启动Chrome报错ERROR:zygote_host_impl_linux.cc

    网上查的解决了问题 1. 需要安装libexif 说明我已经安装了libexif 2. 从安全角度考虑,Chrome不应在root环境下运行,如果某些原因必须以root身份运行Chrome,可以运行下 ...

  4. Qt+mpg123+openal播放MP3流

    #ifndef PLAYSTREAM_H #define PLAYSTREAM_H #include <QObject> #include "../libMPG123/mpg12 ...

  5. vue 双向数据绑定的实现学习(一)

    前言:本系列学习笔记从以下几个点展开 什么是双向数据绑定 双向数据绑定的好处 怎么实现双向数据绑定 实现双向数据数据绑定需要哪些知识点 数据劫持 发布订阅模式 先看看我们要实现的目标是什么,如下动图: ...

  6. LeetCode 21. Merge Two Sorted Lists(c++)

    要定义两个链表 判断时依次对应每一个链表的值进行判断即可. /** * Definition for singly-linked list. * struct ListNode { * int val ...

  7. js实现多个小球碰撞

    实现思路:小球的移动,是通过改变小球的left和top值来改变,坐标分别为(x,y)当x/y值加到最大,即加到父级的宽度或者高度时,使x值或者y值减小,同理当x值或者y值减到最小时,同样的使x值或者y ...

  8. 2142: 逛超市(zznuoj)

    2142: 逛超市 时间限制: 1 Sec  内存限制: 128 MB提交: 82  解决: 43[提交] [状态] [讨论版] [命题人:admin] 题目描述 “别人总说我瓜,其实我一点也不瓜,大 ...

  9. <转>Go语言TCP Socket编程

    授权转载: Tony Bai 原文连接: https://tonybai.com/2015/11/17/tcp-programming-in-golang/ Golang的主要 设计目标之一就是面向大 ...

  10. jq 操作表单中 checkbox 全选 单选

    知识点: Note: 1: .prop() 和 .attr() 方法的区别 .prop() 针对标签既有属性 .attr() 针对自定义属性 2: $('input:checked')即为选中元素. ...