Shadowsocks和V2Ray搭建教程

avatar 2020年2月12日14:22:47来源:无二自留地Shadowsocks和V2Ray搭建教程已关闭评论

shadowsocks用的是最新源码编译和官方脚本安装两种方法,v2ray官方确实没找到编译文档,再加上go语言的特性,确实不需要那么多依赖,也就用官方脚本直接部署了。

服务端系统为Ubuntu18.04

部署Shadowsocks-libev服务端

为什么要部署libev版本的服务端呢?因为就这个版本还在更新,而且占用小,下面给出两种安装部署方法,一是官方脚本直接安装,二是最新源码进行编译安装。

官方脚本安装

mkdir ./build-area

cd build-area

//下载脚本
$ wget https://github.com/shadowsocks/shadowsocks-libev/raw/master/scripts/build_deb.sh

//给运行权限
$ chmod +x build_deb.sh

//部署
./build_deb.sh all

官方这个脚本带obfs也一起安装了,倒省事了,填上config.json配置文件也就可以运行了。

运行命令:ss-server -c /etc/shadowsocks-libev/config.json
或者:systemctl start shadowsocks

上面是第一种方法,俺用这种方法倒没感觉什么缺陷,就是shadowsocks-libev版本号好像不是最新的,下面的方法就是用最新源码进行编译。

官方源码编译,安装

编译前先更新一下系统,避免不必要的麻烦

apt update && apt upgrade

// 下载源码
git clone https://github.com/shadowsocks/shadowsocks-libev.git
cd shadowsocks-libev

// 更新子模块
git submodule update --init --recursive

// 安装依赖
apt-get install --no-install-recommends autoconf automake \
debhelper pkg-config asciidoc xmlto libpcre3-dev apg pwgen rng-tools \
libev-dev libc-ares-dev dh-autoreconf libsodium-dev libmbedtls-dev

// 编译,安装
./autogen.sh && ./configure --prefix=/usr && make

make install

配置文件

mkdir -p /etc/shadowsocks-libev

vi /etc/shadowsocks-libev/config.json

新建,修改配置如下:

# /etc/shadowsocks-libev/config.json

{
    "server":["[::0]","0.0.0.0"],
    "server_port":1024,
    "password":"https://yeahwu.com/",
    "timeout":600,
    "method":"aes-256-gcm",
    "fast_open":true,
    "plugin":"obfs-server",
    "plugin_opts":"obfs=tls;obfs-host=cloudflare.com"
}
# 多用户manager.json文件
{
    "server":["[::0]","0.0.0.0"],
    "port_password":{
        "8388":"password", # 端口号与密码
        "8389":"password" 
    },
    "timeout":600,
    "method":"chacha20-ietf-poly1305",
    "fast_open":true,
    "plugin":"obfs-server",
    "plugin_opts":"obfs=tls;obfs-host=cloudfront.net"
}

如果不加下面obfs插件,上面部署也就完成了,启动运行也就可以了,加混淆就请往下看!

启动:ss-server -c /etc/shadowsocks-libev/config.json

编译和安装 simple-obfs

apt install zlib-devel openssl-devel -y

// 下载源码
git clone https://github.com/shadowsocks/simple-obfs.git

cd simple-obfs

// 更新子模块
git submodule update --init --recursive

//编译,安装
./autogen.sh

./configure && make

make install

使用systemctl 控制

新建shadowsocks.service文件

vi /etc/systemd/system/shadowsocks.service添加内容如下:

[Unit]
Description=Shadowsocks Server
After=network.target

[Service]
ExecStart=/usr/local/bin/ss-server -c /etc/shadowsocks-libev/config.json -u
Restart=on-abort

[Install]
WantedBy=multi-user.target

完成后,就可以启动Shadowsocks了。

Systemctl重载命令: systemctl daemon-reload

启动命令: systemctl start shadowsocks

常用命令

systemctl start shadowsocks   //启动

systemctl stop shadowsocks    //停止

systemctl restart shadowsocks //重新启动

systemctl status shadowsocks  //查看状态

systemctl enable shadowsocks  //添加开机自启动

cd shadowsocks-libev && make uninstall  //卸载然后删除配置文件

ss-server -c /etc/shadowsocks-libev/config.json //前台启动

更新shadowsocks和obfs

systemctl stop shadowsocks

在 shadowsocks-libev 目录下:

cd shadowsocks-libev
git pull
./configure
make
make install
在 simple-obfs 目录下:

