本篇文章主要为大家全面讲解一下shadowsocks的优化、安装和配置,同时还覆盖了Windows系统、Mac os系统、安卓系统和iOS系统等平台,可以解决一些常见的问题,并提供性能调优的相关建议,希望对大家的日常使用能够有所帮助。
现如今是一个数字化快速发展的时代,网络访问的自由与安全变得尤为的重要。无论是我们进行学术方面的研究,还是跨国业务的协作,甚至是获取全球化的信息,为了我们的信息资源安全,这都需要一个稳定、高效且安全的网络工具。而shadowsocks作为一个轻量级的代理工具,凭借其非常简单且高效的特点,现如今已经成为了很多用户的首选。
这篇文章就会为大家全面介绍shadowsocks的工作原理、优化技能技巧、安装配置方法和常见问题及解决方案等内容 。这样即使是新手小白人物,也能够从入门到精通,充分发挥出这一工具的优势和潜力。无论大家是初学者还是非常富有经验的用户,其实都可以在本文当中找到有价值的信息。
当然,本文的内容只供技术学习和研究使用,请大家在使用的时候一定要遵守当地的法律法规,科学合理合法合规的使用网络工具,共同塑造一个良好的网络环境。
shadowsocks的介绍
shadowsocks其实就是一种基于Socks5协议的一种轻量级代理工具,于2012年由clowwindy所创建。采用了传统代理不同的设计理念,通过分离流量转发和协议层,这样就可以轻松实现更加高效的数据传输了,甚至还能够对抗更加强大的干扰能力,深得人们的喜爱。
具体的工作原理
shadowsocks的工作流程其实可以简单概括为以下几个步骤:
•本地加密的功能。主要就是将客户端的请求数据进行加密。
•转发请求的功能。主要就是将加密后的数据被发送到shadowsocks服务器上面。
•服务器解密的功能。主要是指服务器接收并解密数据。
•目标访问的功能。主要是指服务器向目标网站发送相关请求。
•返回数据的功能。主要是指服务器将获取的数据加密并返还给客户端。
•本地解密的功能。主要就是指客户端解密数据并成像给用户。
正是因为拥有这样的设计,使得shadowsocks拥有了以下几个方面的优势。
•高效性。运用轻量级的设计,占用资源很少。
•安全性。采用了非常强大的加密算法,更好的保护了数据的传输。
•灵活性。目前支持多种加密方式以及可以多平台使用。
•稳定性。这种简单的协议设计,使其在连接过程当中更加稳定。
•shadowsocks。采用的协议为Socks5,加密方式为多种加密算法,资源占用比较低,速度比较快,稳定性比较高,配置复杂度比较简单,检测难度较难。
•VPN 。采用的协议为openvpn/IPSec等,加密方式采用全流量加密,资源占用比较高,速度中等,稳定性中的,配置复杂难度比较复杂,检测难度较容易。
•HTTP代理,协议主要采用HTTP/HTTPS ,加密可选加密,资源占用中等,速度中等,稳定性中等,配置复杂难度简单,检测难度较容易。
服务器端口的设置
大家在开始使用shadowsocks到时候,首先需要大家拥有一个已经配置好的服务器,当然我们可以选择自行搭建服务器或者使用第三方服务,如果大家想要自行搭建,以下便是自行搭建的基本步骤。
•前期的准备工作
这时需要大家拥有一台海外的vps服务器,在这里面比较推荐Linode 、Vultr、DigitalOcean 。还需要服务器的操作系统,在这里比较推荐Ubuntu 20.01/22.04,或者也可以选择CentOS8+。接下来还需要准备基本的Linux 命令行的相关知识。
•安装shadowsocks客户端
对于Ubuntu/Debian系统:
hljs bash
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装Shadowsocks
sudo apt install shadowsocks-libev -y
# 编辑配置文件
sudo nano /etc/shadowsocks-libev/config.json
配置文件示例:
hljs json
{
“server”:”0.0.0.0″,
“server_port”:8388,
“password”:”your_password”,
“timeout”:300,
“method”:”aes-256-gcm”,
“fast_open”:true
}
启动服务:
hljs bash
sudo systemctl start shadowsocks-libev
sudo systemctl enable shadowsocks-libev
•设置防火墙
在这里一定要确保防火墙能够允许shadowsocks端口通过,具体为:
hljs bash
sudo ufw allow 8388/tcp
sudo ufw allow 8388/udp
这就需要根据大家的操作系统,并选择和安装适合自己的客户端软件,接下来就介绍各平台的安装和配置指南。
Windows平台
•首先需要大家下载shadowsocks-Windows 的最新版本。
•然后解压并运行这个程序。
•右键点击系统图盘当中的shadowsocks图标。
•然后依次选择服务器,编辑服务器。
•接下来就可以输入服务器的信息,主要包括加密方法、密码、端口和服务器地址等信息。
•最后不要忘了点击确定保存设置。
•这样就可以鼠标右键点击图标,然后选择启用系统代理,顺利的开始使用。
macOS平台
•首先需要下载shadowsocksX-NG。
•根据要求完成安装并启动应用。
•然后点击菜单栏当中的shadowsocks图标。
•选择服务器,然后选择服务器设置。
•再点击加号按钮,添加新的服务器。
•输入服务器的相关信息并保存。
•从菜单当中选择自己刚刚添加的服务器。
•然后选择打开shadowsocks启用代理。
iOS平台
•在App Store当中搜索并购买小火箭。
•然后打开应用,点击右上角的加号按钮。
•类型选择shadowsocks。
•输入服务器的信息,并保存一下。
•点击开启,启用代理。
•首次使用的时候可能需要允许VPN的配置。
安卓的平台
•首先需要大家搜索并下载shadowsocks-Android。
•然后安装并打开这个应用程序。
•点击一下右下角的加号按钮。
•通过手动输入的方法来输入服务器信息,或者是也可以扫描二维码。
•保存之后立即点击该配置。
•点击底部的启动按钮,顺便开始连接。
只有正确选择适合于自己的客户端,才能够获得绝佳的使用体验,为了方便大家进行深度的对比,以下就是各个平台主流客户端的详细对比情况。
Windows客户端
shadowsocks-Windows(C#版本)
•其优点是由官方维护,界面相对比较简单,功能也比较完善。
•特色功能就是支持服务器的分组,拥有pac模式,还拥有插件系统。
•适合的人群是所有的Windows用户,从初学者到专业用户都可以。
Outline Client
•优点是操作比较容易,还可以自动进行更新。
•特色功能是一键连接和内置优化。
•适合的人群是那些追求简单稳定的初学者。
macOS客户端
shadowsocksX-NG
•优点是与macOS深度集成,界面相对比较美观。
•特色功能是支持kcp协议,菜单上面还有快速切换的功能。
•适合人群是所有的mac用户。
Clash X
•优点是基于Clash核心,规则系统比较强大。
•特色功能是拥有很好的策略组,很好的规则匹配制度,以及拥有Dashboard控制面板。
•适合人群是那些需要精细控制网络规则的高级用户。
iOS客户端
小火箭
•优点是功能较为全面,而且稳定性比较好。
•特色功能主要包括支持多种协议、脚本功能和自定义规则等。
•适合人群主要是那些需要高级功能的iOS用户。
•需要支付2.99美元,好在是一次性购买。
Potatso Lite
•优点是界面比较简单,容易操作和使用。
•功能特色是基本的代理功能和流量统计的功能。
•适合人群是那些网络的初学者。
•价格,免费,在应用内购买也是免费的。
安卓的客户端
shadowsocks-Windows
•优点是由官方负责维护,可靠性相对比较高。
•特色功能是支持Trojan、V2ray等多种协议。
•适合的人群主要是那些需要多协议支持的高级用户。
Pac模式与全局模式
这也是目前shadowsocks所提供的两种主要代理模式。
Pac模式(自动代理模式)
•仅仅只对特定的网站使用代理。
•优点是可以很好的节约流量,也能大大提高了本地网络的访问速度。
•配置方面可以自定义pac规则,也可以添加或删除需要代理的网站。
全局模式
•这个模式下所有的流量都会通过代理服务器。
•优点是能够确保所有的链接都受到了保护。
•缺点是可能会影响本地网站访问的速度,同时还会增加流量的消耗。
插件系统
目前shadowsocks提供和支持多种插件,以此来增加功能,具体如下:
simple-obfs
•其主要功能是流量的混淆,可以使流量看起来更像普通的HTTP/Tls流量,可以更好的伪装。
•具体的安装为:
hljs bash
# 服务端安装
sudo apt install simple-obfs
# 客户端配置
# 在客户端配置中添加plugin和plugin-opts字段
v2ray-plugin
•主要功能是提供Web Socket传输,这样就可以与CDN结合使用。
•优点是拥有更强大的抗高扰能力,基本上很难被检测。
•建议选择合适的加密算法
如有较高的安全性需求可以选择:aes-256-gcm, chacha20-ietf-poly1305。想要性能优选可以选择:aes-128-gcm, aes-128-cfb。
•推荐开启TCP Fast open
可以进行服务端的配置:在config.json中设置”fast_open”: true。也可以进行客户端配置:同样需要大家启用fast_open。主要效果就是减少了tcp的连接时间,大大提高了响应的速度。
•调整mtu值
这个值在默认情况下通常为1500,如果连接的时候不稳定,我们可以将其尝试降到1300或者是1400,可以在客户端的高级设置当中完成调整。
•使用BBR拥塞控制算法
这种方法通常适用于Linux 内核4.9+的服务器,安装命令为:
hljs bash
echo “net.core.default_qdisc=fq” | sudo tee -a /etc/sysctl.conf
echo “net.ipv4.tcp_congestion_control=bbr” | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
验证是否启用:
hljs bash
sudo sysctl net.ipv4.tcp_congestion_control
排查一下连接方面的问题
可能的原因是
•服务器的IP被封锁了。
•端口被封锁了。
•服务器的程序没有运行。
•防火墙的设置有问题。
解决方法是
•首先需要检查服务器的状态,具体为:
hljs bash
sudo systemctl status shadowsocks-libev
•检查防火墙设置,具体为:
hljs bash
sudo ufw status
•接下来就可以尝试更换其他端口,尽量不要使用常见的端口,比如443、80、8080等。
•可以尝试使用ping或者Telnet来测试一下服务器的连通性。
可能的原因包括
•服务器宽带受限制。
•线路拥堵。
•加密算法过重了。
•服务器的负载过高了。
解决方法为?
•建议大家能够更换为地理位置更近的服务器。
•建议大家尝试更加轻量的加密算法。
•建议大家启用BBR等拥塞控制算法。
•检查一下服务器的负载情况,具体为:
hljs bash
top
可能的原因包括
•Pac规则配置不当。
•网站有额外的地理位置检测。
•DNS污染的问题。
解决方案包括
•切换到全局模式进行测试。
• 修改一下pac规则,可以添加特定的网站。
•尝试使用DNS over HTTPS 或者是DNS ovee TLS。
目前大多数的shadowsocks客户端都为用户提供了日志的功能,这样可以帮助我们诊断很多问题。
Windows客户端
•可以右键点击托盘的图标,来到显示日志。
•这样就可以查找错误信息,或者是连接失败的信息提示。
macOS客户端
•需要点击菜单栏当中的图片,然后显示shadowsocks日志。
•在这里可以分析日志当中的错误信息。
服务器端的日志为:
hljs bash
sudo journalctl -u shadowsocks-libev
密码安全方面
•建议大家能够使用强密码,这个密码至少要16个以上,其中还包含了大小写字母、特殊符号和数字。
•建议大家能够定期更换密码。
•避免使用默认端口。
流量保护方面
•建议大家能够开启混淆插件。
•考虑使用v2ray-plugin来结合WebSocket和TLS。
•尽量不要在不安全的网络上面传感那些敏感信息。
服务器安全方面
•建议大家能够定期更新系统和shadowsocks软件。
•一定要配置防火墙,同时也要只开放必要的端口。
•可以使用fail2ban等工具来防止其他人暴力破解。
选择适合的加密算法
目前shadowsocks提供和支持多种加密算法,而不同算法的安全性和性能方面会有不一样的地方,还需要大家具体了解,具体选择。
•加密算法为aes-256-gcm,安全性非常高,性能良好,推荐的场景是需要高安全性的场景。
•加密算法为chacha20-ietf-chacha20-ietf-poly1305,安全性非常高,性能在低端设备上表现的更好,推荐的场景为移动设备和路由器。
•加密算法为aes-128-gcm,安全性高,性能很好,推荐的场景为平衡安全性和性能的地方。
•加密算法为aes-128-cfb,安全性中等,性能优秀,适合那些追求极致性能的用户。
需要大家了解的是,在这里并不推荐大家使用rc4-md5这样的旧算法,因为这些早就已经被证明存在安全漏洞了。
关于数据隐私的保护
广大用户在使用shadowsocks到时候,为了能够保证自身科学上网的安全性,建议大家一定要着重注意以下几个隐私保护措施。
•千万要避免数据的泄露
这就要求大家不要在公共网络上面传输那些敏感的信息,可以考虑额外使用HTTPS 加密网站进行访问。
•一定要防止身份的关联。
千万不要再使用shadowsocks时登录那些可能关联自己真实身份的账户。同时也要考虑使用那些专用的浏览器配置文件。
•一些安全的使用习惯
建议大家在不使用的时候可以关闭代理,同时要定期清除浏览器记录和Cookie ,同时也需要考虑使用无痕式浏览。
shadowsocks未来发展的趋向
shadowsocks这个项目未来还会持续的发展,可能包含以下几个方向:
•首先会拥有更强的加密算法的支持。
•其次还会有更加完善的混淆技术。
•当然还会有更多平台的兼容性。
•会与Cdn集成的改进。
都有哪些替代方法呢?
其实大家除了能够使用shadowsocks外,市面上还有很多其他相类似的工具供大家选择,主要包含以下几种:
V2ray
•优势在于能够支持多协议,以及更复杂的路由功能,甚至还有更加强大的隐蔽性。
•劣势在于配置较为复杂,而且资源占用比较高。
•适用场景是那些需要高度定制化网络环境的高级用户。
Trojan
•优势在于能够模仿HTTPS的流量,这样更难被检测到。
•劣势在于可能需要域名和Ssl证书,配置过程也相对复杂一些。
•适用场景是那些对抗深度包检测的场景。
Wire Guard
•优势在于这是一款现代的VPN协议,性能非常的优异,而且代码也很简洁。
•劣势是不专为代理设计,配置略显复杂一些。
•适用场景主要是那些需要全局VPN的用户。
实践过程当中的总结
服务器的选择方面
•建议大家能够选择那些网络质量好,延迟低的服务器。
•考虑使用多个地区的服务器作为备份使用。
客户端配置方面
•可以根据设备的性能选择适合于自己的加密算法。
•更加合理的使用pac模式和全局模式。
•能够定期的更新软件客户端。
安全习惯的方面
•使用强密码,并且需要定期的更换。
•使用混淆插件,这样可以很好的增强安全性。
•不使用时可以关闭代理服务。
性能优化方面
•在服务器端启用bbr。
•客户端启用TCP Fast Open 。
•建议根据网络环境来调整mtu值。
如果大家希望能够深入的了解网络代理的相关技术,我们其实可以考虑以下几个方面的学习途径:
•可以学习基本的网络协议知识,比如常见的tcp/IP、HTTP 、TLC等。
•可以了解更多关于网络安全和加密的相关知识。
•尝试自行搭建和配置不同类型的代理服务。
•可以探索一下更高级的网络工具和相关技术。
常见的问题和解答内容
shadowsocks和VPN到底有什么区别呢?
shadowsocks其实就是一个基于Socks5的代理工具,而VPN则是一种加密通讯的隧道,主要区别为:
• shadowsocks目前只代理应用层的流量,而VPN则可以处理所有网络层的流量。
•shadowsocks使用过程当中对于资源的占用更少一些,通常情况下速度更快。
•VPN能够为用户提供全局加密的保护,shadowsocks则主要被用于一些特定的应用。
怎样判断shadowsocks连接是否正常工作呢?
想要判断其是否正常工作,我们可以按照以下几种方法来验证连接:
•首先可以访问一个通常无法直接访问的网站。
•也可以使用IP查询网站来检查自己当前的IP地址是否显示为服务器所在地。
•接下来也可以查看客户端日志,是否还有一些错误的信息。
•还可使用ping测试一下连接的延迟情况。
为什么有的时候突然变慢或者是断开呢?
这种情况可能的原因有很多,具体如下:
•很有可能是服务器负载过高。
•有可能是网络波动或者是拥塞。
•Isp 可能对特定类型的流量进行限制。
•服务器IP可能被部分封锁了。
解决方法其实非常简单,主要包括切换服务器、开启混淆插件、更换端口、尝试不同的加密方案。
怎样在路由器上面设置shadowsocks呢?
我们完全可以在支持openWrt 等第三方构建的路由器上,这样进行操作:
•安装shadowsocks-libev软件包。
•然后配置服务器的相关信息。
•接下来设置透明代理。shadowsocks完全的指南,教会大家从入门到精通!
本篇文章主要为大家全面讲解一下shadowsocks的优化、安装和配置,同时还覆盖了Windows系统、Mac os系统、安卓系统和iOS系统等平台,可以解决一些常见的问题,并提供性能调优的相关建议,希望对大家的日常使用能够有所帮助。
为什么会选择shadowsocks呢?
现如今是一个数字化快速发展的时代,网络访问的自由与安全变得尤为的重要。无论是我们进行学术方面的研究,还是跨国业务的协作,甚至是获取全球化的信息,为了我们的信息资源安全,这都需要一个稳定、高效且安全的网络工具。而shadowsocks作为一个轻量级的代理工具,凭借其非常简单且高效的特点,现如今已经成为了很多用户的首选。
这篇文章就会为大家全面介绍shadowsocks的工作原理、优化技能技巧、安装配置方法和常见问题及解决方案等内容 。这样即使是新手小白人物,也能够从入门到精通,充分发挥出这一工具的优势和潜力。无论大家是初学者还是非常富有经验的用户,其实都可以在本文当中找到有价值的信息。
当然,本文的内容只供技术学习和研究使用,请大家在使用的时候一定要遵守当地的法律法规,科学合理合法合规的使用网络工具,共同塑造一个良好的网络环境。
shadowsocks你都了解多少吗?
shadowsocks的介绍
shadowsocks其实就是一种基于Socks5协议的一种轻量级代理工具,于2012年由clowwindy所创建。采用了传统代理不同的设计理念,通过分离流量转发和协议层,这样就可以轻松实现更加高效的数据传输了,甚至还能够对抗更加强大的干扰能力,深得人们的喜爱。
具体的工作原理
shadowsocks的工作流程其实可以简单概括为以下几个步骤:
•本地加密的功能。主要就是将客户端的请求数据进行加密。
•转发请求的功能。主要就是将加密后的数据被发送到shadowsocks服务器上面。
•服务器解密的功能。主要是指服务器接收并解密数据。
•目标访问的功能。主要是指服务器向目标网站发送相关请求。
•返回数据的功能。主要是指服务器将获取的数据加密并返还给客户端。
•本地解密的功能。主要就是指客户端解密数据并成像给用户。
正是因为拥有这样的设计,使得shadowsocks拥有了以下几个方面的优势。
•高效性。运用轻量级的设计,占用资源很少。
•安全性。采用了非常强大的加密算法,更好的保护了数据的传输。
•灵活性。目前支持多种加密方式以及可以多平台使用。
•稳定性。这种简单的协议设计,使其在连接过程当中更加稳定。
相比于其他代理工具的优势
•shadowsocks。采用的协议为Socks5,加密方式为多种加密算法,资源占用比较低,速度比较快,稳定性比较高,配置复杂度比较简单,检测难度较难。
•VPN 。采用的协议为openvpn/IPSec等,加密方式采用全流量加密,资源占用比较高,速度中等,稳定性中的,配置复杂难度比较复杂,检测难度较容易。
•HTTP代理,协议主要采用HTTP/HTTPS ,加密可选加密,资源占用中等,速度中等,稳定性中等,配置复杂难度简单,检测难度较容易。
安装与配置流程
服务器端口的设置
大家在开始使用shadowsocks到时候,首先需要大家拥有一个已经配置好的服务器,当然我们可以选择自行搭建服务器或者使用第三方服务,如果大家想要自行搭建,以下便是自行搭建的基本步骤。
•前期的准备工作
这时需要大家拥有一台海外的vps服务器,在这里面比较推荐Linode 、Vultr、DigitalOcean 。还需要服务器的操作系统,在这里比较推荐Ubuntu 20.01/22.04,或者也可以选择CentOS8+。接下来还需要准备基本的Linux 命令行的相关知识。
•安装shadowsocks客户端
对于Ubuntu/Debian系统:
hljs bash
# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装Shadowsocks
sudo apt install shadowsocks-libev -y
# 编辑配置文件
sudo nano /etc/shadowsocks-libev/config.json
配置文件示例:
hljs json
{
“server”:”0.0.0.0″,
“server_port”:8388,
“password”:”your_password”,
“timeout”:300,
“method”:”aes-256-gcm”,
“fast_open”:true
}
启动服务:
hljs bash
sudo systemctl start shadowsocks-libev
sudo systemctl enable shadowsocks-libev
•设置防火墙
在这里一定要确保防火墙能够允许shadowsocks端口通过,具体为:
hljs bash
sudo ufw allow 8388/tcp
sudo ufw allow 8388/udp
客户端的配置
这就需要根据大家的操作系统,并选择和安装适合自己的客户端软件,接下来就介绍各平台的安装和配置指南。
Windows平台
•首先需要大家下载shadowsocks-Windows 的最新版本。
•然后解压并运行这个程序。
•右键点击系统图盘当中的shadowsocks图标。
•然后依次选择服务器,编辑服务器。
•接下来就可以输入服务器的信息,主要包括加密方法、密码、端口和服务器地址等信息。
•最后不要忘了点击确定保存设置。
•这样就可以鼠标右键点击图标,然后选择启用系统代理,顺利的开始使用。
macOS平台
•首先需要下载shadowsocksX-NG。
•根据要求完成安装并启动应用。
•然后点击菜单栏当中的shadowsocks图标。
•选择服务器,然后选择服务器设置。
•再点击加号按钮,添加新的服务器。
•输入服务器的相关信息并保存。
•从菜单当中选择自己刚刚添加的服务器。
•然后选择打开shadowsocks启用代理。
iOS平台
•在App Store当中搜索并购买小火箭。
•然后打开应用,点击右上角的加号按钮。
•类型选择shadowsocks。
•输入服务器的信息,并保存一下。
•点击开启,启用代理。
•首次使用的时候可能需要允许VPN的配置。
安卓的平台
•首先需要大家搜索并下载shadowsocks-Android。
•然后安装并打开这个应用程序。
•点击一下右下角的加号按钮。
•通过手动输入的方法来输入服务器信息,或者是也可以扫描二维码。
•保存之后立即点击该配置。
•点击底部的启动按钮,顺便开始连接。
多个平台客户端进行对比
只有正确选择适合于自己的客户端,才能够获得绝佳的使用体验,为了方便大家进行深度的对比,以下就是各个平台主流客户端的详细对比情况。
Windows客户端
shadowsocks-Windows(C#版本)
•其优点是由官方维护,界面相对比较简单,功能也比较完善。
•特色功能就是支持服务器的分组,拥有pac模式,还拥有插件系统。
•适合的人群是所有的Windows用户,从初学者到专业用户都可以。
Outline Client
•优点是操作比较容易,还可以自动进行更新。
•特色功能是一键连接和内置优化。
•适合的人群是那些追求简单稳定的初学者。
macOS客户端
shadowsocksX-NG
•优点是与macOS深度集成,界面相对比较美观。
•特色功能是支持kcp协议,菜单上面还有快速切换的功能。
•适合人群是所有的mac用户。
Clash X
•优点是基于Clash核心,规则系统比较强大。
•特色功能是拥有很好的策略组,很好的规则匹配制度,以及拥有Dashboard控制面板。
•适合人群是那些需要精细控制网络规则的高级用户。
iOS客户端
小火箭
•优点是功能较为全面,而且稳定性比较好。
•特色功能主要包括支持多种协议、脚本功能和自定义规则等。
•适合人群主要是那些需要高级功能的iOS用户。
•需要支付2.99美元,好在是一次性购买。
Potatso Lite
•优点是界面比较简单,容易操作和使用。
•功能特色是基本的代理功能和流量统计的功能。
•适合人群是那些网络的初学者。
•价格,免费,在应用内购买也是免费的。
安卓的客户端
shadowsocks-Windows
•优点是由官方负责维护,可靠性相对比较高。
•特色功能是支持Trojan、V2ray等多种协议。
•适合的人群主要是那些需要多协议支持的高级用户。
高级配置和一些优化内容
Pac模式与全局模式
这也是目前shadowsocks所提供的两种主要代理模式。
Pac模式(自动代理模式)
•仅仅只对特定的网站使用代理。
•优点是可以很好的节约流量,也能大大提高了本地网络的访问速度。
•配置方面可以自定义pac规则,也可以添加或删除需要代理的网站。
全局模式
•这个模式下所有的流量都会通过代理服务器。
•优点是能够确保所有的链接都受到了保护。
•缺点是可能会影响本地网站访问的速度,同时还会增加流量的消耗。
插件系统
目前shadowsocks提供和支持多种插件,以此来增加功能,具体如下:
simple-obfs
•其主要功能是流量的混淆,可以使流量看起来更像普通的HTTP/Tls流量,可以更好的伪装。
•具体的安装为:
hljs bash
# 服务端安装
sudo apt install simple-obfs
# 客户端配置
# 在客户端配置中添加plugin和plugin-opts字段
v2ray-plugin
•主要功能是提供Web Socket传输,这样就可以与CDN结合使用。
•优点是拥有更强大的抗高扰能力,基本上很难被检测。
性能优化的相关小技巧
•建议选择合适的加密算法
如有较高的安全性需求可以选择:aes-256-gcm, chacha20-ietf-poly1305。想要性能优选可以选择:aes-128-gcm, aes-128-cfb。
•推荐开启TCP Fast open
可以进行服务端的配置:在config.json中设置”fast_open”: true。也可以进行客户端配置:同样需要大家启用fast_open。主要效果就是减少了tcp的连接时间,大大提高了响应的速度。
•调整mtu值
这个值在默认情况下通常为1500,如果连接的时候不稳定,我们可以将其尝试降到1300或者是1400,可以在客户端的高级设置当中完成调整。
•使用BBR拥塞控制算法
这种方法通常适用于Linux 内核4.9+的服务器,安装命令为:
hljs bash
echo “net.core.default_qdisc=fq” | sudo tee -a /etc/sysctl.conf
echo “net.ipv4.tcp_congestion_control=bbr” | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
验证是否启用:
hljs bash
sudo sysctl net.ipv4.tcp_congestion_control
常见的问题和解决方法
排查一下连接方面的问题
第一个问题是无法连接到服务器
可能的原因是
•服务器的IP被封锁了。
•端口被封锁了。
•服务器的程序没有运行。
•防火墙的设置有问题。
解决方法是
•首先需要检查服务器的状态,具体为:
hljs bash
sudo systemctl status shadowsocks-libev
•检查防火墙设置,具体为:
hljs bash
sudo ufw status
•接下来就可以尝试更换其他端口,尽量不要使用常见的端口,比如443、80、8080等。
•可以尝试使用ping或者Telnet来测试一下服务器的连通性。
第二个问题是连接速度变慢
可能的原因包括
•服务器宽带受限制。
•线路拥堵。
•加密算法过重了。
•服务器的负载过高了。
解决方法为?
•建议大家能够更换为地理位置更近的服务器。
•建议大家尝试更加轻量的加密算法。
•建议大家启用BBR等拥塞控制算法。
•检查一下服务器的负载情况,具体为:
hljs bash
top
问题三是特定的网站无法访问
可能的原因包括
•Pac规则配置不当。
•网站有额外的地理位置检测。
•DNS污染的问题。
解决方案包括
•切换到全局模式进行测试。
• 修改一下pac规则,可以添加特定的网站。
•尝试使用DNS over HTTPS 或者是DNS ovee TLS。
日志的调试与分析
目前大多数的shadowsocks客户端都为用户提供了日志的功能,这样可以帮助我们诊断很多问题。
Windows客户端
•可以右键点击托盘的图标,来到显示日志。
•这样就可以查找错误信息,或者是连接失败的信息提示。
macOS客户端
•需要点击菜单栏当中的图片,然后显示shadowsocks日志。
•在这里可以分析日志当中的错误信息。
服务器端的日志为:
hljs bash
sudo journalctl -u shadowsocks-libev
使用过程当中的安全隐患与防范措施
密码安全方面
•建议大家能够使用强密码,这个密码至少要16个以上,其中还包含了大小写字母、特殊符号和数字。
•建议大家能够定期更换密码。
•避免使用默认端口。
流量保护方面
•建议大家能够开启混淆插件。
•考虑使用v2ray-plugin来结合WebSocket和TLS。
•尽量不要在不安全的网络上面传感那些敏感信息。
服务器安全方面
•建议大家能够定期更新系统和shadowsocks软件。
•一定要配置防火墙,同时也要只开放必要的端口。
•可以使用fail2ban等工具来防止其他人暴力破解。
安全与隐私防护的相关内容
选择适合的加密算法
目前shadowsocks提供和支持多种加密算法,而不同算法的安全性和性能方面会有不一样的地方,还需要大家具体了解,具体选择。
•加密算法为aes-256-gcm,安全性非常高,性能良好,推荐的场景是需要高安全性的场景。
•加密算法为chacha20-ietf-chacha20-ietf-poly1305,安全性非常高,性能在低端设备上表现的更好,推荐的场景为移动设备和路由器。
•加密算法为aes-128-gcm,安全性高,性能很好,推荐的场景为平衡安全性和性能的地方。
•加密算法为aes-128-cfb,安全性中等,性能优秀,适合那些追求极致性能的用户。
需要大家了解的是,在这里并不推荐大家使用rc4-md5这样的旧算法,因为这些早就已经被证明存在安全漏洞了。
关于数据隐私的保护
广大用户在使用shadowsocks到时候,为了能够保证自身科学上网的安全性,建议大家一定要着重注意以下几个隐私保护措施。
•千万要避免数据的泄露
这就要求大家不要在公共网络上面传输那些敏感的信息,可以考虑额外使用HTTPS 加密网站进行访问。
•一定要防止身份的关联。
千万不要再使用shadowsocks时登录那些可能关联自己真实身份的账户。同时也要考虑使用那些专用的浏览器配置文件。
•一些安全的使用习惯
建议大家在不使用的时候可以关闭代理,同时要定期清除浏览器记录和Cookie ,同时也需要考虑使用无痕式浏览。
未来有哪些发展?又有哪些替代方案呢?
shadowsocks未来发展的趋向
shadowsocks这个项目未来还会持续的发展,可能包含以下几个方向:
•首先会拥有更强的加密算法的支持。
•其次还会有更加完善的混淆技术。
•当然还会有更多平台的兼容性。
•会与Cdn集成的改进。
都有哪些替代方法呢?
其实大家除了能够使用shadowsocks外,市面上还有很多其他相类似的工具供大家选择,主要包含以下几种:
V2ray
•优势在于能够支持多协议,以及更复杂的路由功能,甚至还有更加强大的隐蔽性。
•劣势在于配置较为复杂,而且资源占用比较高。
•适用场景是那些需要高度定制化网络环境的高级用户。
Trojan
•优势在于能够模仿HTTPS的流量,这样更难被检测到。
•劣势在于可能需要域名和Ssl证书,配置过程也相对复杂一些。
•适用场景是那些对抗深度包检测的场景。
Wire Guard
•优势在于这是一款现代的VPN协议,性能非常的优异,而且代码也很简洁。
•劣势是不专为代理设计,配置略显复杂一些。
•适用场景主要是那些需要全局VPN的用户。
一些可行的总结和建议
实践过程当中的总结
服务器的选择方面
•建议大家能够选择那些网络质量好,延迟低的服务器。
•考虑使用多个地区的服务器作为备份使用。
客户端配置方面
•可以根据设备的性能选择适合于自己的加密算法。
•更加合理的使用pac模式和全局模式。
•能够定期的更新软件客户端。
安全习惯的方面
•使用强密码,并且需要定期的更换。
•使用混淆插件,这样可以很好的增强安全性。
•不使用时可以关闭代理服务。
性能优化方面
•在服务器端启用bbr。
•客户端启用TCP Fast Open 。
•建议根据网络环境来调整mtu值。
学习路径方面
如果大家希望能够深入的了解网络代理的相关技术,我们其实可以考虑以下几个方面的学习途径:
•可以学习基本的网络协议知识,比如常见的tcp/IP、HTTP 、TLC等。
•可以了解更多关于网络安全和加密的相关知识。
•尝试自行搭建和配置不同类型的代理服务。
•可以探索一下更高级的网络工具和相关技术。
常见的问题和解答内容
shadowsocks和VPN到底有什么区别呢?
shadowsocks其实就是一个基于Socks5的代理工具,而VPN则是一种加密通讯的隧道,主要区别为:
• shadowsocks目前只代理应用层的流量,而VPN则可以处理所有网络层的流量。
•shadowsocks使用过程当中对于资源的占用更少一些,通常情况下速度更快。
•VPN能够为用户提供全局加密的保护,shadowsocks则主要被用于一些特定的应用。
怎样判断shadowsocks连接是否正常工作呢?
想要判断其是否正常工作,我们可以按照以下几种方法来验证连接:
•首先可以访问一个通常无法直接访问的网站。
•也可以使用IP查询网站来检查自己当前的IP地址是否显示为服务器所在地。
•接下来也可以查看客户端日志,是否还有一些错误的信息。
•还可使用ping测试一下连接的延迟情况。
为什么有的时候突然变慢或者是断开呢?
这种情况可能的原因有很多,具体如下:
•很有可能是服务器负载过高。
•有可能是网络波动或者是拥塞。
•Isp 可能对特定类型的流量进行限制。
•服务器IP可能被部分封锁了。
解决方法其实非常简单,主要包括切换服务器、开启混淆插件、更换端口、尝试不同的加密方案。
怎样在路由器上面设置shadowsocks呢?
我们完全可以在支持openWrt 等第三方构建的路由器上,这样进行操作:
•安装shadowsocks-libev软件包。
•然后配置服务器的相关信息。
•接下来设置透明代理。
•最后配置DNS转发。
通过以上这样的操作,就可以连接到该路由器所有的设备,而且这些设备都可以自动使用shadowsocks代理了。
shadowsocks目前能够支持ipv6吗?
答案当然是肯定的啦,shadowsocks能够支持ipv6。只需要大家在服务器的配置当中,将带有“server”字段设置为“::”(这样其实是表示已经监听了所有的ipv6地址),或者也可以特定ipv6的地址。这样客户端也就需要支持ipv6,并且也需要进行正确的配置。
通过以上这样的操作,就可以连接到该路由器所有的设备,而且这些设备都可以自动使用shadowsocks代理了。
shadowsocks目前能够支持ipv6吗?
答案当然是肯定的啦,shadowsocks能够支持ipv6。只需要大家在服务器的配置当中,将带有“server”字段设置为“::”(这样其实是表示已经监听了所有的ipv6地址),或者也可以特定ipv6的地址。这样客户端也就需要支持ipv6,并且也需要进行正确的配置。