使用shadowsockets-libev 进行魔法访问

liujie
liujie
发布于 2023-07-28 / 255 阅读
0
0

使用shadowsockets-libev 进行魔法访问

shadowsocks 和 shadowsocks-libev 区别是什么

Shadowsocks和Shadowsocks-libev是两个不同的实现,它们之间有以下主要区别:

  1. 开发者和支持:Shadowsocks最初由clowwindy开发,并在GitHub上发布。而Shadowsocks-libev(libev表示使用了libev库)是根据Shadowsocks的设计理念进行的改进和扩展,由其他开发者维护和支持。

  2. 协议支持:Shadowsocks使用自己独特的协议,称为"原生协议"或"SS协议",可以通过混淆等方式来增加网络流量的隐蔽性。而Shadowsocks-libev除了支持原生协议外,还支持一些其他协议如Socks5、HTTP等,并且带有更多的可配置选项。

  3. 性能:Shadowsocks-libev经过对原始Shadowsocks代码的改进和优化,具有更好的性能和稳定性。它使用了更高效的I/O模型和多线程处理,能够更好地处理大量连接和高负载情况。

  4. 社区支持:Shadowsocks-libev拥有一个活跃的开源社区,提供更广泛的支持和更新。您可以在GitHub上找到该项目,并获取相关的文档、教程和问题解答。

虽然Shadowsocks-libev被认为是对原始Shadowsocks的改进和升级,但它们在基本原理和使用方式上非常相似。对于大多数用户而言,选择哪个实现取决于具体需求和个人喜好。

安装 shadowsockets-libev

要在Ubuntu上安装Shadowsocks并进行设置,以便使Mac能够通过它翻墙,您可以按照以下步骤操作:

  1. 在Ubuntu上安装Shadowsocks客户端:

    sudo apt update
    sudo apt install shadowsocks-libev
    
  2. 创建一个配置文件用于存储Shadowsocks的设置:

    sudo nano /etc/shadowsocks-libev/config.json
    
  3. 在打开的配置文件中,输入以下内容:

    {
        "server": "服务器IP地址",
        "server_port": 你的服务器端口,
        "local_address": "127.0.0.1",
        "local_port": 1080,
        "password": "你的密码",
        "timeout": 300,
        "method": "加密方法"
    }
    

    将其中的 服务器IP地址你的服务器端口你的密码加密方法 替换为实际的Shadowsocks服务器信息。

在给定的配置中,"server"是一个数组,包含两个元素:"::1"和"127.0.0.1"。这里的"server"表示Shadowsocks客户端连接的服务器地址。

  • "::1" 是IPv6环回地址的表示,类似于IPv4中的"localhost"或"127.0.0.1"。

  • "127.0.0.1" 是IPv4环回地址,也就是本地主机地址。

在这种配置下,Shadowsocks客户端会尝试先通过IPv6地址"::1"去连接服务器,如果失败再使用IPv4地址"127.0.0.1"进行连接。这样做是为了支持不同网络环境下的连接方式。

请注意,根据您的实际需求,您可以根据服务器地址的类型选择只保留其中一个地址,或根据特定网络环境进行适当调整。

要设置允许所有IP连接到Shadowsocks服务器,您可以将配置文件中的"server"字段更改为 "0.0.0.0"。以下是更新后的配置示例:

{
    "server": "0.0.0.0",
    "mode": "tcp_and_udp",
    "server_port": 8388,
    "local_port": 1080,
    "password": "xxx",
    "timeout": 86400,
    "method": "chacha20-ietf-poly1305"
}

使用上述配置,Shadowsocks服务器将监听所有可用的IPv4地址,以允许从任何IP连接到它。请注意,如果您的服务器同时支持IPv6,您还可以在"server"字段中添加"::"以支持IPv6连接。

注意:安全组打开 8388 端口,协议选择自定义tcp。

  1. 保存并关闭文件 (Ctrl + X,然后输入 Y 并按下 Enter)。

  2. 启动Shadowsocks客户端:

    sudo systemctl start shadowsocks-libev
    

现在,您已经在Ubuntu上成功安装和配置了Shadowsocks。要在Mac上使用它进行翻墙,请按照以下步骤操作:

  1. 在Mac上安装ShadowsocksX-NG或其他支持Shadowsocks协议的应用程序。

  2. 打开ShadowsocksX-NG并点击 "服务器" -> "编辑服务器订阅"。

  3. 在弹出的窗口中,输入您的Shadowsocks服务器订阅链接或服务器信息,并点击 "确定"。

  4. 返回主界面,在服务器列表中选择您配置的服务器,并点击 "启动"。