cd simple-obfs
git pull
./configure
make
make install
systemctl start shadowsocks

开启TCP Fast Open

vi /etc/sysctl.conf,加入如下一行

net.ipv4.tcp_fastopen = 3

执行如下命令使其生效,

sysctl -p

当然最后别忘了,在ss配置文件cofing.json里面添加:

"fast_open":true

注:目前Linux内核都是默认开启了TCP BBR,所以大家也不必多费手脚了!

v2ray服务端搭建

v2ray安装

利用官方脚本搭建v2ray服务端,记下常用命令和自己的服务端配置文件。

// 下载脚本
$ wget https://install.direct/go.sh 

// 安装v2ray
$ bash go.sh 

// 启动v2ray
$ systemctl start v2ray 

//更新服务端
$ bash go.sh

在首次安装完成之后,V2Ray 不会自动启动,需要手动运行下面启动命令。而在已经运行 V2Ray 的 VPS 上再次执行安装脚本,安装脚本会自动停止 V2Ray 进程,升级 V2Ray 程序,然后自动运行 V2Ray。在升级过程中,配置文件不会被修改。

启动命令: systemctl start v2ray

常用命令

systemctl start v2ray  //启动

systemctl stop v2ray   //停止

systemctl status v2ray     //查看状态,runing表示成功运行

systemctl reload v2ray     //重新载入

systemctl restart v2ray    //重新启动

systemctl enable v2ray     //添加开机自启动

彻底删除v2ray

停用并卸载服务

systemctl stop v2ray
systemctl disable v2ray

删除配置残留

rm -rf /etc/v2ray/*  //配置文件
rm -rf /usr/bin/v2ray/*  //程序
rm -rf /var/log/v2ray/*  //日志
rm -rf /lib/systemd/system/v2ray.service  //systemd 启动项
rm -rf /etc/init.d/v2ray  //sysv 启动项

v2ray配置文件

下面是俺的配置文件,开了动态端口,修改了一下,防Google跳出验证,Google类网站走IPv4.

文件路径 /etc/v2ray/config.json,修改config.json文件,建议本地修改好再scp到服务端,因为js文件用vi编写容易遇到缩进问题。

{
  "inbounds":[
   {
      "port": 10086,
      "protocol": "vmess",
      "settings": {
        "clients": [
          {
            "id": "dd31476c-beb0-4a64-9d5f-f618eabb2953e",
            "alterId": 64
          }
        ],
        "detour": {       // 绕行配置,即指示客户端使用 dynamicPort 的配置通信
          "to": "dynamicPort"   
        }
      }
    },
    {
      "protocol": "vmess",  
      "port": "10000-20000",   // 端口范围
      "tag": "dynamicPort",   // 与上面的 detour to 相同
      "settings": {
        "default": {
          "alterId": 64
        }
      },
      "allocate": {            
        "strategy": "random",   // 随机开启
        "concurrency": 10,      // 同时开放两个端口,这个值最大不能超过端口范围的 1/3
        "refresh": 3            // 每三分钟刷新一次
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {},
      "tag": "direct"
    },
    {
      "protocol": "freedom",    //  Google类网站走IPv4,避免跳出验证
      "settings": {
        "domainStrategy": "UseIPv4"
      },
      "tag": "ip4-out"
    },
    {
      "protocol": "blackhole",
      "settings": {},
      "tag": "blocked"
    }
  ],
  "routing": {
    "rules": [
      {
        "type": "field",
        "domain": [
          "domain:google.com"
        ],
        "outboundTag": "ip4-out"  
      },
      {
        "type": "field",
        "ip": [
          "0.0.0.0/8",
          "10.0.0.0/8",
          "100.64.0.0/10",
          "127.0.0.0/8",
          "169.254.0.0/16",
          "172.16.0.0/12",
          "192.0.0.0/24",
          "192.0.2.0/24",
          "192.168.0.0/16",
          "198.18.0.0/15",
          "198.51.100.0/24",
          "203.0.113.0/24",
          "::1/128",
          "fc00::/7",
          "fe80::/10"
        ],
        "outboundTag": "blocked"
      }
    ]
  }
}

关于本地端的应用,俺主要讲一下iOS端,因为其他Windows,Android ,Linux端官方GitHub都能找到。iOS国内只有Outline,找个美区账号可以下载 Shadowrocket ,Quantumult,Kitsunebi ,91VPN,ConnectSPro .

历史上的今天
二月
12
avatar