Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 12176|回复: 26
打印 上一主题 下一主题

ss(Shadowsocks) 翻墙

[复制链接]

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
跳转到指定楼层
楼主
发表于 2017-9-7 21:05:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 java 于 2019-1-10 15:08 编辑

https://www.loyalsoldier.me/fuck-the-gfw-with-my-own-shadowsocks-server/


Shadowsocks (中文名稱:影梭)是使用 Python 等语言开发的、基于 Apache 许可证开源的代理软件。Shadowsocks 使用 socks5 代理,用于保护网络流量。在中国大陆被广泛用于突破防火长城(GFW),以瀏覽被封鎖的內容。
Shadowsocks 分为服务器端和客户端。在使用之前,需要先将服务器端部署在支持 Python 的服务器上面,然后通过客户端连接并建立本地代理。此外用户也可以选择购买基于 Shadowsocks 的商业服务,以获得更加稳定可靠的服务,或者免去自行部署的麻烦。


chrome以代理方式启动

google-chrome --proxy-server="socks5://localhost:1080"


XX-Net
lanter
回复

使用道具 举报

165

主题

269

帖子

957

积分

认证用户组

Rank: 5Rank: 5

积分
957
沙发
发表于 2017-9-8 09:53:34 | 只看该作者
值得提及的是:
  • SS 的作者是 Clowwindy,中国人,貌似就职于知乎;
  • 2015 年被警察请去喝咖啡,被要求删除在 Github 开源的 Shadowsocks 及其衍生项目。现在 SS 已无开发者进行维护;
  • 很多人以为 Shadowsocks 在 Github 的项目真的被删了……其实并没有,作者只是把 SS 项目的默认分支设置为了一个叫 rm 的分支,显示被删信息。如果你“足够聪明”,切换到 master 分支后,就可以看到了。另外,项目版本发布页面内的源码包也都还在:https://github.com/shadowsocks/shadowsocks/releases



回复 支持 反对

使用道具 举报

165

主题

269

帖子

957

积分

认证用户组

Rank: 5Rank: 5

积分
957
板凳
发表于 2017-9-8 10:04:50 | 只看该作者
本帖最后由 firemail 于 2017-9-8 10:06 编辑

概览
SS 的初始版本是使用 Python 语言开发的,而后通过开源社区的贡献,又有了很多不同语言、环境、平台下的实现:有 C#、Java、JavaScript、Go 等语言实现的,还适配了 Windows、OS X、Linux、Android、iOS、OpenWRT(主流路由器固件之一)等主流平台……所以 SS 完全是一个多语言、多环境、跨平台的开源项目。
官网 下载页面 可以下载到所有平台的不同版本。

Shadowsocks 翻墙方式汇总
  • 懒人必备: 愿意付钱,懒得自己搭建 SS 服务器的话,可以购买第三方的 Shadowsocks 翻墙服务。我用过这个:Shadowsocks.la,稳定性还不错。其中香港那台服务器,在中国电信宽带下,ping 值(连接延时)能稳定在 40ms。用起来特别爽快!
  • 穷逼必备: 也有免费的 SS 翻墙服务,只不过为了控制服务质量,提供商会在一定时间内更换账号密码,需要使用者修改密码后重新登陆才能使用。如果一周就翻墙那么几次的话,可以考虑:ishadowx.com
  • 不折腾会死星人看这里: 我就是我,是颜色不一样的烟火。SS 翻墙服务器搭建方法见下文。
回复 支持 反对

使用道具 举报

165

主题

269

帖子

957

积分

认证用户组

Rank: 5Rank: 5

积分
957
地板
发表于 2017-9-8 10:08:22 | 只看该作者
自行搭建 Shadowsocks 翻墙服务器
说明:本博文不讲解 Linux 系统基本使用方法,不涉及 CentOS 7 操作系统在生产环境下的安全性问题。有需要的话,请自行查阅资料。
Linux 版本的 SS 分为 服务端 和 客户端 两个功能,前者是对外提供翻墙服务的,后者是接受服务的。
具体步骤
步骤 1~5 为 SS 服务端部分的操作,步骤 6~8 为 SS 客户端部分的操作。
  • SSH 登录到位于墙外的服务器
  • 安装 Shadowsocks
  • 优化 Shadowsocks 性能
  • 配置 Shadowsocks 配置文件
  • 启动并永久运行 Shadowsocks 服务端
  • 配置 Shadowsocks CentOS 7 客户端(Linux)
  • 配置 Shadowsocks Windows 客户端(Windows)
  • 配置 Shadowsocks Android 客户端(Android)

回复 支持 反对

使用道具 举报

165

主题

269

帖子

957

积分

认证用户组

Rank: 5Rank: 5

积分
957
5#
发表于 2017-9-8 10:19:32 | 只看该作者
1. SSH 登录到位于墙外的服务器

SSH 使用方法参照之前的博文《在阿里云 CentOS 7 系统上部署 Ghost 博客》中的步骤 1。

2. 安装 Shadowsocks

说明:以下命令均在最高权限用户 root 下运行。
Debian / Ubuntu 用户运行:

