标签: Shadowsocks

  • 如何在Vultr上一键部署 ShadowSocks 实现科学上网?

    如何在Vultr上一键部署 ShadowSocks 实现科学上网?

    [members_only]

    这篇 Vultr + ShadowSocks(以后简称 SS)自建梯子教程完全是针对小白。目的也是为了让新手能够快速了解 SS 的运行逻辑

    在文章最后会附上一些必要软件的下载地址,以及常见问题解答。同时还会对数据传输加密做一些简单的解释。

    注意:本文仅供学习使用,请遵守当地法律法规,学习尝试后请自行删除违规内容。

    准备工作

    • Vultr 账号,以及一台 Vultr 的 VPS 服务器。(之前使用 Vultr,目前建议大家选择狗云)
    • SSH 工具:可以用 XShell 或者 FinalShell。文末有提供地址。
    • 客户端工具:v2rayN、SS 客户端、Clash 之类的都可以。文末有提供地址。
    • 辅助工具:可以免费科学扶墙的 VPN工具(用于防止下载失效)。
    https://leepoet.cn/webnote/1861.html

    打开自己的 SSH 链接工具,并通过记录的内容进行链接(22端口)。第一次用的参考我下图填写即可(上面已经把 Vultr 换成了 狗云,所以记得填写对应的IP、账号、和密码):

    通过 FinalShell 工具链接服务器

    我这里用的是 FinalShell 工具(文末有下载地址)。其他 SSH 工具(比如 XShell 之类的)操作原理差不多,我就不演示了。

    为何博主选择用 FinalShell 工具?因为 FinalShell 不需要使用 vim 命令,就可以用图形化界面,辅助编辑文件。这对于新手来说非常友好!

    点击确定之后,如果出现下图标识就代表连接成功:

    连接成功

    输入下方代码,回车,开始安装 SS:

    apt install shadowsocks-libev

    期间会提示问题是否继续,直接输入 “y” 继续即可,我就不截图演示了。大概 30 秒就会运行完毕。完毕后输入下方指令查看运行状态:

    systemctl status shadowsocks-libev.service
    

    出现绿色的 Running(运行中)标识,即代表运行成功:

    通过 systemctl status 查询运行状态:运行成功

    大家看,选择 Ubuntu 环境的好处凸显出来了。源中自带 ss 编译文件。新手非常友好。

    同时通过上图也可以看到,SS 的配置文件 config.json 文件是安装在:etc/shadowsocks-libev/ 中的。

    你可以在 FinallShell 下方,右击刷新,并在 etc/shadowsocks-libev/ 目录中找到 config.json 文件:

    etc/shadowsocks-libev/ 目录

    双击进行编辑。注意第一行的 Servier 后面需要修改为下图中的 [“0.0.0.0”],其余的默认即可:

    编辑 config.json 文件

    为什么要修改成 [“0.0.0.0”]?因为这个配置是允许特定 IP 访问当前服务器。既然这个服务器需要做成节点,那么就需要放开所有IP 段。那么就是 “0.0.0.0”。

    记录好上图中提示的信息,并且 Ctrl+S 保存(或者菜单中选择保存)就可以。

    因为部署 Vultr 服务器,默认只开了 22 端口。而我们现在用的是 8388 端口,所以需要将 8388 端口打开。

    重要:端口号是可以自行定义的。但是定义之后,记得要在防火墙中打开端口。并且客户端中也需要同步修改

    首先用下面命令查询下端口状态:

    ufw status

    会看到目前只有 22 端口开启:

    目前只开启了 22 端口

    然后使用 allow 命令打开 8388 端口:

    ufw allow 8388

    再次通过 status 命令查看端口发现 8388 已经打开:

    8388 端口已打开

    运行 restart 重启 SS 服务,并通过 status 查看状态:

    systemctl restart shadowsocks-libev.service
    
    systemctl status shadowsocks-libev.service

    状态为 Running(运行中)就可以(之前放了示例)。

    到此,服务器端的配置就已经全部结束了。

    配置客户端:v2rayN 或 SS 客户端

    我这里使用的是 v2rayN 客户端(5.39 版本)进行演示(文末有下载地址)。SS 客户端的使用方式基本相同(后续配合插件的话就需要使用 SS 客户端)。

    推荐阅读:V2rayN 和 Clash 客户端哪个好用?

    下载 v2rayN 并解压,双击 v2rayN.exe 启动客户端。

    左上角服务器,选择添加 [ShadowSocks] 服务器,并按照上一步中的记录的 config.json 的信息在下方填写:

    添加 [ShadowSocks] 服务器,填写按照 config.json 的内容进行填写

    • 别名:随意填,就是让你标注信息的。
    • 地址:就是你的服务器 IP 地址,可以直接从 Vultr 那里复制。
    • 端口:就是上一步中记录的端口位置(可以自行调整,记得服务器端和客户端要一样)。
    • 密码:和 config.json 中的一样(********)。
    • 加密方式:和 config.json 中的一样(chacha20-ietf-poly1305)。

    小知识:SS 采用的是对称加密算法。简单说就是:上锁的和开锁的用的是同一把钥匙。所以客户端和服务器端的配置需要匹配上才能够链接。在这里就是密码和加密方式

    点击确定保存之后,在 v2rayN 中选择添加的服务器,回车启用。

    然后,电脑右下角小图标右击之后,系统代理选择:自动配置系统代理;路由:选择绕过大陆(Whitelist)模式:

    系统代理以及路由设置

    此时,再回到 v2rayN 界面,右击添加的服务器,选择测试服务器真连接延迟测试(或者 Ctrl + R)。

    如果出现测试结果,即代表链接成功:

    真连接测试:链接成功

    此时,你应该就可以愉快的科学上网了!

    但是…

    SS 裸奔(不用插件)逻辑

    以上的方式,我称为 SS 裸奔。直白的说就是:SS 会对数据加密,具有一定的隐秘性,但是依然会被防火墙识别。

    SS 裸奔示例

    我估计是这样的:

    之前 SS 的开发者被请去喝茶了,可能把 SS 的一些漏洞(或者说是用于辨别的特征)放了出来。

    防火墙会进行回放攻击(重放攻击)。就是拿着我们发送给服务器的数据包,伪装之后,发送给我们的节点服务器,并测试服务器中是否运行了 SS 服务(我估计是返回数据中有可以识别 SS 的特征\指纹之类的数据段)。

    这里不得不地说,我种花家的防火墙真牛逼!

    因为 Vultr 服务器用来搭梯子的很多,所以特定 IP 段的服务器会被重点照顾。

    所以…

    如果你用了上面的方法,并且真链接成功。那么恭喜你,你安全了。但是如果你真连接之后,节点就连不上了,就说明你运气不好,你的服务器在防火墙的监控范围内。

    这个时候你可以选择:

    • 换个服务器(IP)。有钱人真好。
    • 对数据进行二次加密。为了学习就选择这个。

    注意这个时候切换节点的端口是没有用的(毕竟服务器被关照了),只能用插件对数据进行进一步进行加密处理。逻辑大概是这样的:

    加密之后的数据在一定程度会消除特征\指纹,回放攻击无法识别数据。从而达到不会被墙的效果。

    SS 之后有个升级版 SSR。其实原理和此类似,都是对数据进行升级加密。我并不推荐 SSR,因为很久没更新的了(喝茶了?)如果你对安全性有担忧,那么就果断使用 Trojan-Go 吧

    用插件进行数据加密

    如上面的示例图。插件需要同步装在客户端以及服务器端。

    我们先来配置服务器端

    服务器端配置插件

    Ubuntu 同样内置了 SS 的插件,我们只需要回到 FinalShell 执行如下命令即可:

    apt install shadowsocks-v2ray-plugin

    然后输入文件名启动插件:

    ss-v2ray-plugin

    启用后,需要在之前的 config.json 文件中修改配置,主要就是最后的两行,如下图:

    config.json 中添加配置:重点在最后两行

    完整的代码如下图所示:

    {
        "server":["0.0.0.0"],
        "mode":"tcp_and_udp",
        "server_port":8388,
        "local_port":1080,
        "password":"p0GaoLRqia1u",
        "timeout":86400,
        "method":"chacha20-ietf-poly1305",
        "plugin":"ss-v2ray-plugin",
        "plugin_opts":"server"
    }

    记得修改完 config.json 之后 Ctrl+S 保存文件。

    回到终端,使用 restart 命令重启 SS 服务:

    systemctl restart shadowsocks-libev.service

    之后再次查看 status 就会看到其中包含了 SS 的插件:

    执行 status 命令之后会看到 SS 插件

    客户端配置插件

    应为目前 v2rayN 客户端不支持 SS 插件,所以这里我们使用 SS 客户端(下载地址在文末)。

    你需要下载两个东西:

    1. Shadowsocks-4.4.1.0 下载之后解压缩到文件夹。
    2. 还有一个是 v2ray-plugin-windows-amd64-v1.3.2.tar

    将 2 解压缩之后出来的 v2ray-plugin_windows_amd64.exe 放入到 1 解压缩之后的文件夹中,如下:

    将 v2ray-plugin_windows_amd64.exe 放入 SS 客户端目录

    双击 Shadowsocks.exe 启动 SS 客户端,并按照下图填写参数:

    SS 客户端参数填写,注意插件程序名称以及插件选项

    服务器地址、端口、密码、加密方式和 config.json 的一样。插件程序(就是你放入文件夹的文件名称)、以及插件选项 “server” 注意填写正确。

    然后右击电脑右下角小飞机图标,选择 PAC 模式(推荐)、或者全局模式。就可以合理的科学上网了!

    结语

    以上,自建梯子 Vultr + ShadowSocks(SS) 完整的过程就算结束了。这个教程看起来很长,但是实际操作只需要 10 分钟就可以完成。

    记得学习完之后,自行删除服务哦。我演示只是学习技术,不违反地区法律规定。同时演示中的服务器也不用测试,就在我打这段文字的同时,我已经将服务器删除了。

    配套软件下载地址

    下载注意事项:这些工具均上传到了 pCloud。可以直接点击链接下载。如果下载失效,或者下载速度过慢可以考虑先使用免费的 VPN 工具进行下载,然后再按照教程进行配置。

    1FinalShell.exe
    2Shadowsocks-4.4.1.0.zip
    3v2ray-plugin-windows-amd64-v1.3.2.tar.gz
    4v2rayN-Core-5.39.zip
    5免费的 VPN 工具

    额外的学习资料地址

    提前说明:GitHub 和 YouTube 在特定地区无法打开,如果你需要提前观看这些资料,请使用免费的 VPN 工具打开学习。

    GitHubhttps://github.com/shadowsocks/v2ray-plugin
    GitHubhttps://github.com/2dust/v2rayN
    GitHubhttps://github.com/shadowsocks/shadowsocks-windows
    YouTube电玩科技AK:https://www.youtube.com/watch?v=ePxnyW7iju4
    YouTube不良林:https://www.youtube.com/watch?v=3ivwonJuqyI

    [/members_only]

  • Shadowsocks/SS一键脚本Ubuntu版:快速搭建个人代理服务

    Shadowsocks/SS一键脚本Ubuntu版:快速搭建个人代理服务

    Shadowsocks(简称SS)是一款轻量级、高效的代理工具,特别适合个人用户搭建科学上网环境。本文将介绍在Ubuntu系统上使用一键脚本快速部署Shadowsocks服务的方法。

    [members_only]

    Ubuntu 系统的Shadowsocks/SS的一键安装脚本已经写好,github地址: Github

    提示:这是自行搭建科学上网环境的第三步,请确认已经做了前两步:

    1. 购买服务器。
    2. 连接到服务器,Windows系统请参考 Bitvise连接Linux服务器教程

    如果你有域名,强烈建议使用 v2ray带伪装一键脚本能有效应付近些天的疯狂封杀,提供稳如狗的体验!

    使用教程

    终端登录到服务器(windows系统请参考Bitvise连接Linux服务器教程),在终端(黑框框)里输入如下命令:

    bash <(curl -sL https://raw.githubusercontent.com/hijkpw/scripts/master/ubuntu_install_ss.sh)

    按回车键,屏幕出现“请设置SS的密码(不输入则随机生成)” 的提示,按照提示设置密码(SS的密码,例如1234abcd,不是买服务器后台的密码)、端口(SS的端口,例如2345,不能是22)并选择加密方式。接下来屏幕上开始疯狂出现一堆你看得懂也可能看不懂的东西,如果卡住请耐心等待,直到安装成功,屏幕输出SS的配置信息。如果安装过程卡住,请耐心等待几分钟;如果期间网络断开(windows上表现为黑框框中或者顶部标题出现disconnected字样,mac表现为终端出现“closed by remote host”或”broken pipe”),请重新连接后再次执行命令

    安装成功后的界面如下:

    ubuntu ss一键脚本安装成功

    到此服务端配置完毕,服务器可能会自动重启,windows终端出现“disconnected”,mac出现“closed by remote host”说明服务器重启了,如果没提示重启则不需要

    SS一键脚本做了如下事情:

    1. 更新系统到最新版
    2. 安装bbr加速模块
    3. 通过交互式安装SS,并设置开机启动

    客户端下载和配置

    接下来是科学上网最后一步:下载客户端,并参考页面中的配置教程进行配置:

    Shadowsocks/SS windows客户端下载

    SS是Shadowsocks的简称,也被称为影梭、酸酸、小飞机、纸飞机,是目前主流的科学上网工具,官方网站是https://shadowsocks.org(已被墙)。

    最新版Shadowsocks/SS windows客户端下载:

    本地下载:Shadowsocks-4.3.1.0.zip

    官网下载:官网下载链接

    此外,V2ray客户端都可以使用SS协议,因此用V2ray客户端也可以。

    Shadowsocks/SS安卓客户端下载

    最新版ss安卓客户端下载:

    本地下载: Shadowsocks 5.1.3.apk

    官网下载:官网下载链接

    Shadowsocks/SS ios客户端下载

    因政策原因,国内apple id无法下载ss的客户端。为了在你的iphone/ipad上下载可用的ss客户端,你需要一个境外apple id登录app store,然后再下载需要的软件。切换apple id下载其它国家和地区的应用。

    app store中, 免费的ss ios客户端有:

    • Mume(图标是一朵梅花,有红梅/黑梅两个版本,黑梅免费且内置免费节点)
    • Potatso Lite
    • NetShuttle(网际飞梭)
    • Sockswitch(没有中文界面)
    • ConnectSPro
    • ShadowLink
    • Brook(只支持aes-256-cfb算法)
    • Surge(高级工具,不适合新手)
    • shadowrock

    免费ss ios客户端个人推荐使用Mume和Potatso lite,简洁好用。

    下载客户端配置好后,就可以愉快的上外网了!

    其他

    1. 查看ss程序运行状态/配置参数:bash <(curl -sL https://raw.githubusercontent.com/hijkpw/scripts/master/ubuntu_install_ss.sh) info

    2.  更改密码、端口、加密方式最简单方法:重新运行一次安装脚本;

    3. SS管理命令:

    启动:systemctl start shadowsocks-libev

    停止:systemctl stop shadowsocks-libev

    重启:systemctl restart shadowsocks-libev

    4. 更新SS到最新版:重新运行一次脚本

    5. 卸载SS:bash <(curl -sL https://raw.githubusercontent.com/hijkpw/scripts/master/ubuntu_install_ss.sh) uninstall

    [/members_only]