ss3
1)执行如下命令,进行安装shadowsocks(命令需要一条条的输入,然后回车,执行完一条,在执行下一条命令),过程中可能会让你选择确认的地方,直接输入"y"回车即可:
yum install epel-release
yum update
yum install python-setuptools m2crypto supervisor
easy_install pip
pip install shadowsocks
2)上一步我们安装了shadowsocks,然后我们需要对其进行配置,首先是端口、密码、加密方式等信息,接下来输入如下命令:
vi /etc/shadowsocks.json
这样我们就进入了文件的编辑状态,点击键盘“i”键,开始编辑,这是一个新文件,把下列内容复制进去:
{
"server":"0.0.0.0",
"server_port":8388,
"local_port":1080,
"password":"yourpassword",
"timeout":600,
"method":"aes-256-cfb"
}
其实,上面的内容你只需要将password那一项修改为你自己的密码即可,然后依次"点击Esc"-->"点击shift+:" -->"输入wq" --> "回车",这样文件就保存了!
接下来再编辑文件/etc/supervisord.conf,执行如下命令进行编辑:
vi /etc/supervisord.conf
还是像刚刚那样,点击“i”键开始编辑,将下列内容粘贴到文件尾部的空行处:
[program:shadowsocks]
command=ssserver -c /etc/shadowsocks.json
autostart=true
autorestart=true
user=root
log_stderr=true
logfile=/var/log/shadowsocks.log
上面的内容原样粘贴就行,然后依次"点击Esc"-->"点击shift+:" -->"输入wq" --> "回车",这样文件就保存了!
接下来再编辑文件/etc/rc.local,执行如下命令进行编辑:
vi /etc/rc.local
还是像刚刚那样,点击“i”键开始编辑,将下列内容粘贴到文件的空行处:
service supervisord start
上面的内容原样粘贴就行,然后依次"点击Esc"-->"点击shift+:" -->"输入wq" --> "回车",这样文件就保存了!
最后,我们需要重启一下服务器,在xshell终端输入"reboot",等待服务器重启完毕后,再重新远程连接一下,输入如下命令,查看端口刚刚你/etc/shadowsocks.json中配置的端口是否处于监听状态:
[root@centos-shadowsocks ~]# netstat -antlp | grep 8388
tcp 0 0 0.0.0.0:8388 0.0.0.0:* LISTEN 1227/python
比如上面的8388端口处于listen状态,说明服务器就搭建成功了!
3)内容补充,你可能需要以下命令:
①启动***服务端:service supervisord start;
②关闭***服务端:service supervisord stop;
③重启shadowsocks服务端:service supervisord restart;
④卸载:pip uninstall shadowsocks;
⑤Centos7设置开机自启:systemctl enable supervisord.service
配置客户端
我们需要下载shadowsocks客户端,然后进行相应的配置,这一步就简单了,首先选择一个你方便的下载地址进行下载:
- https://shadowsocks.com/client.html;
- http://www.iwwenbo.com/android-windows-shadowsocks/;
下载完成后开始配置,如下图:
ss3的更多相关文章
- Flexible 弹性盒子模型之CSS flex-flow
实例 让弹性盒的元素以相反的顺序显示,且在必要的时候进行拆行: display:flex; flex-flow:row-reverse wrap; 效果预览 浏览器支持 表格中的数字表示支持该属性 ...
- Flexible 弹性盒子模型之CSS flex-basis 属性
实例 设置第二个弹性盒元素的初始长度为 80 像素: div:nth-of-type(2){flex-basis:80px;} 效果预览 浏览器支持 表格中的数字表示支持该属性的第一个浏览器的版本 ...
- Flexible 弹性盒子模型之CSS flex-shrink 属性
实例 让第二个元素收缩到其他元素的三分之一: 效果预览 div:nth-of-type(2){flex-shrink:3;} 浏览器支持 表格中的数字表示支持该属性的第一个浏览器的版本号. 紧跟在 - ...
- JAVA的内存模型(变量的同步)
一个线程中变量的修改可能不会立即对其他线程可见,事实上也许永远不可见. 在代码一中,如果一个线程调用了MyClass.loop(),将来的某个时间点,另一个线程调用了MyClass.setValue( ...
- Swift3 - String 字符串、Array 数组、Dictionary 字典的使用
Swift相关知识,本随笔为 字符串.数组.字典的简单使用,有理解.使用错误的地方望能指正. ///************************************************** ...
- ASCII和16进制对照表
十六进制代码 MCS 字符或缩写 DEC 多国字符名 ASCII 控制字符 1 00 NUL 空字符 01 SOH 标题起始 (Ctrl/A) 02 STX 文本起始 (Ctrl/B) 03 ETX ...
- XStream简单入门
简单的讲,XStream 涉及的就五个知识点:详情参考 官网 混叠,注解,转换器,对象流和操作json! 下面就用几个简单的例子来实现上述五个知识点! 基本步骤: 第1步:创建XStream对象. 通 ...
- 关于kali2.0rolling中metasploit升级后无法启动问题的解决总结
最近在学习metasploit的使用,文中提到可以使用msfupdate命令来对metasploit的payload.exploit等进行升级,我就试了一下,没想到升级过程并不麻烦,但升级后却出现了无 ...
- 联合体(union)的使用方法及其本质
转自:http://blog.csdn.net/huqinwei987/article/details/23597091 有些基础知识快淡忘了,所以有必要复习一遍,在不借助课本死知识的前提下做些推理判 ...
随机推荐
- MediaRecorder实现微信、QQ、人人、易信等语音录制功能工具:MediaUtilAPI
本文介绍使用MediaRecorder进行录制音频.录制视频学习,熟悉MediaRecorder执行流程,通过简单的Demo结合解释运行效果,最后封装MediaRecorder的API工具,实现常见比 ...
- DatagramSocket总是发送UDP数据后无法接收数据
ref:http://blog.chinaunix.net/uid-20771867-id-3416509.html cmd:telnet localhost 5554 ...
- error when start pyspark
ERROR spark.SparkContext: Error initializing SparkContext.java.lang.IllegalArgumentException: Requir ...
- Python 列表解析list comprehension和生成表达式generator expression
如果想通过操作和处理一个序列(或其他的可迭代对象)来创建一个新的列表时可以使用列表解析(List comprehensions)和生成表达式(generator expression) (1)list ...
- Python 3 并发编程多进程之进程与线程
Python 3 进程与线程 进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的 ...
- Fidder工具抓包及篡改数据
下载fiddler的最新版本: 运行fiddler之后测试要调试的页面是否可以捕获,刷新页面后左边列表会实时显示目前http请求的条目.如图红色部分 测试成功,开始断点捕获数据 点击菜单栏按钮[Rul ...
- 使用MapReduce将HDFS数据导入Mysql
使用MapReduce将Mysql数据导入HDFS代码链接 将HDFS数据导入Mysql,代码示例 package com.zhen.mysqlToHDFS; import java.io.DataI ...
- Linux- 自动备份MySQL数据库脚本
数据安全很重要,所以日常中需要对数据库进行备份.
- linux raid技术
一.概念 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意.是为了提高文件在磁盘上的读写速度而研究出来的. ...
- Sqlte 知识点记录
1.表存在 select count(*) from sqlite_master where type='table' and name='MyTable'; sql),path ))"; ...