Linux 通过 pip 安装使用 Shadowsocks - CentOS 7 (06)

Pip是安装Python包的工具,提供了安装、列举已安装包、升级以及卸载包的功能。Pip 是对easy_install的取代,提供了和easy_install相同的查找包的功能,因此可以使用easy_install安装的包也同样可以使用pip进行安装。目前有很多Python程序都是可以直接通过Pip来一键安装了,比如众所周知的Django、Markdown、Shadowsocks等。

简要介绍一下Pip的用法(以安装Shadowsocks举例):
1. 安装package

pip install shadowsocks
2. 列出已安装的packages
pip freeze
3. 安装特定版本的package
pip install shadowsocks=1.3.3′
pip install shadowsocks>1.0,<1.3.3′
4. 升级已安装的package到最新版本
pip install -U shadowsocks
5. 卸载已安装的package
pip uninstall shadowsocks
6. 查询已安装的package
pip search “shadowsocks”

安装Pip之前必须要先安装setuptools,安装setuptools之前,必须要安装了Python,
这之间的安装过程存在依赖关系,缺一不可:

1. 检查Python版本
python –version
CentOS6.5默认安装的Python版本是2.6.6,返回值为:Python 2.6.6

2. 安装setuptools
yum install -y python-setuptools
安装完毕后,easy_install命令就可以使用了。

3. 安装pip
easy_install pip
通过easy_install安装pip是最为简单的方法。pip默认安装到/usr/bin目录下。

4. 安装shadowsocks
pip install shadowsocks

Shadowsocks的配置和使用

1. 创建Shadowsocks的配置文件:
CentOS下通过vim创建该配置,运行命令:
vi /etc/shadowsocks.json

内容如下:

{
    "server":"your_server_ip",
    "server_port":8989,
    "local_address":"127.0.0.1",
    "local_port":1080,
    "password":"yourpassword",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false,
    "workers": 1
}

各字段的含义:

server:服务器 IP (IPv4/IPv6),注意这也将是服务端监听的 IP 地址
server_port:监听的服务器端口
local_address:本地监听的 IP 地址
local_port:本地端端口
password:用来加密的密码
timeout:超时时间(秒)
method:加密方法,可选择 “bf-cfb”, “aes-256-cfb”, “des-cfb”, “rc4″, 等等。
                 默认是一种不安全的加密,推荐用 “aes-256-cfb”
fast_open:true 或 false。

如果你的服务器 Linux 内核在3.7+,可以开启 fast_open 以降低延迟。开启方法:

echo 3 > /proc/sys/net/ipv4/tcp_fastopen

开启之后,将 fast_open 的配置设置为 true 即可
works:works数量,默认为 1。

2. 安装M2Crypto
默认加密方法 table 速度很快,但很不安全。推荐使用 “aes-256-cfb” 或者 “bf-cfb”。
请不要使用 “rc4″,它不安全。如果选择 “table” 之外的加密,需要安装 M2Crypto。
先安装依赖包:

yum install -y openssl-devel gcc swig python-devel autoconf libtool

安装setuptools:

wget --no-check-certificate https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
python ez_setup.py install

再通过pip安装M2Crypto:
pip install M2Crypto

3. 安装 gevent

安装 gevent可以提高 Shadowsocks 的性能。CentOS下安装gevent依赖libevent和greenlet。

a. 安装libevent:
yum install -y libevent

b. 安装greenlet:
pip install greenlet

c. 安装gevent:
pip install gevent

4. 命令行参数(服务器端启动命令)

ssserver -c /etc/shadowsocks.json

如果想在后台一直运行Shadowsocks,启动命令如下:

nohup ssserver -c /etc/shadowsocks.json > /dev/null 2>&1 &

WARNING:但以上的两种指令,在实际操作时均无法启用。
                     经查阅,可使用以下这一句。

sslocal -c /etc/shadowsocks.json

备注:关于nohup,是可以让程序在后台运行的命令。

同时可以用命令行参数覆盖 /etc/shadowsocks.json 里的设置:
sslocal -s 服务器地址 -p 服务器端口 -l 本地端端口 -k 密码 -m 加密方法
ssserver -p 服务器端口 -k 密码 -m 加密方法

备注:sslocal是客户端程序;ssserver是服务端程序。

5. 防火墙设置(如有)
编辑防火墙配置文件/etc/sysconfig/iptables,将服务器端口(server_port)放行。
新增一条防火墙规则:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8989 -j ACCEPT

重启防火墙iptables:
service iptables restart

至此,服务器端的 Shadowsocks 安装和配置完毕。

6. 客户端配置
Windows客户端有图形界面也有命令行,我们这里以配置图形化界面的shadowsocks-csharp为例说明。
下载客户端shadowsocks-csharp(最新版1.1.2):
https://shadowsocks-csharp.googlecode.com/files/shadowsocks-csharp-1.1.2.zip

解压至任意目录下,双击shadowsocks-csharp.exe运行程序,各参数选项填入:

Server IP:   服务器 IP (IPv4/IPv6),填入在服务器端设置的IP地址(server)
Server Port: 服务器端口,填入在服务器端设置的端口号(server_port)
Password:    用来加密的密码,填入在服务器端设置的加密密码(password)
Proxy Port:  本地端代理的端口,填入在服务器端设置的本地端端口(local_port)
Encryptor:   加密方法,填入在服务器端设置的加密方法(method)

