0%

【问题解决】科学上网简单搭建

linux下科学上网简单搭建

linux下利用shadowsock+kcptun+udp2raw的科学上网搭建。

本文适读人群

  1. 对linux服务有简单了解
  2. 对科学上网稳定性有强迫,在使用shadowsock+kcptun+udp2raw会让科学上网非常稳定不容易掉包

本文能够知道什么

  1. linux下成功使用shadowsock+kcptun+udp2raw搭建科学上网

本文不知道什么

  1. 搭建工具原理

VPS购买

  1. 我买的是digitalocean价格在5刀一个月偏贵,只要是国外服务器就行。

shadowsock搭建

  1. 下载shadowsock已发布的版本https://github.com/shadowsocks/shadowsocks-rust/releases,找一个最新版本下载即可,或者用命令 wget https://github.com/shadowsocks/shadowsocks-rust/releases/download/v1.6.10/shadowsocks-v1.6.10-release.x86_64-unknown-linux-musl.tar.xz即可下载至本地;

  2. 本地压缩包解压后我们要使用的有两个文件,ssserver:shadowsock的服务端,sslocal:shadowsock的客户端;

    客户端配置

  3. sslocal二进制拷贝至/usr/local/bin/

    sudo cp sslocal /usr/local/bin

  4. 创建配置文件

    sudo vim /etc/shadowsocks.json

    1
    2
    3
    4
    5
    6
    7
    8
    9
    {
    "server":"127.0.0.1",
    "server_port":30001,
    "local_address":"127.0.0.1",
    "local_port":9872,
    "password":"rtqqer190",
    "timeout":300,
    "method":"aes-256-gcm"
    }
  5. 创建开机启动服务

    sudo vim /lib/systemd/system/ss-server.service

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [Unit]
    Description=shadowsocks server daemon
    After=syslog.target network.target

    [Service]
    Type=simple
    # 关键就是这行,确定我们的程序文件,以及配置文件的路径
    ExecStart=/usr/local/bin/sslocal -c /etc/shadowsocks.json

    [Install]
    WantedBy=multi-user.target
  6. 启动服务并设置开机启动

    systemctl start ss-server.service
    systemctl enable ss-server.service

服务端配置

  1. ssserver二进制拷贝至/usr/local/bin/

    sudo cp ssserver /usr/local/bin

  2. 创建配置文件

    sudo vim /etc/shadowsocks.json

    1
    2
    3
    4
    5
    6
    7
    8
    9
    {
    "server":"::",
    "server_port":39201,
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"rtqqer190",
    "timeout":300,
    "method":"aes-256-gcm"
    }
  3. 创建开机启动服务

    sudo vim /lib/systemd/system/ss-server.service

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [Unit]
    Description=shadowsocks server daemon
    After=syslog.target network.target

    [Service]
    # 关键就是这行,确定我们的程序文件,以及配置文件的路径
    ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks.json

    [Install]
    WantedBy=multi-user.target
  4. 启动服务并设置开机启动

    systemctl start ss-server.service
    systemctl enable ss-server.service

kcptun搭建

  1. 下载kcptun已发布的版本https://github.com/xtaci/kcptun/releases,找一个最新版本下载即可,或者用命令wget https://github.com/xtaci/kcptun/releases/download/v20220628/kcptun-linux-amd64-20220628.tar.gz即可下载至本地;

  2. 本地压缩包解压后我们要使用的有两个文件,server_linux_amd64:kcptun的服务端,client_linux_amd64:kcptun的客户端;

    客户端配置

  3. client_linux_amd64二进制拷贝至/usr/local/bin/

    sudo cp client_linux_amd64 /usr/local/bin

  4. 创建开机启动服务

    sudo vim /lib/systemd/system/kcptun.service

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [Unit]
    Description=kcptun-server Service
    After=network.target
    Wants=network.target

    [Service]
    Type=simple
    PIDFile=/var/run/kcp-server.pid
    # 重要的就是下面的这句话
    ExecStart=/usr/local/bin/client_linux_amd64 -l :30001 -r 127.0.0.1:30001 --crypt salsa20 --key "lch0719" --nocomp
    Restart=on-abnormal

    [Install]
    WantedBy=multi-user.target
  5. 启动服务并设置开机启动

    systemctl start kcptun.service
    systemctl enable kcptun.service

