v2ray使用

v2ray-v5.1.0参考这个
v2ray的原理,这个我感觉是可以理解的 。看这里

        简单来说,v2ray没有服务端、客户端之分,或者说v2ray的客户端、服务端在一起;服务器端(比如我在vps上部署的v2ray)的v2ray的inbounds做服务端,接受客户端(我的手机端v2rayNG / shadowlink app)的请求,与客户端的outbounds相对应;outbounds做客户端,向服务端发起请求,与服务端的inbounds相对应。
        同一个v2ray的inbounds与outbounds之间用routing来连接,routing就用来定义当我的一个inbounds接收到了流量,该把它发送到outbounds中的哪一个。所以v2ray可以做这种事:inbounds接收流量,然后查routing,根据routing的设置转发到指定的outbounds中
V2Ray 使用 inbound(传入) 和 outbound(传出) 的结构,这样的结构非常清晰地体现了数据包的流动方向,同时也使得 V2Ray 功能强大复杂的同时而不混乱,清晰明了。形象地说,我们可以把 V2Ray 当作一个盒子,这个盒子有入口和出口(即 inbound 和 outbound),我们将数据包通过某个入口放进这个盒子里,然后这个盒子以某种机制(这个机制其实就是路由,后面会讲到)决定这个数据包从哪个出口吐出来。以这样的角度理解的话,V2Ray 做客户端,则 inbound 接收来自浏览器数据,由 outbound 发出去(通常是发到 V2Ray 服务器);V2Ray 做服务器,则 inbound 接收来自 V2Ray 客户端的数据,由 outbound 发出去(通常是如 Google 等想要访问的目标网站)




1)、下载v2ray
我下载的是latest版的,并没有下载pre-release版的,目前的latest版是v2ray-linux-64.zip,还有一个校验文件v2ray-linux-64.zip.dgst,可用于校验下载的v2ray-linux-64.zip是否被修改过。

我的校验方式是:
$ cat v2ray-linux-64.zip.dgst
MD5= 0d56bc8c112d2c8a98c3741a3fbc204c
SHA1= d319450afd51e1c11387c583e07214eed2bd5628
SHA256= 5530c1ce251f1f668db8e315afb18dc204c768231780a4b1e5fbfbc3fe20a749
SHA512= 817453bf0b33a50eef32ea5b808a21983eb67fb2a1cbe24fe3d1aab645f6e6c71b7cc7b7b6a481605c1d030061e82cc79b9501cb40e224df829bc3f3d5d613f5

然后对刚刚下载的v2ray-linux-64.zip执行sha256sum(或者md5sum/sha512sum均可以)
$ sha256sum v2ray-linux-64.zip
5530c1ce251f1f668db8e315afb18dc204c768231780a4b1e5fbfbc3fe20a749  v2ray-linux-64.zip

可以看到执行结果和.dgst文件内的sha256后面的内容一致,证明 v2ray-linux-64.zip并没有被篡改过。

2)、解压缩v2ray并生成uuid,
可以使用v2ctl生成或者在这个网站生成。

使用v2ctl 生成uuid
$ v2ctl uuid 
7445c875-efaf-3292-1a80-66a818ebf17d

3)、上结论吧
在服务器端配置server.json,然后执行./v2ray -config server.json 即可。
还有一个很重要的地方!!!!!!需要在~/.bashrc或/etc/profile里增加一个环境变量:
export V2RAY_VMESS_AEAD_FORCED=false

以下配置文件server.json可以直接接收socks请求(tg)或者通过v2ray客户端侧接收pc浏览器switchyomega的请求。

使用v2ray创建socks代理,参考这里

server.json内容如下: 
{
    "log": {
        "access": "/var/log/vray/access.log",
        "error": "/var/log/vray/error.log",
        "loglevel": "info"
    },
    "inbounds": [
        {
            "port": 22222,
            "protocol": "vmess",
            "settings": {
                "clients": [
                    {
                        "id": "xxxxxxxx-xxxx-x-9xxx-x55e-xxxxxxxxxxxx",
                        "level": 1,
                        "alterId": 3824
                    },
                    {
                        "id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
                        "level": 1,
                        "alterId": 2824
                    }
                ]
            }
        },
        {
            "protocol": "socks",
            "port": 11111,
            "settings": {
                "auth": "password",
                "accounts": [
                    {
                        "user": "myuser",
                        "pass": "mypassword"
                    }
                ],
                "udp": false,
                "ip": "127.0.0.1",
                "userLevel": 0
            }
        }
    ],
    "outbounds": [
        {
            "protocol": "freedom",
            "settings": {}
        },
        {
            "protocol": "blackhole",
            "settings": {},
            "tag": "blocked"
        }
    ],
    "inboundDetour": [],
    "outboundDetour": [],
    "routing": {
        "strategy": "rules",
        "settings": {
            "rules": [
                {
                    "type": "field",
                    "ip": [
                        "geoip:private"
                    ],
                    "outboundTag": "blocked"
                }
            ]
        }
    }
}

4)、以PC为例,同样需要执行./v2ray -config client.json.  然后浏览器内的switchyomega内的proxy代理端口设置为10080.
client.json内容如下: 
{
    "log": {
        "loglevel": "info"
    },
    "inbound": {
        "listen": "127.0.0.1",
        "port": 10080,
        "protocol": "socks",
        "sniffing": {
            "enabled": true,
            "destOverride": ["http", "tls"]
        },
        "settings": {
            "auth": "noauth",
            "udp": true,
            "ip": "127.0.0.1"
        }
    },
    "outbound": {
        "protocol": "vmess",
        "settings": {
            "vnext": [
                {
                    "address": "your_vps_ip",
                    "port": 22222,
                    "users": [
                        {
                            "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
                            "level": 1,
                            "alterId": 3824
                        }
                    ]
                }
            ]
        },
        "mux": {
            "enabled": true,
            "concurrency": 8
        }
    },
    "outboundDetour": [
        {
            "protocol": "freedom",
            "settings": {},
            "tag": "direct"
        }
    ],
    "routing": {
        "strategy": "rules",
        "settings": {
            "rules": [
                {
                    "type": "field",
                    "ip": [
                        "0.0.0.0/8",
                        "10.0.0.0/8",
                        "100.64.0.0/10",
                        "127.0.0.0/8",
                        "169.254.0.0/16",
                        "172.16.0.0/12",
                        "192.0.0.0/24",
                        "192.0.2.0/24",
                        "192.168.0.0/16",
                        "198.18.0.0/15",
                        "198.51.100.0/24",
                        "203.0.113.0/24",
                        "::1/128",
                        "fc00::/7",
                        "fe80::/10"
                    ],
                    "outboundTag": "direct"
                },
                {
                    "type": "field",
                    "outboundTag": "direct",
                    "domain": ["geosite:cn"] // 中国大陆主流网站的域名
                },
                {
                    "type": "field",
                    "outboundTag": "direct",
                    "ip": [
                        "geoip:cn", // 中国大陆的 IP
                        "geoip:private" // 私有地址 IP,如路由器等
                    ]
                }
            ]
        }
    }
}

5)、然后就可以了啊!!!
手机端shadowlink app配置v2ray,加密方法:aes-128-gcm