“FAQ:SS客户端”的版本间差异
(→BBR) |
(→锐速) |
||
第166行: | 第166行: | ||
==== 锐速 ==== | ==== 锐速 ==== | ||
BBR、BBR PLUS、魔改BBR、锐速的脚本安装要求: | |||
1、适用架构:KVM / Xen,不支持OpenVZ(OVZ)。 | |||
2、适用系统:CentOS 7、Debian 8、Debian 9、Ubuntu 16.04、Ubuntu 18.04。 | |||
[https://www.91yun.co/serverspeeder91yun 锐速安装一键包] | |||
安装:(现在不知道哪一个可以用) | |||
: <syntaxhighlight lang="bash" highlight=""> | : <syntaxhighlight lang="bash" highlight=""> | ||
# 使用一键安装脚本 | # 使用一键安装脚本 | ||
wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/serverspeeder/master/serverspeeder-all.sh && bash serverspeeder-all.sh | wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/serverspeeder/master/serverspeeder-all.sh && bash serverspeeder-all.sh | ||
# | # 或: | ||
wget -N --no-check-certificate https://github.com/91yun/serverspeeder/raw/master/serverspeeder.sh && bash serverspeeder.sh | |||
</syntaxhighlight> | |||
* 不需要任何配置。<s><code>“vi /serverspeeder/etc/config”</code></s> | |||
卸载: | |||
: <syntaxhighlight lang="bash" highlight=""> | |||
chattr -i /serverspeeder/etc/apx* && /serverspeeder/bin/serverSpeeder.sh uninstall -f | |||
</syntaxhighlight> | |||
操作: | |||
: <syntaxhighlight lang="bash" highlight=""> | |||
service serverSpeeder start|stop|restart|status | |||
# 或 | |||
/serverspeeder/bin/serverSpeeder.sh start|stop|restart|status | |||
</syntaxhighlight> | </syntaxhighlight> | ||
2021年11月26日 (五) 06:04的版本
关于
目前 Shadowsocks 有多个实现支持,以自由软件形式发布的主要有:原始 Shadowsocks(以Python语言编写)、Shadowsocks-libev(分支项目openwrt-Shadowsocks)、Shadowsocks-rust、Shadowsocks-go/go-Shadowsocks2、libQtShadowsocks、Shadowsocks-qt5(仅作为客户端)、Shadowsocks-android(仅作为客户端)、Shadowsocks-windows(仅作为客户端)、ShadowsocksX-NG(仅作为客户端)、Shadowsocks-R、Outline、V2Ray、Brook、Trojan 等等,还有为数甚多的免费软件及商业软件。
版本
Server 版本:
- shadowsocks-python: python版本
- shadowsocks-go:go版本
- go-shadowsocks2:重构的 Go 版本,核心功能增强。
- shadowsocks-libev:C with libev,用的最广的一个版本,有Docker版本。同时包含 server 和 client。
- libQtShadowsocks:C++ with Qt。
- shadowsocks-perl:Perl版本。
Client 版本:
- shadowsocks-windows:windows 客户端
- shadowsocksX-NG:macos 客户端
- Shadowsocks-Qt5:linux 客户端,基于Qt
- shadowsocks-android:android 客户端 Google Play
- outline-app:outline 项目客户端,支持iOS
- Shadowsocks-libev for OpenWrt:可以用于路由器 OpenWRT 的客户端
Outline 项目:(Outline 是一个开源的 VPN 项目)
- outline-ss-server:由 go-shadowsocks2 驱动 Shadowsocks 服务端程序。
- outline-server:VPN 服务端 GUI 管理工具,用于创建和管理 Outline servers。基于 Electron,支持 Windows, macOS and Linux。
- outline-client:兼容 Shadowsocks 的 VPN 客户端,基于 Cordova 和 Electron,支持 Windows、Android / ChromeOS、Linux、iOS、macOS。
Shadowsocks-R 相关项目:(shadowsocks-R 相关版本支持 SSR 混淆功能)
- ShadowsocksX-NG-R:ssr macos客户端
- shadowsocksr-android:ssr android客户端
- shadowsocksr-csharp:ssr windows客户端
其他 iOS 客户端:(均需要需要美国地区的 apple id)
- Potatso Lite:Shadowsocks 及 Shadowsocksr 混淆
- outline:App Store
服务端
一般安装在 Linux 中,也有各个不同的实现版本,还有不同的混淆方式,插件等。 推荐使用: Shadowsocks-libev 是用纯C编写的,依赖于libev。它被设计为shadowsocks协议的轻量级实现,以尽可能降低资源使用率。
安装
服务端的安装也有不同方式:一件安装脚本、编译安装、snap 等等。
一键安装脚本
【以下使用秋水逸冰的脚本(多个可选的脚本)】 参见: 1、 https://huhao.ai/ke-xue-shang-wang-shadowsocks-quan-xi-lie-pei-zhi-zong-jie/ 2、 https://www.xiaohuai.com/3948/
- 安装:
- 获取脚本:
# 四合一脚本 wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh # Shadowsocks-python 脚本 wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh # Shadowsocks-libev 脚本 wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev.sh
- wget 默认下载到当前目录。
- 脚本可执行权限:
# 四合一脚本 chmod +x shadowsocks-all.sh # Shadowsocks-python 脚本 chmod +x shadowsocks.sh # Shadowsocks-libev 脚本 chmod +x shadowsocks-libev.sh
- 执行脚本:
# 四合一脚本 ./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log # Shadowsocks-python 脚本 ./shadowsocks.sh 2>&1 | tee shadowsocks.log # Shadowsocks-libev 脚本 ./shadowsocks-libev.sh 2>&1 | tee shadowsocks-libev.log
- 安装日志位于:“/var/log/shadowsocks.log”
- 获取脚本:
- 卸载:
# 四合一脚本 ./shadowsocks-all.sh uninstall # Shadowsocks-python 脚本 ./shadowsocks.sh uninstall # Shadowsocks-libev 脚本 ./shadowsocks-libev.sh uninstall
- 升级:
- 先:卸载旧版本;再:重新执行如上安装步骤;
编译安装
如果您使用的是 CentOS 7,则需要安装预要求才能从源代码生成。
- 安装要求:
yum install epel-release -y yum install gcc gettext autoconf libtool automake make pcre-devel asciidoc xmlto c-ares-devel libev-devel libsodium-devel mbedtls-devel -y
- 编译:
???????
- 安装:
???????
snap
Snap 是安装最新二进制文件的推荐方法。
安装:
- Install snap core: https://snapcraft.io/core
- Install from snapcraft.io:
# Stable channel sudo snap install shadowsocks-libev Edge channel: # sudo snap install shadowsocks-libev --edge
配置
(以 Shadowsocks-libev 为例:)
vi /etc/shadowsocks-libev/config.json
{
"server":"0.0.0.0",
"server_port":*****,
"password":"***************",
"timeout":300,
"user":"nobody",
"method":"********-****-********",
"fast_open":true,
"nameserver":"8.8.8.8",
"mode":"tcp_and_udp"
}
加速
安装锐速需要降级系统内核,而安装 Google BBR 则需要升级系统内核,故两者不能同时安装。
锐速
BBR、BBR PLUS、魔改BBR、锐速的脚本安装要求: 1、适用架构:KVM / Xen,不支持OpenVZ(OVZ)。 2、适用系统:CentOS 7、Debian 8、Debian 9、Ubuntu 16.04、Ubuntu 18.04。 锐速安装一键包
安装:(现在不知道哪一个可以用)
# 使用一键安装脚本 wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/serverspeeder/master/serverspeeder-all.sh && bash serverspeeder-all.sh # 或: wget -N --no-check-certificate https://github.com/91yun/serverspeeder/raw/master/serverspeeder.sh && bash serverspeeder.sh
- 不需要任何配置。
“vi /serverspeeder/etc/config”
卸载:
chattr -i /serverspeeder/etc/apx* && /serverspeeder/bin/serverSpeeder.sh uninstall -f
操作:
service serverSpeeder start|stop|restart|status # 或 /serverspeeder/bin/serverSpeeder.sh start|stop|restart|status
BBR
Google 开源了其 TCP BBR 拥塞控制算法,并提交到了 Linux 内核,从 4.9 开始,Linux 内核已经用上了该算法。根据以往的传统,Google 总是先在自家的生产环境上线运用后,才会将代码开源,此次也不例外。
安装/开启:【两种情况】
- (如果 Linux 内核在 4.9 以下)需要安装并开启 BBR:(可使用一键安装脚本)
# 安装并开启 BBR(同样是使用脚本) wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh
- (如果 Linux 内核在 4.9 及以上)只需开启 BBR 即可:
- 修改配置文件:
vim /etc/sysctl.conf # 添加如下内容 net.core.default_qdisc = fq net.ipv4.tcp_congestion_control = bbr
- 加载系统参数:
sysctl -p
- 修改配置文件:
验证 BBR 是否已经开启:
sysctl net.ipv4.tcp_available_congestion_control
- 若返回如下信息则说明已开启:
net.ipv4.tcp_available_congestion_control = bbr cubic reno
lsmod | grep bbr
- 若返回如下信息则说明已开启:
tcp_bbr 16384 1 tcp_bbr 20480 0
使用混淆协议
??????????????????
其他步骤
- 开放端口:
# 添加防火墙规则 firewall-cmd --permanent --zone=public --add-port=39451/tcp firewall-cmd --permanent --zone=public --add-port=39451/udp # 更新防火墙规则 firewall-cmd --reload # 启动|关闭|重新启动 防火墙 (有上一步则不需要) systemctl [start|stop|restart] firewalld.service
- 设置开机启动:???
systemctl start shadowsocks-server.service systemctl enable shadowsocks-server.service
# CentOS chkconfig --add ss-libev # Debian update-rc.d ss-libev defaults
- 启动:
# 启动: /etc/init.d/shadowsocks start # 停止: /etc/init.d/shadowsocks stop # 重启: /etc/init.d/shadowsocks restart # 查看状态: /etc/init.d/shadowsocks status
客户端
安装
Shadowsocks的项目链接在shadowsocks-windows。
- 下载Shadowsocks-4.1.10.0.zip,并解压到本地Shadowsocks文件夹内(
D:\Program Files (x86)\Shadowsocks
) - 启动Shadowsocks.exe会自动加载其他内容
- 覆盖备份的配置文件gui-config.json,然后重启Shadowsocks
备份
需要备份的内容:code
gui-config.json
:(D:\Program Files (x86)\Shadowsocks
)Shadowsocks使用的服务器配置文件mgwz.dll
:(D:\Program Files (x86)\Shadowsocks\ss_win_temp
)Privoxy所需的动态库(不会自动生成或下载?)
其余内容会在Shadowsocks启动时自动生成,gfwlist.txt
和pac.txt
会在从GFWList更新本地PAC时生成。
目录结构
libcrypto-1_1.dll : 加密库(没这个)- libsscrypto.dll : 加密库
- mgwz.dll : Privoxy所需的动态库
- privoxy_<随机数>.conf : Privoxy配置文件
- shadowsocks.log : SS本身的日志
- ss_privoxy.exe : Privoxy主程序
- ss_privoxy.log : Privoxy的日志
- sysproxy.exe : 用于系统代理的代理设置程序
FAQ
Shadowsocks错误:端口被占用
- Shadowsocks自启动时出现该问题,先排除其他服务或应用占用端口,确认由Shadowsocks导致
解决,重装Shadowsocks(?或删除并重新设置启动项?):
- 删除Windows启动项中的Shadowsocks;
- 备份Shadowsocks内容,并重新安装;
- 右键Shadowsocks勾选“开机启动”
如未解决,参考GitHub中项目的问题页:
Shadowsocks错误:系统保留端口
如未解决,参考GitHub中项目的问题页:
修改Shadowsocks本地端口
出现以上两个错误:“端口被占用”、“系统保留端口”,最快捷的方式就是修改ss使用的本地端口。
修改之后还需确认软件的代理方式:
- Windows系统代理:“设置”->“网络和Internet”->“代理”中,选用“手动设置代理服务器”,并设置
地址:http://localhost,端口:10800(修改的端口)
- Chrome的ProxySwitchyOmega插件:在“情景模式”->“Shadowsocks”中,设置
代理协议:SOCKS5,地址:http://localhost,端口:10800(修改的端口)
- 应用软件的代理设置:
- 使用“System Proxy Setting”,即“Windows系统代理”的设置
- 使用“Custom Proxy”,设置:
代理协议:SOCKS5,地址:http://localhost,端口:10800(修改的端口)
客户端端口问题排查总结
记:又又又一次遇到端口不能使用(被占用、系统保留端口)【2020/11/18 17:28:59】
之前使用1080端口,在某次软件更新还是系统更新之后,提示改端口为系统保留端口,查找占用进程无果的情况下,改为使用10800;昨天更新IDM并重启系统之后,提示10800被占用,改为1080提示系统保留端口,所以又又又在网上找了一圈解决方案……
排查占用(端口1080)的进程:
关闭了chrome进程数,以为能好使,但是……仍然提示“端口是系统保留端口”,并且找不到占用的进程:
系统保留端口在netstat是看不到有其他程序占用的,但你就是用不了。。。
关于此问题,shadowsocks-windows项目的端口禁止访问 #1835有描述:
这个问题并不是端口被占用,通过 netstat 里找不到占用这个端口的程序。 实际上,这个错误对应的 last-error 是 10013 (WSAEACCESS),权限不足。 根据2018年2月13日发布的 KB4074588 里的 known issue,这个补丁会调整操作系统的 reserve port ranges,可以通过运行 netsh interface ipv4 show excludedportrange protocol=tcp 查看。 在我自己的环境里,1025 ~ 1124 都被系统强制保留了,所以其他应用程序无法监听在这个端口。 workaround 要选取的端口也只能避开这些保留端口。 最后建议:ss 可以做一下 10013(WSAEACCES) 和 10048(WSAEADDRINUSE)的分类处理。毕竟看起来之后这个地方会出现坑不会少。 注1:我的系统是最新的1809,一直没有这个问题,直到上周安装了 SONY 的 Digital Paper App 附带的驱动之后触发了这个问题。另一台 surface pro 4 也装了 Digital Paper App,但是没有出现这个问题,不确定是不是因为 sp4 使用的是 Windows 10 Home 的关系。 注2:尝试使用 netsh interface ipv4 delete excludedportrange ... 会提示 access is denied,目前找不到可以认为调整的方法。
分享一下曾经找到的解决办法 由于hyper-v保留了这些端口,所以需要先关闭hyper-v,保留想要保留的端口,再开启hyper-v功能 Disable hyper-v (which will required a couple of restarts) dism.exe /Online /Disable-Feature:Microsoft-Hyper-V When you finish all the required restarts, reserve the port you want so hyper-v doesn't reserve it back netsh int ipv4 add excludedportrange protocol=tcp startport=1080 numberofports=2 netsh int ipv4 add excludedportrange protocol=tcp startport=1099 numberofports=1 netsh int ipv4 add excludedportrange protocol=tcp startport=3306 numberofports=1 3.Re-Enable hyper-V (which will require a couple of restart) dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
所以:
- 不要选用系统保留的端口;
- 对于非保留端口被占用,排查并结束对于进程即可;
【重启之前,手动退出Shadowsocks】
【2021/04/04 19:24:34】我发现:重启之前,手动退出Shadowsocks,则重启之后不会出现端口被保留的问题。【自己和自己冲突?mmp……可能哪个服务进程变量什么jb玩意儿,在重启(或关机再开机)的过程中不能被重置】
客户端“time out”问题
首先排除:
- 服务端所使用的端口是否在防火墙开启;
- 客户端是否配置了正确的端口;
- 服务器 ip、端口是否被锁;
解决:
- 更换服务器端口?(记得:防火墙开启端口并重新加载,更换本地配置)
- 重启 ss 服务?
检查 IP 是否被锁
输入 IP 检查分别在国内和国外的访问情况: https://www.vps234.com/ipchecker/