v2ray-plugin CentOS-7
比如 cloudflare,
- cloudflare DNS-> 添加一条 A 记录;name=域名,value=vpsIP,ttl=automatic,status=onlyDns
- cloudflare Crypto -> SSL = Flexible (如果有 Web 页面 可以设置 Full 或者 Full-strict ) ; 总是开启 HTTPS
- 如果使用 Quit ,则还需在 cloudflare Network 页面申请 Http/3 (with quit)
root 下安装
先点击下面连接查看 Go 的最新版本,我当前最新为1.12.5
- 下载安装
cd ~ && curl -O https://dl.google.com/go/go1.12.5.linux-amd64.tar.gz
- 解压
tar -C /usr/local -xzf go1.12.5.linux-amd64.tar.gz
- 添加到环境变量
vim ~/.bash_profile
- 添加以下两行内容到文末:
export GOPATH=$HOME/work
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
- 使环境变量生效
source ~/.bash_profile
- 检查版本
go version
- 方式1
git clone https://github.com/shadowsocks/v2ray-plugin.git
cd v2ray-plugin
go build
cp v2ray-plugin /usr/bin/v2ray-plugin
- 方式2 到 github release 页面直接下载对应 v2ray-plugin 执行文件,然后把该文件移动到 /usr/bin/ 目录下
cp v2ray-plugin /usr/bin/v2ray-plugin
和官方文档一样使用 acme 脚本自动申请免费证书 (免费证书有效期一般是 3 个月,
脚本会每隔 60 天自动更新一次证书有效期)
在申请之前必须先到 cloudflare 页面,点击右上角的头像,然后点击 My Profile ,在个人信息页面下拉到最后有个 API KEYs -> Global API KEY,在这里复制你的 API KEY, 同时记得你 CloundFlare 的登陆邮箱
- 申请证书
export CF_Email="CloundFlare 邮箱"
export CF_Key="API KEY"
curl https://get.acme.sh | sh
~/.acme.sh/acme.sh --issue --dns dns_cf -d 你的域名
执行完上面命令,acme 脚本就会自动帮你申请好了证书,证书存放的目录在 root/.acme.sh/你的域名/ 。里面包含了 ca.cer 、fullchain.cer | .key 等文件。
- 把证书链接放到 /etc/shadowsocks-libev/ 目录下使用
ln -s ~/.acme.sh/xxxx.com /etc/shadowsocks-libev/xxxx.com
其实 v2ray-plugin 会自动识别并且配置 acme 证书文件,你也可以不需要在自启配置文件中指定,比如像下面一样 (推荐使用上面指定完整路径的方式)
- 修改 ss 配置文件
{
"server": "0.0.0.0",
"nameserver": "8.8.8.8",
"password": "password",
"method": "xchacha20-ietf-poly1305",
"timeout": 60,
"fast_open": true,
"reuse_port": true,
"no_delay": true,
"mode": "tcp_and_udp"
}
- 修改开机自启配置文件
vim /etc/systemd/system/ss.service
- 写入:
[Unit]
Description=Shadowsocks Server
After=network.target
[Service]
ExecStart=/usr/local/bin/ss-server -c /etc/shadowsocks-libev/config.json -p 443 --plugin /usr/bin/v2ray-plugin --plugin-opts "server;tls;fast-open;host=你的域名;cert=/etc/shadowsocks-libev/你的域名/fullchain.cer;key=/etc/shadowsocks-libev/你的域名/你的域名.key;loglevel=none"
Restart=on-abort
[Install]
WantedBy=multi-user.target
上面的自启配置需要注意 5 点:
- v2ray-plugin 文件的路径要正确
- 开放 443 端口
- host=你的域名(不包含 https 或 http)
- cert=你证书存放的位置+证书名+.cer
- ket=你证书存放的位置+证书名+.key
- 检查
systemctl daemon-reload
systemctl restart ss
systemctl status ss
- 检查是否有错误。如果出现权限错误,请把 证书文件放到非 root 目录中,像上面一样,我是把所有的证书目录都放到了 /etc/shadowsocks-libev/ 中
- cloudflare 的小云朵确保是灰色的,onlyDns
- 在本地电脑上 ping 你的域名,确认对应的 ip 地址是否正确
- 请先把 v2ray-plugin-win 文件下载到本地 SS 目录下
- 服务器地址: xxxxxxx.com
- 端口: 443
- 密码和加密看自己的配置文件,必须要写对
- 插件程序:v2ray-plugin-win
- 插件选项: host=xxxxxx.com;tls
- 和 PC 差不多,从github 或 谷歌应用市场下载安装 v2ray-plugin-android,
- Trasport mode = websocket-tls
- Hostname=你的域名, 剩下默认即可。
在上面 https 的基础上(所以必须要有证书),quic 默认强制启用tls, 现在只需再修改两个地方即可,一个 ss 配置文件,一个开机自启服务文件。
国内部分地区运营商对 quic 的支持不友好, 开了反而丢包严重;
- ss 配置文件中需要关闭 udp
{
"mode": "tcp_only"
}
- ss.service 文件, 修改 mode 为 quic(官方文档最后面很详细, 不声明时 mode 默认为 websocket; quic 默认强制启用tls, 这里就不需要再添加 tls 选项了)
ExecStart=/usr/local/bin/ss-server -c /etc/shadowsocks-libev/config.json -p 443 --plugin /usr/bin/v2ray-plugin --plugin-opts "server;mode=quic;fast-open;host=你的域名;cert=/etc/shadowsocks-libev/你的域名/fullchain.cer;key=/etc/shadowsocks-libev/你的域名/你的域名.key;loglevel=none"
如果不想使用 CDN,直接在客户端的地址栏将原来的域名换成真实的VPS服务器地址即可。