shadowsocks 攻克 GWF(新梯子)

 
更多

简单科普一下shadowsocks和vpn的区别:
shadowsocks是一种socks5的代理,而socks5的代理服务器则是把你的网络数据请求通过一条连接你和代理服务器之间的通道,由服务器转发到目的地。你没有加入任何新的网络,只是http/socks数据经过代理服务器的转发送出,并从代理服务器接收回应。
VPN,虚拟专用网络,接入VPN就是接入了一个专有网络,那么你访问网络的所有流量都通过这个专有网络的出口出去,同时你的IP地址也变成了有这个VPN分配的IP地址。你与VPN之间的链接通信取决于这个VPN的连接协议
总结:就目前而言,为了数据安全可以选择VPN,而为了科学上网还是shadowsocks更加能抗GFW的干扰。其中VPN中的Openvpn协议已经被GFW攻破,一杀一个准。

前言

安装Shadowsocks服务

方案一

搬瓦工VPS为我们准备了Shadowsocks的一键安装,直接在控制面板中有,非常方便。

  • 只需在左边最下面选择Shadowsocks Server
  • 然后选择Install Shadowsocks Server
  • 等待安装完成后选择Go Back
  • 现在可以看到加密协议默认aes-256-cfb,端口默认443 ,密码随机

如果是自己用,到这里就可以使用了,直接在客户端填好这些配置信息就好了。

方案二

如果不在控制面板上安装或者是在其他没有一键安装的VPS上,可以使用命令安装。

Debian/Ubuntu:

apt-get install python-pip
pip install shadowsocks

CentOS:

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

优化Shadowsocks性能

  • 在终端通过ssh连上vps(Windows可以用putty连,Mac直接在终端就可以了)
  • 在终端输入vi /etc/sysctl.d/local.conf 
    创建配置文件
  • 按i插入
  • 插入以下内容

    # max open files
    fs.file-max = 1024000
    # max read buffer
    net.core.rmem_max = 67108864
    # max write buffer
    net.core.wmem_max = 67108864
    # default read buffer
    net.core.rmem_default = 65536
    # default write buffer
    net.core.wmem_default = 65536
    # max processor input queue
    net.core.netdev_max_backlog = 4096
    # max backlog
    net.core.somaxconn = 4096
    # resist SYN flood attacks
    net.ipv4.tcp_syncookies = 1
    # reuse timewait sockets when safe
    net.ipv4.tcp_tw_reuse = 1
    # turn off fast timewait sockets recycling
    net.ipv4.tcp_tw_recycle = 0
    # short FIN timeout
    net.ipv4.tcp_fin_timeout = 30
    # short keepalive time
    net.ipv4.tcp_keepalive_time = 1200
    # outbound port range
    net.ipv4.ip_local_port_range = 10000 65000
    # max SYN backlog
    net.ipv4.tcp_max_syn_backlog = 4096
    # max timewait sockets held by system simultaneously
    net.ipv4.tcp_max_tw_buckets = 5000
    # TCP receive buffer
    net.ipv4.tcp_rmem = 4096 87380 67108864
    # TCP write buffer
    net.ipv4.tcp_wmem = 4096 65536 67108864
    # turn on path MTU discovery
    net.ipv4.tcp_mtu_probing = 1
    # for high-latency network
    net.ipv4.tcp_congestion_control = hybla
    # forward ivp4
    net.ipv4.ip_forward = 1

  • 然后按Esc退出编辑,按shift+:,输入wq,回车,就保存退出了。

  • 配置生效:sysctl –system

配置多用户

如果想多用户使用的话就需要更改配置。

  • 首先通过ssh连上vps
  • 在终端输入vi /etc/shadowsocks.json创建配置文件
  • 按i插入
  • 插入以下内容(用户数即为端口数,可任意,注意最后一个端口密码后面没有逗号)

