在 Ubuntu 上搭建可 UDP 转发的 Shadowsocks-go

May 10, 2014 ☼ ShadowsocksUbuntu

首先,你需要一台运行 Ubuntu 64 位的 VPS。

1. 给系统的软件都升级一下:

apt-get update
apt-get upgrade

2. 下载解压 Shadowsocks-go

wget https://github.com/lixin9311/shadowsocks-go/releases/download/1.1.4-udp/ss-server-linux-amd64.zip
gunzip ss-server-linux-amd64.zip
chmod +x server

3. 优化 Shadosocks (Xen 和 KVM 下有效)

编辑 limits.conf

nano /etc/security/limits.conf

添加以下两行

soft nofile 51200
* hard nofile 51200

使之生效

ulimit -n 51200

编辑 /etc/sysctl.conf

nano /etc/sysctl.conf

添加以下参数

fs.file-max = 51200
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.core.netdev_max_backlog = 250000
net.core.somaxconn = 4096
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_congestion_control = hybla (高延迟网络使用)
net.ipv4.tcp_congestion_control = cubic (低延迟网络使用)

使之生效

sysctl -p

4. 后台运行 Shadosocks-libev

新建一个 shadowsocks.json 进行配置

nano /etc/shadowsocks.json

添加信息后保存

{
  "server":"127.0.0.1",
  "server_port":8388,
  "local_port":1080,
  "password":"barfoo!",
  "method": "aes-128-cfb",
  "timeout":600
}

用 nohup 后台运行

nohup ./server -c /etc/shadowsocks.json -u &;

5. Windows 下的客户端

到第五步,基本上就是搭建完成了,当然每次服务器重启,都必须把第五步重新来一遍。接下来就是在 Windows 上的客户端了,客户端的选择比较多,如:Shadowsocks-csharpShadowsocks-Qt5