注意:本地客户端填写的参数一定要与服务器端设置的一致才可以。

另有一款客户端 shadowsocks-gui (推荐)可供选择,下载地址:
https://sourceforge.net/projects/shadowsocksgui/files/dist/

下面就可以利用浏览器插件无障碍浏览国外网站了。插件的设置过程这里略过。
AutoProxy(用于Firefox)、Proxy SwitchySharp(用于Chrome)

参考链接:
http://shadowsocks.org/en/download/servers.html(翻)
https://pypi.python.org/pypi/shadowsocks

Centos7下安装pip的更多相关文章

  1. centos7下安装pip以及mysql等软件

    1.安装pip 安装失败了的提示: No package pip available.Error: Nothing to do 解决方法: 需要先安装扩展源EPEL. EPEL(http://fedo ...

  2. CentOS7下安装pip和pip3

    1.首先检查linux有没有安装python-pip包,直接执行 yum install python-pip 2.没有python-pip包就执行命令 yum -y install epel-rel ...

  3. Docker学习笔记3:CentOS7下安装Docker-Compose

    Docker-Compose是一个部署多个容器的简单但是非常必要的工具. 安装Docker-Compose之前,请先安装 python-pip,请参考我的另一篇博文CentOS7下安装python-p ...

  4. centos7下安装python3.7

    记录在2018年最后一个工作日: Linux环境坑爹得要死,环境本身有python2和python3.7两个版本:安装django2的时候,发现默认是python2:把python软连接到python ...

  5. 【python3】——centos7下安装

    centos7下安装python3总步骤分三步: 一.依赖解决: 1.安装依赖包: yum install zlib-devel bzip2-devel openssl-devel ncurses-d ...

  6. Centos7下安装Seafile实现私有网盘

    Seafile是一个开源.专业.可靠的云存储平台:解决文件集中存储.共享和跨平台访问等问题,由北京海文互知网络有限公司开发,发布于2012年10月:除了一般网盘所提供的云存储以及共享功能外,Seafi ...

  7. CentOS7 下 安装 supervisor以及使用

    CentOS7 下 安装 supervisor 以及使用 手动安装 [注] linux环境必须安装 python 1.获取supervisor包:[https://pypi.python.org/py ...

  8. Linux CentOs7 下安装 redis

    Linux CentOs7 下安装 redis 请将以下命令放入linux命令行中运行 如果安装过程前没有安装GCC请先安装  命令如下 $ yum install gcc-c++ $ wget ht ...

  9. Centos7下安装配置Redsocks

    Redsocks是一个开源的网络程序,代码依赖开源的libevent网络库.Redsocks允许你将所有TCP连接重定向到SOCKS或HTTPS代理,比如Shadowsocks(Centos7下安装配 ...

随机推荐

  1. 【CSS】display: inline-block,内联元素

    什么是内联元素? <CSS权威指南>中文字显示:任何不是块级元素的可见元素都是内联元素.其表现的特性是“行布局”形式,这里的“行布局”的意思就是说其表现形式始终以行进行显示.比如,我们设定 ...

  2. SQL中判断字符串中包含字符的方法

    通过2个函数CHARINDEX和PATINDEX以及通配符的灵活使用 函数:CHARINDEX和PATINDEX CHARINDEX:查某字符(串)是否包含在其他字符串中,返回字符串中指定表达式的起始 ...

  3. oracle 学习之DG的搭建

    1.配置过程 确认为归档模式 SQL> select log_mode from v$database; LOG_MODE ------------ ARCHIVELOG 配置归档日志存放路径( ...

  4. 关于ajax后台success传来json数据的问题

    最近在使用JQuery的ajax方法时,需要返回的数据为json数据,在success返回中数据处理会根据返回方式不同会采用不同的方式来生成json数据.在$.ajax方法中应该是如何来处理的,简单进 ...

  5. OGG中断后,重新同步操作

    模拟一下goldengata中断后,重新同步操作: 1.关掉源端抽取进程 GGSCI (20081122-2105) 15> info all Program Status Group Lag ...

  6. openstack私有云布署实践【12.2 网络Neutron-controller节点配置(办公网环境)】

    网络这一块推荐使用的是 Neutron--LinuxBirdge的Ha高可用,此高可用方案对Public作用不是很大,Public只用到DHCP,而Private则会用到L3 Agent,则此方案是有 ...

  7. Failed to read candidate component class包冲突解决方法

    该类问题出现错误有两个可能,第一JAR包错误,第二就是我们的System library版本不正确导致的问题.

  8. RF接口测试本地环境部署

    ##1 Python环境及robotframework安装 ###1.1 安装python 2.7.9(自带pip) + 下载python,双击msi文件安装 >https://www.pyth ...

  9. Java、C#双语版配套AES加解密示例

      这年头找个正经能用的东西那是真难,网上一搜索一大堆,正经能用的没几个,得,最后还是得靠自己,正巧遇上需要AES加解密的地方了,而且还是Java和C#间的相互加解密操作,这里做个备忘 这里采用的加解 ...

  10. java-成员方法/变量、类方法/变量等区别

    方法 成员方法 成员方法也叫实例方法.必须先有实例即对象,然后才能通过实例调用该实例方法. 类方法 和类变量一样,有关键字static修饰,可以不用实例,直接用类就可以调用类方法. 变量 成员变量 也 ...