发布时间: 2018-12-07 11:45:28
最后更新: 2018-12-09 18:17:09
搭建私有的代理服务器
简介
当你想要去 google 查询资料时,当你玩某款海外游戏而延时高时,你可能需要使用代理服务来加速你的网络。
你可以购买服务,但懂技术的你为何还要去买其它人提供服务呢?来跟着这个教程轻松搭建私有的代码服务。
背景
最近买了三台服务器,准备近期搭建一套 k8s 集群学习一下,因为其中一步需要去 google 的服务拉取镜像,所以就有了这一篇文章。
准备
你需要准备一台海外的服务器,可以访问国内外网络,延迟不是很高的服务器。
为了便于安装,你需要先安装 Docker
安装 Docker (已安装的忽略)
开始
安装 Shadowsocks 服务端
$ docker run --restart always -dt --name ss -p 8989:8989 -p 8990:8990/udp mritd/shadowsocks -s "-s 0.0.0.0 -p 8989 -m aes-256-cfb -k youpassword --fast-open" -x -e "kcpserver" -k "-t 127.0.0.1:8989 -l :8990 --mode fast2"
命令解释
-s "-s 0.0.0.0 -p 8989 -m aes-256-cfb -k youpassword --fast-open": -s 后面的字符串为 shadowsocks-libev 的参数
-s 0.0.0.0编写的 IP, 全 0 表示绑定在所有 IP上,-p 8989绑定端口,可以改成你想绑定的端,
-m aes-256-cfb加密方式,
-k youpassword设置密码,youpassword请改成你想设置的密码,
--fast-open开启 tcp fast open, 这是一种能够在TCP连接建立阶段传输数据的机制。使用这种机制可以将数据交互提前,降低应用层事务的延迟。-x: 开启 kcptun 支持-e "kcpserver": 指定 kcptun 命令-k "-t 127.0.0.1:8989 -l :8990 --mode fast2": kcptun 参数字符串,
-t 127.0.0.1:8989绑定的 IP 与端口,
-l :8990kcptun 服务器监听地址(默认值:29900),
--mode fast2配置文件:fast3,fast2,fast,normal,manual(默认值:“fast”)更多详细的 kcptun 配置可见 kcptun 项目
执行命令成功后
按以上命令启动后,你的代理服务 shadowsocks 将启动在 8989, 你的 kcptun 服务将启动在 8990端口,如果你是以下客户端,可下载相应的客户端进行连接。
其它客户端可自行寻找
Shadowsocks 支持选项
-m: 指定 shadowsocks 命令,默认为ss-server-s: shadowsocks-libev 参数字符串-x: 开启 kcptun 支持-e: 指定 kcptun 命令,默认为kcpserver-k: kcptun 参数字符串-r: 使用/dev/urandom来生成随机数
Shadowsocks 选项描述
-m: 参数后指定一个 shadowsocks 命令,如 ss-local,不写默认为 ss-server;该参数用于 shadowsocks 在客户端和服务端工作模式间切换,可选项如下:ss-local、ss-manager、ss-nat、ss-redir、ss-server、ss-tunnel-s: 参数后指定一个 shadowsocks-libev 的参数字符串,所有参数将被拼接到ss-server后-x: 指定该参数后才会开启 kcptun 支持,否则将默认禁用 kcptun-e: 参数后指定一个 kcptun 命令,如 kcpclient,不写默认为 kcpserver;该参数用于 kcptun 在客户端和服务端工作模式间切换,可选项如下:kcpserver、kcpclient-k: 参数后指定一个 kcptun 的参数字符串,所有参数将被拼接到kcptun后-r: 修复在 GCE 上可能出现的This system doesn't provide enough entropy to quickly generate high-quality random numbers.错误
Kcptun 支持选项及解释
- –listen value, -l value kcp server listen address (default: “:29900”)
- –target value, -t value target server address (default: “127.0.0.1:12948”)
- –key value pre-shared secret between client and server (default: “it’s a secrect”) [$KCPTUN_KEY]
- –crypt value aes, aes-128, aes-192, salsa20, blowfish, twofish, cast5, 3des, tea, xtea, xor, sm4, none (default: “aes”)
- –mode value profiles: fast3, fast2, fast, normal, manual (default: “fast”)
- –mtu value set maximum transmission unit for UDP packets (default: 1350)
- –sndwnd value set send window size(num of packets) (default: 1024)
- –rcvwnd value set receive window size(num of packets) (default: 1024)
- –datashard value, –ds value set reed-solomon erasure coding - datashard (default: 10)
- –parityshard value, –ps value set reed-solomon erasure coding - parityshard (default: 3)
- –dscp value set DSCP(6bit) (default: 0)
- –nocomp disable compression
- –sockbuf value (default: 4194304)
- –keepalive value (default: 10)
- –snmplog value collect snmp to file, aware of timeformat in golang, like: ./snmp-20060102.log
- –snmpperiod value snmp collect period, in seconds (default: 60)
- –pprof start profiling server on :6060
- –log value specify a log file to output, default goes to stderr
- –quiet to suppress the ‘stream open/close’ messages
- -c value config from json file, which will override the command from shell
- –help, -h show help
- –version, -v print the version