apt-get install python-pip
pip install shadowsocks
CentOS 用户运行:

yum install python-setuptools && easy_install pip
pip install shadowsocks

3. 优化 Shadowsocks 性能

按照 SS 官方 Wiki,有如下优化策略:

创建 local.conf 配置文件:vim /etc/sysctl.d/local.conf

按键盘 i,输入以下内容:
  1. # max open files
  2. fs.file-max = 51200
  3. # max read buffer
  4. net.core.rmem_max = 67108864
  5. # max write buffer
  6. net.core.wmem_max = 67108864
  7. # default read buffer
  8. net.core.rmem_default = 65536
  9. # default write buffer
  10. net.core.wmem_default = 65536
  11. # max processor input queue
  12. net.core.netdev_max_backlog = 4096
  13. # max backlog
  14. net.core.somaxconn = 4096

  15. # resist SYN flood attacks
  16. net.ipv4.tcp_syncookies = 1
  17. # reuse timewait sockets when safe
  18. net.ipv4.tcp_tw_reuse = 1
  19. # turn off fast timewait sockets recycling
  20. net.ipv4.tcp_tw_recycle = 0
  21. # short FIN timeout
  22. net.ipv4.tcp_fin_timeout = 30
  23. # short keepalive time
  24. net.ipv4.tcp_keepalive_time = 1200
  25. # outbound port range
  26. net.ipv4.ip_local_port_range = 10000 65000
  27. # max SYN backlog
  28. net.ipv4.tcp_max_syn_backlog = 4096
  29. # max timewait sockets held by system simultaneously
  30. net.ipv4.tcp_max_tw_buckets = 5000
  31. # turn on TCP Fast Open on both client and server side
  32. net.ipv4.tcp_fastopen = 3
  33. # TCP receive buffer
  34. net.ipv4.tcp_rmem = 4096 87380 67108864
  35. # TCP write buffer
  36. net.ipv4.tcp_wmem = 4096 65536 67108864
  37. # turn on path MTU discovery
  38. net.ipv4.tcp_mtu_probing = 1

  39. # for high-latency network
  40. net.ipv4.tcp_congestion_control = hybla

  41. # for low-latency network, use cubic instead
  42. # net.ipv4.tcp_congestion_control = cubic
复制代码
退出并保存配置文件:按键盘 Esc 退出编辑,英文输入法状态下,输入 :wq

使配置生效:sysctl --system                      /////????????????



回复 支持 反对

使用道具 举报

165

主题

269

帖子

957

积分

认证用户组

Rank: 5Rank: 5

积分
957
6#
发表于 2017-9-8 11:00:26 | 只看该作者
本帖最后由 firemail 于 2017-9-8 17:20 编辑

4. 配置 Shadowsocks 配置文件
建议把 SS 的配置文件放置在当前用户主目录下的 ss 文件夹内,对于 root 用户而言,则是:/root/ss 目录。其余用户一般则是:/home/用户名 目录。
下面我们以 root 用户为例:
  • 在 root 文件夹内,新建 ss/ssserver.json 配置文件:vim ~/ss/ssserver.json
  • 编辑配置文件,依然是按 i 进入编辑,按 ESC 退出编辑,按 :wq 保存并退出:

{
    "server": "0.0.0.0",
    "server_port": 8388,
    "password": "mypassword",
    "timeout": 300,
    "method": "aes-256-cfb"
}


5. 启动并永久运行 Shadowsocks 服务端功能
  • 一句命令即可启动并永久运行:sudo nohup /usr/local/bin/ssserver -c ~/ss/ssserver.json -d start &
    说明: ssserver 是 SS 的服务端命令。-c 表示以配置文件的方式运行 SS,/root/ss/ssserver.json 则是步骤 4 中新建的配置文件的路径。-d 表示在后台运行,这样允许用户进行其他操作。start 就是启动。nohup 以及最后的 & 是让 SS 服务端一直运行,并把运行日志输出到当前用户主目录下的 nohup.out 文件中。
  • 停止 SS 服务端:sudo /usr/local/bin/ssserver -c ~/ss/ssserver.json -d stop
    说明: 无需 nohup 和 &,把 start 换成 stop



回复 支持 反对

使用道具 举报

165

主题

269

帖子

957

积分

认证用户组

Rank: 5Rank: 5

积分
957
7#
发表于 2017-9-8 11:22:40 | 只看该作者
本帖最后由 firemail 于 2017-9-8 15:53 编辑

shadowsocks时ssserver 命令无法找到?
shadowsocks重安装了一次:
pip install shadowsocks
问题就解决了。




Permission denied: '/var/run/shadowsocks.pid'

切换到root账号可以运行,但是管理员账号的时候就出现上面的错误
-d start 这个参数是让程序以后台服务的形式运行, 这个参数让这条命令需要root权限.
一个管理员账户在执行命令的时候默认是不带root权限的. 如果管理员想要执行一条需要root权限的命令, 可以在这条命令的前面加上sudo. 你试试这个:
sudo /usr/local/bin/ssserver -c ~/ss/ssserver.json -d start
备注:若无配置文件,在后台可以使用一下命令运行:
[root@localhost /]# ssserver -p 8388 -k MyPass -m rc4-md5 -d start