服务端配置

  1. server_linux_amd64二进制拷贝至/usr/local/bin/

    sudo cp server_linux_amd64 /usr/local/bin

  2. 创建配置文件

    sudo vim /etc/kcptun.json

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    {
    "listen":":8400",
    "target":"127.0.0.1:39201",
    "crypt":"salsa20",
    "mode":"fast2",
    "key":"lch0719",
    "nocomp":true,
    "keepalive":10,
    "nodelay":0,
    "mtu":1350,
    "dscp":0,
    "sockbuf":4194304,
    "nc":1,
    "resend":2,
    "parityshard":3,
    "rcvwnd":4096,
    "interval":20,
    "sndwnd":4096,
    "datashard":10
    }
  3. 创建开机启动服务

    sudo vim /lib/systemd/system/kcptun.service

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [Unit]
    Description=kcptun-server Service
    After=network.target
    Wants=network.target

    [Service]
    Type=simple
    PIDFile=/var/run/kcp-server.pid
    # 重要的就是下面的这句话
    ExecStart=/usr/local/bin/kcptun -c /etc/kcptun.json
    Restart=on-abnormal

    [Install]
    WantedBy=multi-user.target
  4. 启动服务并设置开机启动

    systemctl start kcptun.service
    systemctl enable kcptun.service

udp2raw搭建

  1. 下载udp2raw已发布的版本https://github.com/wangyu-/udp2raw-tunnel,找一个最新版本下载即可;

  2. 本地压缩包解压后我们要使用指定架构版本udp2raw_amd64,udp2raw为服务端客户端一体;

    客户端配置

  3. udp2raw_amd64二进制拷贝至/usr/local/bin/

    sudo cp client_linux_amd64 /usr/local/bin

  4. 创建开机启动服务

    sudo vim /lib/systemd/system/udp2raw.service

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [Unit]
    Description=udp2raw-server Service
    After=network.target
    Wants=network.target

    [Service]
    Type=simple
    PIDFile=/var/run/kcp-server.pid
    # 重要的就是下面的这句话
    ExecStart=/usr/local/bin/udp2raw_amd64 -c -l0.0.0.0:30001 -r <服务器ip地址>:<服务器udp端口,比如我这里就是:4096> -k "lch0719"
    Restart=on-abnormal

    [Install]
    WantedBy=multi-user.target
  5. 启动服务并设置开机启动

    systemctl start udp2raw.service
    systemctl enable udp2raw.service

服务端配置

  1. udp2raw_amd64二进制拷贝至/usr/local/bin/

    sudo cp server_linux_amd64 /usr/local/bin

  2. 创建开机启动服务

    sudo vim /lib/systemd/system/udp2raw.service

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [Unit]
    Description=udp2raw-server Service
    After=network.target
    Wants=network.target

    [Service]
    Type=simple
    PIDFile=/var/run/kcp-server.pid
    # 重要的就是下面的这句话
    ExecStart=/usr/local/bin/udp2raw_amd64 -s -l0.0.0.0:4096 -r127.0.0.1:8400 -a -k "lch0719"
    Restart=on-abnormal

    [Install]
    WantedBy=multi-user.target
  3. 启动服务并设置开机启动

    systemctl start udp2raw.service
    systemctl enable udp2raw.service

谷歌设置shadowsock

  1. 首先下载谷歌插件SwitchyOmega
  2. auto switch配置规则列表网址https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt
  3. proxy 配置代理协议Sock5,代理服务器127.0.0.1,代理端口为刚才shadowsock端口9872
  4. 不代理列表配置
    1
    2
    3
    127.0.0.1
    ::1
    localhost

终端配置科学上网

sudo apt install proxychains4
sudo vim /etc/proxychains4.conf
在[Proxylist]下增加:sock4 127.0.0.1 9872