felix-fly / v2ray-openwrt

路由器Openwrt手工/脚本/ipk包安装V2ray简单流程
658 stars 159 forks source link

目录

关于 v2ray-openwrt

本文为在路由器 openwrt 中使用 v2ray 的简单流程,相关的配置说明请参考官方文档。

如果你有类似 k2p 这种可以刷 padavan 固件的路由器,也可以自己打造一款科学上网神器。

想买路由?换路由?这里有一份秘籍可供参考

前段时间 v2ray 新增了 xtls 协议,性能大幅提升,但是从 4.33 开始由于某些原因又全面移除了该协议。

现在 xray 独立发布了,对于性能有要求的小伙伴可以前去体验 xtls 的效果。

xray 更新加入了 gRPC 协议,点击下面了解一下?

xray 新协议 gRPC 使用体验,性能优异,未来或可全面替代 ws

为了方便小伙伴们,这里给出参考配置文件:

注意替换 == 包含的内容为你自己的配置,路由部分使用自定义的 site 文件,支持 gw 上网及各种广告过滤。

此方案相对简单,适合对性能要求不高,只要能正常爬网即可的情况使用,有更高要求的请看下面的方案。

优化方案 v2ray-dnsmasq-dnscrypt

如果 v2ray 一站式服务的方式不能满足你的需求,或者遇到了性能瓶颈(下载慢),可以试试另外一种优化方案:

高速方案 openwrt-raspberry

使用树莓派 4B 安装 openwrt 配置独立服务 trojan/v2ray,千兆高速解决方案,更高!更快!更强!性价比超软路由!

安装方式

自行构建 ipk 安装包

看到小伙伴有这个想法,花了点时间,弄了个脚本,可以自行构建 ipk 包,方便到 openwrt 中安装

先克隆项目到某个 linux 环境下,windows 的 wsl 未做测试,理论上应该也可以

git clone https://github.com/felix-fly/v2ray-openwrt.git

进入项目目录,运行脚本,参数为 CPU 平台,版本不指定默认为最新版

./package.sh amd64

生成的 ipk 包在当前路径下,形如 v2ray-xxx.ipk

路由安装后需要自行修改配置文件

/etc/v2ray/config.json

对路由操作不熟悉的可以在打包前先修改

./package/data/etc/v2ray/config.json

需要使用 v2ray 路由策略也可以自行在此路径下加入 site.dat 等文件

可选的平台参数:

脚本安装(路由)

路由器 CPU 平台请自行查询确认,可选的平台参数同上

ssh 登陆到路由器执行脚本,注意替换平台名称,路由器需联网及已安装 wget。

wget https://raw.githubusercontent.com/felix-fly/v2ray-openwrt/master/install.sh
chmod +x install.sh
./install.sh 386

安装过程中需输入 server 域名及用户 id,对于 FPU 选项,如果 CPU 不支持硬件浮点计算,则需要开启 FPU。

脚本默认的 v2ray 版本可能不是最新,安装时可以手动输入当前最新版本。

手动安装方式(电脑)

下载 v2ray

release页面提供了各平台下的 v2ray 执行文件,可以直接下载使用。

默认已经过 upx 压缩,不支持压缩的保持不变。压缩包中仅包含 v2ray 执行文件,因为已经编译支持了 json 配置文件,运行不需要 v2ctl。

上传软件及客户端配置文件

mkdir /etc/config/v2ray
cd /etc/config/v2ray
# 上传v2ray、config.json文件到该目录下,配置文件根据个人需求修改
chmod +x v2ray

添加服务

vi /etc/config/v2ray/v2ray.service

贴入以下内容保存退出

#!/bin/sh /etc/rc.common
# "new(er)" style init script
# Look at /lib/functions/service.sh on a running system for explanations of what other SERVICE_
# options you can use, and when you might want them.

START=80
ROOT=/etc/config/v2ray
SERVICE_WRITE_PID=1
SERVICE_DAEMONIZE=1

start() {
  service_start $ROOT/v2ray
}

stop() {
  service_stop $ROOT/v2ray
}

服务自启动

chmod +x /etc/config/v2ray/v2ray.service
cp /etc/config/v2ray/v2ray.service /etc/init.d/v2ray
/etc/init.d/v2ray enable

开启

/etc/init.d/v2ray start

关闭

/etc/init.d/v2ray stop

配置透明代理(可选)

使用 iptables 实现,当前系统是否支持请先自行验证。开启UDP需要 iptables-mod-tproxy 模块,请确保已经安装好。

以下为 iptables 规则,直接在 ssh 中运行可以工作,但是路由重启后会失效,可以在 luci-网络-防火墙-自定义规则 下添加,如果当前系统没有该配置,可以使用开机自定义脚本实现,详情请咨询度娘。

规则中局域网的 ip 段(192.168.1.0)和 v2ray 监听的端口(12345)请结合实际情况修改。

# Only TCP
iptables -t nat -N V2RAY
iptables -t nat -A V2RAY -d 0.0.0.0 -j RETURN
iptables -t nat -A V2RAY -d 127.0.0.0 -j RETURN
iptables -t nat -A V2RAY -d 192.168.1.0/24 -j RETURN
# From lans redirect to Dokodemo-door's local port
iptables -t nat -A V2RAY -s 192.168.1.0/24 -p tcp -j REDIRECT --to-ports 12345
iptables -t nat -A PREROUTING -p tcp -j V2RAY
# With UDP support
ip rule add fwmark 1 table 100
ip route add local 0.0.0.0/0 dev lo table 100
iptables -t mangle -N V2RAY
iptables -t mangle -A V2RAY -d 0.0.0.0 -j RETURN
iptables -t mangle -A V2RAY -d 127.0.0.0 -j RETURN
iptables -t mangle -A V2RAY -d 192.168.1.0/24 -j RETURN
# From lans redirect to Dokodemo-door's local port
iptables -t mangle -A V2RAY -p tcp -s 192.168.1.0/24 -j TPROXY --on-port 12345 --tproxy-mark 1
iptables -t mangle -A V2RAY -p udp -s 192.168.1.0/24 -j TPROXY --on-port 12345 --tproxy-mark 1
iptables -t mangle -A PREROUTING -j V2RAY

尾声

v2ray 一直在变化,现在已经将 json 解析默认内置了,之前的内容已经没有意义,故清理掉了,喜欢自行编译的小伙伴继续慢慢折腾。。。

更新记录

2021-03-18

2020-12-23

2020-12-22

2020-12-08

2020-11-23

2020-11-16

2020-11-13

2020-07-08

2020-06-09

2020-02-17

2019-12-21

2019-12-06

2019-10-16

2019-07-02

2019-05-31

2019-05-21

2019-03-13

2019-03-12

2018-12-10

2018-11-03