为了避开敏感词,文中涉及的请按提示替换阅读:
下文中涉及的V2Yay,Y是R
路径和配置文件中用到的V2Yay请手动更改为小写。
树莓派固件下载:
google drive 或者openwrt:
https://drive.google.com/drive/folders/1_P2RoPbguY99qJxmCU4SKUgP8Kg0Xr03
https://openwrt.cc/releases/targets/bcm27xx/bcm2711/
根据对应的型号下载
我树莓派4B:
openwrt-bcm27xx-bcm2711-rpi-4-ext4-factory.img.gz 或者 immortalwrt-bcm27xx-bcm2711-rpi-4-ext4-factory.img.gz
建议下载factory版本。
使用balenaEtcher将固件烧写进SD卡。
插入SD卡开机。
下面讲解旁路由设置:
树莓派开机之后,用网线将树莓派与PC连接。
树莓派默认网址是192.168.1.1,请手动设置PC的IP和树莓派同一网段。
密码是password。
通过浏览器登录树莓派系统。
每设置一步点击一次保存,先不要点击“保存&应用”。
下面开始设置防火墙
到这里了,点击保存&应用,不要着急关闭页面。
等待的同时在浏览器中新建一个标签页输入192.168.1.10看看能否进入树莓派系统。
如果能进入,则证明已经设置成功,否则请返回前一个标签页,在 ”网络->接口“ 页面点击”保存&应用“。
成功进入树莓派openwrt之后请重新检查一遍设定,有时候保存会失败,所以需要做double check。
稍等个10秒重复过程看看能否进入192.168.1.10。
成功之后,将PC网线插入到家用路由器,登录家用路由器,将网关更改为192.168.1.5。
树莓派关机,使用网线将树莓派连接到家用路由器,开机。
树莓派开机完成之后,在PC端浏览器输入192.168.1.10重新登录到树莓派管理系统。
在”服务->passwall“右侧的页面点击 ”百度连接“,测试树莓派是否已经联网。
将PC电脑的网关和DNS地址设置为树莓派地址192.168.1.10。
此时,PC可以通过树莓派上国内网站了。
1. 安装v2yay
使用xshell通过ssh登录VPS,VPS记得关闭密码认证,只使用Key认证。
防止恶意试探攻击。
1.1) // 安装执行程序和 .dat 资料文件
# bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2yay/master/install-release.sh)
1.2) 需要卸载程序时,可以使用移除 v2yay命令
# bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2yay/master/install-release.sh) --remove
1.3) v2yay的文件安装列表
installed: /usr/local/bin/v2yay
installed: /usr/local/bin/v2ctl
installed: /usr/local/share/v2yay/geoip.dat
installed: /usr/local/share/v2yay/geosite.dat
installed: /usr/local/etc/v2yay/config.json
installed: /var/log/v2yay/
installed: /var/log/v2yay/access.log
installed: /var/log/v2yay/error.log
installed: /etc/systemd/system/v2yay.service
installed: /etc/systemd/system/v2yay@.service
2. 安装TLS 分流器
bash <(curl -L -s https://raw.githubusercontent.com/liberal-boy/tls-shunt-proxy/master/dist/install.sh)
由于目前单纯的VMESS加密已经不太保险,所以使用TLS分流器封装数据传输,这需要一个能够访问的域名。
目前4.44以后版本v2yay服务已经开始拒绝单纯的VMESS加密数据请求,所以没有域名的伙计需要找到4.34以下的版本来使用。
老版本搭建和配置方法笔者不赘述了,使用老版本需要承担很大的被拦截封禁的风险。
3. 购买域名
笔者购买的是www.name.com的域名,也有免费的域名,需要自行决定。
Name.com域名激活设置:
Domain Details 中
NAMESERVERS点击Use Default Nameservers选择默认值,点击Update Save保存结果
Manage DNS Records 添加DNS记录
第一条HOST留空,ANSWER输入VPS的IP地址,点击ADD添加
第二条HOST输入www,ANSWER输入VPS的IP地址,点击ADD添加
第三条HOST输入*,ANSWER输入VPS的IP地址,点击ADD添加
大功告成,现在域名已经可以指向VPS的IP了。
4. 修改TLS配置文件
配置文件路径:/etc/tls-shunt-proxy/config.yaml
相比TCP,Domain Socket(简称DS)更为高效。
所以这里TLS分流器与服务端v2yay的通信使用DS。
客户端v2yay(手机平板PC)与服务器分流器的通信使用TLS(数据类流似HTTPS)。
TLS over TCP DS
客户端 v2yay --------------------- TLS 分流器 ----------- 服务端 v2yay
配置文件内容如下:
1 # listen: 监听地址
2 listen: 0.0.0.0:443
3
4 # vhosts: 按照按照 tls sni 扩展划分为多个虚拟 host
5 vhosts:
6
7 # name 对应 tls sni 扩展的 server name
8 - name: example.com
9
10 # tlsoffloading: 解开 tls,true 为解开,解开后可以识别 http 流量,适用于 vmess over tls 和 http over tls (https) 分流等
11 tlsoffloading: true
12
13 # managedcert: 管理证书,开启后将自动从 LetsEncrypt 获取证书,根据 LetsEncrypt 的要求,必须监听 443 端口才能签发
14 # 开启时 cert 和 key 设置的证书无效,关闭时将使用 cert 和 key 设置的证书
15 managedcert: true
16
17
18 # alpn: ALPN, 多个 next protocol 之间用 "," 分隔
19 alpn: h2,http/1.1
20
21 # protocols: 指定 tls 协议版本,格式为 min,max , 可用值 tls12(默认最小), tls13(默认最大)
22 # 如果最小值和最大值相同,那么你只需要写一次
23 # tls12 仅支持 FS 且 AEAD 的加密套件
24 protocols: tls12,tls13
25
26 # http: 识别出的 http 流量的处理方式
27 http:
28
29 # fileServer 支持 h2c, 如果使用 fileServer 处理 http, 且未设置 paths, alpn 可以开启 h2
30 handler: fileServer
31
32 # args: 静态网站的文件路径
33 args: /var/www/html
34
35 # default: 其他流量处理方式
36 default:
37
38 # handler: proxyPass 将流量转发至另一个地址
39 handler: proxyPass
40
41 # args: 转发的目标地址
42 # args: 127.0.0.1:40001
43 args: unix:@v2yay.sock
4. 修改VPS服务器 v2yay 配置文件
v2yay的配置文件路径:/usr/local/etc/v2yay/config.json
请使用uuid命令生成自己的id,并进行替换。
1 {
2 "log": {
3 "loglevel": "warning",
4 "access": "/var/log/v2yay/access.log",
5 "error": "/var/log/v2yay/error.log"
6 },
7 "inbounds": [
8 {
9 "protocol": "vmess",
10 "listen": "127.0.0.1",
11 "port": 40001,
12 "settings": {
13 "clients": [
14 {
15 "id": "f2435e5c-9ad9-4367-836a-8341117d0a5f"
16 }
17 ]
18 },
19 "streamSettings": {
20 "network": "ds",
21 "dsSettings":{
22 "path":"@v2yay.sock",
23 "abstract":true
24 }
25 }
26 }
27 ],
28 "outbounds": [
29 {
30 "protocol": "freedom"
31 }
32 ]
33 }
5. 重启服务
systemctl daemon-reload
systemctl restart v2yay
systemctl restart tls-shunt-proxy
6. 查看服务运行状态
systemctl status v2yay
systemctl status tls-shunt-proxy
7. 本地配置
旁路由openwrt的passwall设置:
地址填写之前购买的域名地址。
端口填写443。
协议选择VMESS。
AlterID需要设置为0。
勾选tls,其它选项填写与tls配置文件对应的数值。
点击保存&应用,等待完成之后点击 “节点检测” 测试和VPS的连通性。
连通之后点击 “谷歌连接” 测试数据传输的连通性。
此时无论电脑,手机还是平板,手动将网关和DNS设置树莓派地址192.168.1.10。
都可以无缝科学获取网路信息了。
这个旁路由会自动区分国内和国外的IP,国内走直连,国外走VPS。
如果没有树莓派或者不想改网关和DNS的话,
需要在手机平板和电脑PC安装v2yay客户端并单独配置。
客户端配置如下,记得address替换为服务器配置的域名,id替换为服务器匹配的值:
1 {
2 "inbounds": [
3 {
4 "port": 1080,
5 "listen": "127.0.0.1",
6 "protocol": "socks"
7 }
8 ],
9 "outbounds": [
10 {
11 "protocol": "vmess",
12 "settings": {
13 "vnext": [
14 {
15 "address": "example.com",
16 "port": 443,
17 "users": [
18 {
19 "id": "f2435e5c-9ad9-4367-836a-8341117d0a5f",
20 "security": "none"
21 }
22 ]
23 }
24 ]
25 },
26 "streamSettings": {
27 "network": "tcp",
28 "security": "tls"
29 }
30 }
31 ]
32 }