查看端口被哪个程序占用
sudo netstat -tunlp|grep 8388

停止服务
sudo /usr/local/bin/ssserver -c ~/ss/ssserver.json -d stop


回复 支持 反对

使用道具 举报

165

主题

269

帖子

957

积分

认证用户组

Rank: 5Rank: 5

积分
957
8#
发表于 2017-9-8 11:57:39 | 只看该作者

centOS 6.5关闭防火墙步骤

关闭命令:  service iptables stop
        永久关闭防火墙:chkconfig iptables off

两个命令同时运行,运行完成后查看防火墙关闭状态
        service iptables status





回复 支持 反对

使用道具 举报

165

主题

269

帖子

957

积分

认证用户组

Rank: 5Rank: 5

积分
957
9#
发表于 2017-9-8 17:22:42 | 只看该作者
配置 Shadowsocks Windows 客户端(Windows)
  • 点击下载 Shadowsocks Windows 客户端 最新版
  • 解压到任意目录,双击启动 Shadowsocks.exe,随机可以在右下角的系统任务栏看到一个 纸飞机 的图标,右键纸飞机图标,如图勾选设置:

  • 点开服务器,选择编辑服务器:

  • 随即弹出这样的界面,对应 sslocal.json 配置文件,对照相同项目来填写:

  • 接着右键纸飞机图标,这下图的服务器中,勾选刚刚设置的那个:


Shadowsocks 还有一个强大的功能: PAC(代理自动设置) 。它可以根据在配置文件中设置的网址,来决定哪些网站流量需要经过墙外服务器进行代理。 PAC 功能,可以保证只为国外网站走翻墙代理,国内网站依然直接连接,从而实现加速国外网站的同时,保持国内网站的连接速度。
Shadowsocks 的 PAC 功能是通过 Shadowsocks 软件目录下的 pac.txt 和 user-rule.txt 两个文件同时实现的。前者是 SS 默认自动翻墙的网站列表,后者是用户自己设置的需要翻墙的网站列表。
如果觉得某个网站的打开速度很慢,可以手动把它添加到 user-rule.txt 文件中,然后更新 PAC,从此该网站就通过翻墙服务器做代理,实现加速了。

回复 支持 反对

使用道具 举报

165

主题

269

帖子

957

积分

认证用户组

Rank: 5Rank: 5

积分
957
10#
发表于 2017-9-8 17:49:36 | 只看该作者
本帖最后由 firemail 于 2017-9-19 15:43 编辑

配置 deepin linux 客户端

首先是安装ss:

sudo apt-get install python-pip // 安装PIP,用它来安装ss


sudo pip install shadowsocks    // 安装ss


新建vim ~/ss/sslocal.json,里面内容是:

[backcolor=rgba(128, 128, 128, 0.05)]
  1. {
  2.     "server" : "YOUR_IP",
  3.     "server_port" : 8388,
  4.     "password" : "YOUR_PASSWORD",
  5.     "method" : "aes-256-cfb",
  6.     "remarks" : ""
  7. }
复制代码
[backcolor=rgba(128, 128, 128, 0.05)]

之后启动ss:

sslocal -c ~/ss/sslocal.json
这时,应该看到这样的信息:

最后,还需要在系统内设置,只需要填上Socks主机,如图:
那么,现在开始就可以避开GF*、愉快地畅游网络了。
不过,这样只能是全局模式,访问任何网页都需要通过ss。如果非要在系统设置里的“忽略主机“中一个一个填也可以,只要不怕累。浏览器的扩展程序可以解决这个问题,比如Chromium中的SwitchyOmega(Switchy**这一类的都可以)。
设置SwitchyOmega:
首先还是和系统相似的,Socks主机:

之后在auto switch中配置一下PAC文件(规则列表),网址https://autoproxy-gfwlist.googlecode.com/svn/trunk/gfwlist.txt 不过要注意这个列表列出来的是需要ss的网址,所以要把上面的切换规则中的“规则列表规则“的情景模式改为proxy,其他的可以不管,然后就可以完美地上网了。
[backcolor=rgba(128, 128, 128, 0.05)]

[backcolor=rgba(128, 128, 128, 0.05)]


导入导出
按照下图,在导入导出页面点击“从备份文件恢复”。那么问题就来了,已经配置好的设置备份文件哪家强?SwitchyOmega 项目组找 FelisCatus!我这里有提供备份文件,大家可以自己下载使用。假如打开来是个网页怎么办?右键另存为呗。此外如果曾经在 SwitchySharp 里配置过了,直接用 SwitchySharp 导出的备份文件也行的,不过要记得按照此页面最下方的说明,更改一下规则列表的网址。
图中第三步会打开一个选择文件的对话框,这时候选择刚下载好的备份文件就行了。
https://www.switchyomega.com/settings.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

http://blog.csdn.net/qq_25978793/article/details/49870501


GFWList.bak.zip (683 Bytes, 下载次数: 7)

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-4-27 00:02 , Processed in 0.074434 second(s), 21 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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