{“server”:”my_server_ip”,#填入你的IP地址”local_address”:”127.0.0.1″,”local_port”:1080,”port_password”: {“8381″:”foobar1″,#端口号,密码”8382″:”foobar2″,”8383″:”foobar3″,”8384″:”foobar4″},”timeout”:300,”method”:”aes-256-cfb”,”fast_open”:false}

上面开了四个端口(用户)为8381-8384,密码分别为foobar1-foobar4,你还需要填入你的IP地址。

下面是详细配置说明:

Name 说明
server 服务器地址,填ip或域名
local_address 本地地址
local_port 本地端口,一般1080,可任意
server_port 服务器对外开的端口
password 密码,可以每个服务器端口设置不同密码
port_password server_port + password ,服务器端口加密码的组合
timeout 超时重连
method 默认: “aes-256-cfb”,见 Encryption
fast_open 开启或关闭 TCP_FASTOPEN, 填true / false,需要服务端支持

  • 然后按Esc退出编辑,按shift+:,输入wq,回车,就保存退出了。
  • 使用后端启动 

    • 前端启动:ssserver -c /etc/shadowsocks.json;
    • 后端启动:ssserver -c /etc/shadowsocks.json -d start;
    • 停止:ssserver -c /etc/shadowsocks.json -d stop;
    • 重启(修改配置要重启才生效):ssserver -c /etc/shadowsocks.json -d restart
  • 设置开机启动 

    • 在终端输入vi /etc/rc.local,
    • 把里面最后的带有ssserver的一大段默认的代码删除掉,
    • 再把ssserver -c /etc/shadowsocks.json -d start加进去,
    • 按wq保存退出。
  • 到此就配置好了,试试多用户运行吧!

2017年10月31日修改

附上单用户的配置信息:/etc/shadowsocks.json

{
“server”:”my_server_ip”,
“server_port”:8381,
“local_address”:”127.0.0.1″,
“local_port”:1080,
“password”:”foobar1″,
“timeout”:300,
“method”:”aes-256-cfb”,
“fast_open”:false}

百科介绍

VPN,即虚拟专用网络

虚拟专用网络的功能是:在公用网络上建立专用网络,进行加密通讯。在企业网络中有广泛应用。VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。VPN有多种分类方式,主要是按协议进行分类。VPN可通过服务器、硬件、软件等多种方式实现。

Shadowsocks,即Sock5代理

采用socks协议的代理服务器就是SOCKS服务器,是一种通用的代理服务器。Socks是个电路级的底层网关,是DavidKoblas在1990年开发的,此后就一直作为Internet RFC标准的开放标准。Socks 不要求应用程序遵循特定的操作系统平台,Socks 代理与应用层代理、 HTTP 层代理不同,Socks 代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。所以,Socks代理比其他应用层代理要快得多。


VPN顾名思义,虚拟专网,你接入VPN就是接入了一个专有网络,那么你访问网络都是从这个专有网络的出口出去,好比你在家,你家路由器后面的网络设备是在同一个网络,而VPN则是让你的设备进入了另一个网络。同时你的IP地址也变成了由VPN分配的一个IP地址。通常是一个私网地址。你和VPN服务器之间的通信是否加密取决于连接VPN的具体方式/协议。

Sock5代理服务器则是把你的网络数据请求通过一条连接你和代理服务器之间的通道,由服务器转发到目的地。你没有加入任何新的网络,只是http/socks数据经过代理服务器的转发送出,并从代理服务器接收回应。你与代理服务器通信过程不会被额外处理,如果你用https,那本身就是加密的。

Shadowsocks全局模式与VPN的区别

VPN控制的是你电脑的整个网络,只要需要连接到互联网的流量都会经过vpn。

你的IP会被更换为VPN的IP。连接VPN只需要知道IP和账号密码。

Shadowsocks的全局模式,是设置你的系统代理的代理服务器,使你的所有http/socks数据经过代理服务器的转发送出。而只有支持socks5或者使用系统代理的软件才能使用Shadowsocks(一般的浏览器都是默认使用系统代理)。

经过代理服务器的IP会被更换。连接Shadowsocks需要知道IP、端口、账号密码和加密方式。但是Shadowsocks因为可以自由换端口,所以定期换端口就可以有效避免IP被封!

Shadowsocks全局模式与PAC模式的区别

上面已经解释了Shadowsocks的全局模式,而PAC模式就是会在你连接网站的时候读取PAC文件里的规则,来确定你访问的网站有没有被墙,如果符合,那就会使用代理服务器连接网站,而PAC列表一般都是从GFWList更新的。GFWList定期会更新被墙的网站(不过一般挺慢的)。

简单地说,在全局模式下,所有网站默认走代理。而PAC模式是只有被墙的才会走代理,推荐PAC模式,如果PAC模式无法访问一些网站,就换全局模式试试,一般是因为PAC更新不及时(也可能是GFWList更新不及时)导致的。

还有,说一下Chrome不需要Proxy SwitchyOmega和Proxy SwitchySharp插件,这两个插件的作用就是,快速切换代理,判断网站需不需要使用某个代理的(ss已经有pac模式了,所以不需要这个)。如果你只用shadowsocks的话,就不需要这个插件了!


个人认为现在的Shadowsocks加密技术是很不错的,推荐使用Shadowsocks(IOS除外),想要做到类VPN的方式(控制整个网络)可以搭配Proxifier使用,教程看这里

上面仅代表个人的浅层观点,目前墙针对VPN的封锁越来越严重,比较有名的OpenVPN已经被第一个集火了!而PPTP也逐渐不稳定了起来,可能今天能用,明天就不能用了。L2TP和IPSe0c目前还好,加密方式还无法被效率破解。

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

PPTP、L2TP和IPsec的区别及优缺点_百度文库  

http://wenku.baidu.com/link?url=PNjKfNvB_isGU28-fQTkombphJktwrn6jzxrAv_vU4huHEpzyAjmjYT73jNSuJURq4knMhAYQad0BjdatImG4PPK8qOtKQ8nGXMHh2UTKdG

PPTP、L2TP和IPsec的区别及优缺点 

1、PPTP协议是点对点隧道协议:

其将控制包与数据包分开,控制包采用TCP控制,用于严格的状态查询及信令信息;数据包部分先封装在PPP协议中,然后封装到GRE V2协议中。

2、L2TP是国际标准隧道协议:

它结合了PPTP协议以及第二层转发L2F协议的优点,能以隧道方式使PPP包通过各种网络协议,包括ATM、SONET和帧中继。但是L2TP没有任何加密措施,更多是和IPSec协议结合使用,提供隧道验证。

3、两者的联系与区别:

联系:PPTP和L2TP都使用PPP协议对数据进行封装,然后添加附加包头用于数据在互联网络上的传输。尽管两个协议非常相似,但是仍存在以下几方面的不同

区别:

1)PPTP要求互联网络为IP网络。L2TP只要求隧道媒介提供面向数据包的点对点的连接。L2TP可以在IP(使用UDP),桢中继永久虚拟电路(PVCs),X.25虚拟电路(VCs)或ATM VCs网络上使用。