现在,您的Mac就可以通过Shadowsocks连接到Ubuntu上的服务器进行魔法了。

设置开机自动启动

要设置Shadowsocks-libev在系统启动时自动启动,您可以按照以下步骤进行操作:

  1. 创建一个Systemd服务单元配置文件:

    sudo nano /etc/systemd/system/shadowsocks-libev.service
    
  2. 在打开的文件中,输入以下内容:

    [Unit]
    Description=Shadowsocks-libev Server
    After=network.target
    
    [Service]
    ExecStart=/usr/bin/ss-server -c /etc/shadowsocks-libev/config.json
    Restart=on-failure
    User=nobody
    CapabilityBoundingSet=CAP_NET_BIND_SERVICE
    AmbientCapabilities=CAP_NET_BIND_SERVICE
    
    [Install]
    WantedBy=multi-user.target
    

    这里假设Shadowsocks-libev的可执行文件路径是 /usr/bin/ss-server,配置文件路径是 /etc/shadowsocks-libev/config.json。如果实际路径不同,请相应地修改上述命令。

  3. 保存并关闭文件 (Ctrl + X,然后输入 Y 并按下 Enter)。

  4. 启用并启动Shadowsocks-libev服务:

    sudo systemctl enable shadowsocks-libev
    sudo systemctl start shadowsocks-libev
    

现在,Shadowsocks-libev将在系统启动时自动启动,并以指定的配置运行。您可以使用以下命令验证服务是否正在运行:

sudo systemctl status shadowsocks-libev

该命令将显示服务的状态信息,包括是否处于活动状态。

客户端(电脑、手机)上设置

下载客户端:

这里以mac 设置为例 ,安装后并执行一下设置:

1.jpg

注意:加密方式要和shadowsockets-libev设置相同

image-qeja.png

注意:加密方式

添加混淆插件

安装 obfs-server

  1. 更新系统包: 在安装之前,建议更新您的系统包。在基于 Debian 或 Ubuntu 的系统上,您可以使用以下命令:

    sudo apt update 
    sudo apt upgrade
    

  2. 安装依赖obfs-server 需要一些依赖。可以使用以下命令来安装它们:

    sudo apt install build-essential autoconf libtool libssl-dev libpcre3-dev asciidoc xmlto zlib1g-dev libev-dev

  3. 获取 simple-obfsobfs-serversimple-obfs 项目的一部分。您可以从 GitHub 克隆这个项目:

    git clone https://github.com/shadowsocks/simple-obfs.git

  4. 编译安装 simple-obfs: 进入克隆的目录,并编译安装:

    cd simple-obfs 
    git submodule update --init --recursive 
    ./autogen.sh 
    ./configure && make 
    sudo make install

    注意安装的输出,如果出现Error,则安装失败,需要看失败的原因是什么,解决失败,才能继续往下走

  5. 配置 Shadowsocks 使用 obfs: 编辑您的 Shadowsocks 配置文件(通常在 /etc/shadowsocks-libev/config.json),添加或修改 pluginplugin_opts 字段。例如:

    {
      "server": ["0.0.0.0"],
      "mode": "tcp_and_udp",
      "server_port": 8388,
      "local_port": 1080,
      "password": "1qaz@WSX",
      "timeout": 86400,
      "method": "chacha20-ietf-poly1305",
      "fast_open": true,
      "plugin": "obfs-server",
      "plugin_opts": "obfs=tls;obfs-host=iosapps.itunes.apple.com"
    }

  6. 重启 Shadowsocks 服务: 保存配置文件后,重启 Shadowsocks 服务以应用更改:

    sudo systemctl restart shadowsocks-libev

  7. 检查服务状态: 检查 Shadowsocks 服务状态确保一切正常:

    sudo systemctl status shadowsocks-libev

完成这些步骤后,您的 Shadowsocks 服务器应该已经配置好了 obfs-server 插件。请确保您的 Shadowsocks 客户端也配置了相应的插件和选项,以确保正常连接。

mac 上混淆设置:

最后,在客户端上,开启插件的混淆,避免被扫描发现魔法

image-npae.png

和服务器配置中的设置保持一致:

image-thwr.png

文本为:

obfs=tls;obfs-host=iosapps.itunes.apple.com

windows 混淆设置:

安装混淆插件:

https://github.com/shadowsocks/simple-obfs

注意 windows 插件名字要和 下载的exe名称相同为:obfs-local

否则会出现:

android 混淆设置

安装混淆插件:

https://github.com/shadowsocks/simple-obfs-android/releases/tag/v0.0.5

注意,在android上安装好后,还需在客户端的插件设置里给相应的权限


评论