海南省BIM中心

 找回密码
 注册请加微信xycost

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2666|回复: 1

如何在自己的服务器上搭建shadowsocks服务器

[复制链接]

2331

主题

2887

帖子

932万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9324468
发表于 2017-11-27 15:14:37 | 显示全部楼层 |阅读模式
背景介绍
[size=1em]对于很多技术人员来说,网上查找资料是工作的一部分,国内百度虽然可以用,但是只能收到一些普通大众化的资料,对于更多专业的资料还是不多。而国外的搜索引擎谷歌虽然好用,由于众所周知的原因,国内无法使用。无奈之下,花钱买了一些翻墙工具,不久也被屏蔽,网上的一些免费的翻墙工具,大多数都不稳定,不适合专业人员长期使用。痛定思痛,决定自己搭建一台服务器用于访问国外网站。
一、为什么选用shadowsocks?
[size=1em]其实翻墙工具有很多,比较出名的有VPN,ssh通道等方法,而我为什么选用shadowsocks呢?原因很简单:天朝的GFW 比较牛,shadowsocks比较不容易被封。性能也比较稳定,搭建起来也不难。
二、shadowsocks原理介绍
. 介绍shadowsocks原理,必须要先了解我们现在网络访问过程
正常情况下,我们访问各种网站都是简单而直接的,用户的请求通过互联网发送到服务提供方,服务提供方直接将信息反馈给用户,如下图所示:

我们国家为了控制国内对国外网络的访问,在中间加了一层防火墙GFW,他像一个收费站一样夹在了在用户和服务之间,每当用户需要获取信息,都经过了 GFW,GFW将它不喜欢的内容统统过滤掉,于是客户当触发 GFW 的过滤规则的时候,就会收到 Connection Reset 这样的响应内容,而无法接收到正常的内容。如下图:

而shadowsocks的出现解决了这一难题,他的访问过程是这样的:
1. 客户端发出的请求基于 Socks5 协议跟 ss-local 端进行通讯,由于这个 ss-local 一般是本机或路由器
局域网的其他机器,不经过 GFW,所以解决了上面被 GFW 通过特征分析进行干扰的问题(1、6)
2. ss-local 和 ss-server 两端通过多种可选的加密方法进行通讯,经过 GFW 的时候是常规的TCP包,没有明显的特征码而且 GFW 也无法对通讯数据进行解密( 2、5)
3. ss-server 将收到的加密数据进行解密,还原原来的请求,再发送到用户需要(3、4)
[size=1em]终上所述,shadowsocks的作用是产生一个代理,包装请求,从而瞒过GFW的监控,达到访问外网的目的。
三、shadowsocks安装环境准备
  • 一台可以访问国外网络的服务器:任意一台可以访问国外网络的服务器都可以,主要是用来做代理服务器。可以是自己的海外服务器,也可以是在阿里云或者亚马逊上够买的任意服务器海外服务器。我用的是在阿里云上购买的位于香港的CenOS 64位服务器。
  • shadowsocks客户端:下载地址 https://github.com/shadowsocks/shadowsocks?spm=5176.100239.blogcont43252.5.R8OPSE.如果你的是Linux服务器,可以使用命令行直接安装,笔者建议使用后者。
开始安装,shadowsocks可以在多种操作系统下运行。
  • 如果您的系统是Centos,可以使用以下命令安装
yum install python-setuptools && easy_install pippip install git+https://github.com/shadowsocks/shadowsocks.git@master
  • 1
  • 2
  • 如果你的系统是Debian 或者 Ubuntu,可以使用下面命令安装
apt-get install python-pippip install git+https://github.com/shadowsocks/shadowsocks.git@master
  • 1
  • 2
  • Windows系统下安装会复杂些,笔者不建议使用。但是这里提供一个安装方法。这里不再赘述。
    https://github.com/shadowsocks/shadowsocks/wiki/Install-Shadowsocks-Server-on-Windows
    • 1

查看是否安装成功,可以使用 ssserver -h 命令
如果没有ssserver命令的话,一般是在/usr/local/bin目录下,如下:
我们只需要把/usr/local/bin加入到/etc/profile文件中即可配置shadowsocks在/etc/shadowsocks 文件夹下(如果没有改文件夹,则使用 mkdir /etc/shadowsocks 命令新建一个文件夹)新建一个配置文件config.json,并写入如下命令:{"server":"0.0.0.0","server_port":1234,"local_address":"127.0.0.1","local_port":1080,"password":"******","timeout":300,"method":"aes-256-cfb","fast_open":false,"workers": 1}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
主要参数说明{"server":"",     ##服务器ip地址"server_port":1234,  ##代理端口"local_address":"127.0.0.1","local_port":1080, ##本地监听端口"password":"******",   ##连接密码"timeout":300,"method":"aes-256-cfb", ##加密方式"dast_open":false}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
shadowsocks的启动与关闭
  • 使用 ssserver -c /etc/shadowsocks/config.json -d start 命令启动
  • 使用 netstat -tunlp 命令查看
  • 使用ssserver -c /etc/shadowsocks/config.json -d stop命令停止
连接shadowsocks
打开谷歌网站,即可畅游谷歌了

回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /2 下一条


QQ|小黑屋|手机版|Archiver|ChinaBIM ( 琼ICP备14001050号-1 )

GMT+8, 2024-4-25 07:03 , Processed in 0.023015 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表