https://github.com/chinanf-boy/v2ray-mac-iphone
explain: 只说 v2ray 概念✅, 代码什么的好多啊💀
https://github.com/chinanf-boy/v2ray-mac-iphone
explain v2ray zh
Last synced: 18 days ago
JSON representation
explain: 只说 v2ray 概念✅, 代码什么的好多啊💀
- Host: GitHub
- URL: https://github.com/chinanf-boy/v2ray-mac-iphone
- Owner: chinanf-boy
- Created: 2018-05-16T04:03:52.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-07-18T12:25:25.000Z (almost 7 years ago)
- Last Synced: 2025-02-08T08:47:11.864Z (2 months ago)
- Topics: explain, v2ray, zh
- Size: 3.91 KB
- Stars: 8
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# V2ray [](https://github.com/chinanf-boy/Source-Explain)
「 说是`代理`, 其实用`通道`来, 更合适 」
这里是 explain 单元, 但只解释, 概念
[github source](https://github.com/v2ray/v2ray-core)
~~[english](./README.en.md)~~
---
## 生活
[help me live , live need money 💰](https://github.com/chinanf-boy/live-need-money)
一直以来, 通过科学上网让我对世界更多了份认识, 但手机似乎要收费,
v2ray, 也正如此诞生的, 谢谢🙏
---
### 我是 iphone, 所以我需要一个代理软件, 只要支持 `socks5` 的就行
---
为什么我要明确 `通道 `这一说法 ,
长久以来, 我使用 `shadowsoks` 的应用让我惯性的理解 需要 _服务器和客户端_
它的协议, 能 `S <=> C` 沟通起来
> 那么 v2ray
为什么说, 他更像一个通道了, 因为 两个字
### 一进一出
#### 一进
它需要开了一边 比如 `socks5` 协议 -/- `http` 协议 等等
``` js
// socks 进
"inbound" : {
"listen" : "0.0.0.0", //✅ 和 127.0.0.1❌ 是否正确只是区别在于 是否给局域网的其他设备访问
"port" : 1080, // 端口在设置外面
"protocol" : "socks", // 协议
"settings" : { // 协议设置
"auth" : "noauth",
"udp" : true,
"ip" : "127.0.0.1"
}
},
```请求 -> socks5 -> `)= 入口-socks === v2ray ======()堵住的`
#### 一出
开了另一边 比如 `shadowsocks` 协议 -/- `vmess` 协议{v2ray安全🔐与复杂性}
``` js
// shadowsocks 出
"outbound": {
"protocol": "shadowsocks", // 协议
"settings":{ // 协议设置
// ⚠️ 以下命令 是安全信息, 请保管好自己的信息"servers": [ // 注意是 server s 是 Array 类型
{
// 身份🆔
"address": "192.168.11.103", // Shadowsocks 的服务器地址
"email": "[email protected]", // 用户名标示
"method": "chacha20-ietf", // Shadowsocks 的加密方式
"password": "asdfasdfasdf", // Shadowsocks 的密码
"ota": true,
"port": 5000
}
]
}
}
````) == 入口-socks ==== V2ray ====== 出口-shadowsocks ==> 有🆔身份的shadowsocks => 找servers == (`
#### 通道说明
>比作 socks === 🐱 , shadoawsocks === 🐶
> 我们手机-电脑浏览器的`请求`通过 代理软件 就可以 装得像猫
#### 1. 请求 -> socks5 -> 🐱 ==>
> 用户端 -> 匹配通道入口协议
#### 2. `) == 入口-socks ==== V2ray ====== 出口-shadowsocks ==> 🐶 => 找servers == (`
> 进入通道后
好了, 我们的 🐱 , 进来通道后发现, 出口限制🚫说: 只有 🐶 能通过?
这个时候, `V2ray-{化妆师}出场了`, ta/居然能把 __🐱变🐶__ , _我的天啊_
#### 3. 🐱 变 🐶 , 化妆就是这样化腐朽为神奇
#### 4. 找 servers
> 好了, `V2ray`, 会领着你到下一个 `舞台-通道`
---
### 第一通道
就这样, 🐱变成🐶, 进入下一个舞台
### 第一通道-通道图
`) == 入口-socks ==== V2ray ====== 出口-shadowsocks ==> 🐶 => 找servers == (
完整config.json
``` js
//
{
// socks 进
"inbound" : {
"listen" : "0.0.0.0", //✅ 和 127.0.0.1❌ 是否正确只是区别在于 是否给局域网的其他设备访问
"port" : 1080, // 端口在设置外面
"protocol" : "socks", // 协议
"settings" : { // 协议设置
"auth" : "noauth",
"udp" : true,
"ip" : "127.0.0.1"
}
},
// shadowsocks 出
"outbound": {
"protocol": "shadowsocks", // 协议
"settings":{ // 协议设置
// ⚠️ 以下命令 是安全信息, 请保管好自己的信息"servers": [ // 注意是 server s 是 Array 类型
{
"address": "192.168.11.103", // Shadowsocks 的服务器地址
"email": "[email protected]", // 用户名标示
"method": "chacha20-ietf", // Shadowsocks 的加密方式
"password": "asdfasdfasdf", // Shadowsocks 的密码
"ota": true,
"port": 5000
}
]
}
}
}
```---
### 第二通道
我来布置第二个通道吧
上文说到 , __🐱 进入 [第一通道](#第一通道) 后被 `V2ray-化妆师` 变 🐶, 进入了限制 只许🐶出的__, [第二通道](#第二通道)
那么一上来, 我们的狗就迎来了挑战
#### 第二通道-入口
> V2ray === 化妆师
``` js
// 第二通道-入口
"inbound": {
"port": 5000, // 对口, 不然路都找不到
"protocol": "shadowsocks", // 要是🐶
"settings": {
// 身份身份
"email": "[email protected]",
"method": "chacha20-ietf",
"ota": true,
"password": "asdfasdfasdf"
}
},
```
1. 只需 🐶, 噢不, 只许有身份的🐶, 进入身份?[==》》那是我们在上一个通道的事情啦](#一出)
``` js
// 上一通道-出口
"outbound": {
"protocol": "shadowsocks", // 协议
"settings":{ // 协议设置
"servers": [
{
// 👇👇👇👇👇👇👇👇👇
"address": "192.168.11.103", // Shadowsocks 的服务器地址
"email": "[email protected]", // 用户名标示
"method": "chacha20-ietf", // Shadowsocks 的加密方式
"password": "asdfasdfasdf", // Shadowsocks 的密码
"ota": true,
"port": 5000
}
]
}
}
```我们的 `化妆师`, 除了 把 `__🐱变成🐶__`, 还给了我们身份, 太感动了, 一只有身份的🐶
好了我们交上 `爪`上的身份信息, 进入到了 第二通道里面
2. `) == 入口-身份-shadowsocks ==== V2ray ===()`
#### 第二通道-出口
``` js
// 第二通道-出口
"outbound": {
"protocol" : "freedom",
"tag" : "direct",
"settings" : {
}
}
```这个时候, 我们其实有很多选择, 可以是象征 `自由的freedom` `严谨的vmess`, `再变🐱的socks`
而`freedom`,顾名思义 自由请求, 是最终解
> 其他的协议, 自然需要另一个通道的入口配置
> ⚠️ 自由之后, 还要回来的, 我们的用户要`接受请求的数据`, 也就是说 `🐶需要重新变成🐱,在第一通道`?
那么`freedom`出口, 你以为 化妆师 不用工作, 🐶 要变回 请求, 才能被外界认识
#### 第二通道-通道图
`) == 入口-身份-🐶 ==== V2ray ==== 出口-freedom ==> 🐶->请求 => * == (`
因为两次 V2ray 的 作用, 所以我称之为 通道, 只要一进一出互通的, 就能一直下去
---
## 总结
理解`通道`, 比理解 `S/C` 可能更贴切一点
> v2ray-mac-iphone 名字 随便写的, 可能是我用 mac客户端d代理我的iphone 的灵感
有用的东西
1. https://github.com/wangyi2005/v2ray-heroku
> `heroku` 上的 v2ray 通道
> 入口-`vmess`, 出口-`freedom`
2. 你需要一个客户端
https://www.v2ray.com/ui_client/
3. 既然 1 中 `入-vmess, 出-freedom`
但是, 我们手机上的 `免费代理{非中华地区}` 只能 `socks/shadowsocks/http` -
那么我们, 再在 heroku 上 一个 入口 `socks` - 出口 - `vmess`
接入 1 中, 经过两通道, 手机自然能连
> `socks/shadowsocks` 不知道会不会被`heroku`禁用
> 这也是为什么 入口用 `严谨的vmess` , 化得太多数人都不认识, 自然通行
### 通道 通道 通道
- https://www.v2ray.com
- https://github.com/v2ray
---