我发现在Linux下,Python版的SSR效果不是很好,使用下来有并发数限制。C效率不错,SSR也提供libev版。libev版编译安装后会产生3个bin:ss-local, ss-redir和ss-nat。
ss-local的用法和Python版的sslocal用法几乎是一模一样,这里不作介绍。本文主要介绍的是ss-redir和ss-nat。但是咱们还得先从编译开始。
环境:Fedora 26 x64,关闭并禁用firewalld,命令都在终端上执行。
编译环境:安装dnf groupinstall "C Development Tools and Libraries"
以及安装xmlto和asciidoc
编译
用git clone https://github.com/shadowsocksr-backup/shadowsocksr-libev到目录,进入shadowsocksr-libev文件夹.
./configure
如果没报错就进行下一步,报错就把缺少的软件安装到系统里。
make -j`nproc` && sudo make install
安装完成
使用
准备一个json配置文件:
{ "server": "1.2.3.4", "server_port": 443, "local_address": "127.0.0.1", "local_port": 8088, "password": "password", "method": "aes-256-cfb", "protocol": "auth_chain_a", "protocol_param": "", "obfs": "tls1.2_ticket_auth", "obfs_param": "cloudfront.com,cloudflare.com", "timeout": 120, "udp_timeout": 60, "dns_ipv6": true, "connect_verbose_info": 1, "redirect": "", "fast_open": true }
以上参数根据自己的服务器配置修改,并请注意C版不支持fastauth。保存为ssr.json
输入命令
ss-redir -c ssr.json -v -u
开启透明代理,保持终端运行。
在root下输入
ss-nat -s 1.2.3.4 -l 8088 -u -o
现在所有你用tcp的程序都走ssr了,但icmp包和udp依然走默认网关。
在路由器上使用ss-redir可以转发局域网流量。
用完后在root下输入
ss-nat -f
恢复防火墙规则,最后ctrl+c把ss-redir关闭了。