2)PPTP只能在两端点间建立单一隧道。L2TP支持在两端点间使用多隧道。使用L2TP,用户可以针对不同的服务质量创建不同的隧道。

3)L2TP可以提供包头压缩。当压缩包头时,系统开销(overhead)占用4个字节,而PPTP协议下要占用6个字节。

4)L2TP可以提供隧道验证,而PPTP不支持隧道验证。但当L2TP或PPTP与IPSEC共同使用时,可由IPSEC提供隧道验证,不需在第2层协议上验证隧道。

IPSec的优点

如果在路由器或防火墙上执行了IPSec,它就会为周边的通信提供强有力的安全保障。一个公司或工作组内部的通信将不涉及与安全相关的费用。下文叙述了IPSec的一些优点:

IPSec在传输层之下,对于应用程序来说是透明的。当在路由器或防火墙上安装IPSec时,无需更改用户或服务器系统中的软件设置。即使在终端系统中执行IPSec,应用程序一类的上层软件也不会被影响。
IPSec对终端用户来说是透明的,因此不必对用户进行安全机制的培训。
如果需要的话,IPSec可以为个体用户提供安全保障,这样做就可以保护企业内部的敏感信息。
IPSec正向Internet靠拢。已经有一些机构部分或全部执行了IPSec。IAB的前任总裁Christian Huitema认为,关于如何保证Internet安全的讨论是他所见过的最激烈的讨论之一。讨论的话题之一就是安全是否在恰当的协议层上被使用。想要提供IP级的安全,IPSec必须成为配置在所有相关平台(包括Windows NT,Unix和Macintosh系统)的网络代码中的一部分。

实际上,现在发行的许多Internet应用软件中已包含了安全特征。例如,Netscape Navigator和Microsoft Internet Explorer支持保护互联网通信的安全套层协议(SSL),还有一部分产品支持保护Internet上信用卡交易的安全电子交易协议(SET)。然而,VPN需要的是网络级的功能,这也正是IPSec所提供的

  • 有时候系统的Winsock和TCP/IP协议栈因未知原因损坏,请以管理员权限在CMD中执行以下命令,然后重启:

netsh interface ipv4 reset
netsh interface ipv6 reset
netsh winsock reset

打赏

本文固定链接: https://www.cxy163.net/archives/1576 | 绝缘体

该日志由 绝缘体.. 于 2017年12月13日 发表在 首页 分类下,
原创文章转载请注明: shadowsocks 攻克 GWF(新梯子) | 绝缘体

报歉!评论已关闭.