From 0ae69720fa244bfe5276239276523730d9b01c8a Mon Sep 17 00:00:00 2001 From: V2Ray Date: Sun, 18 Oct 2015 14:49:25 +0200 Subject: [PATCH] Remove 'Point' in guide --- spec/guide.md | 26 +++++++++++++------------- spec/v2ray.png | Bin 10977 -> 9959 bytes 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/spec/guide.md b/spec/guide.md index e87018ba8..d6e768f62 100644 --- a/spec/guide.md +++ b/spec/guide.md @@ -2,17 +2,17 @@ ## 工作机制 -你需要至少两个 Point Server(设为 A、B)才可以正常穿墙。以网页浏览为例,你的浏览器和 A 以 Socks 5 协议通信,B 和目标网站之间以 HTTP 协议通信,A 和 B 之间使用 V2Ray 的自有协议 [VMess](https://github.com/V2Ray/v2ray-core/blob/master/spec/vmess.md) 通信,如下图: +你需要至少两个 V2Ray Server(设为 A、B)才可以正常穿墙。以网页浏览为例,你的浏览器和 A 以 Socks 5 协议通信,B 和目标网站之间以 HTTP 协议通信,A 和 B 之间使用 V2Ray 的自有协议 [VMess](https://github.com/V2Ray/v2ray-core/blob/master/spec/vmess.md) 通信,如下图: ![](https://github.com/V2Ray/v2ray-core/blob/master/spec/v2ray.png) -通常 Point A 运行在你自己的电脑,Point B 运行在一台海外的 VPS 中。 +通常 Server A 运行在你自己的电脑,Server B 运行在一台海外的 VPS 中。 -## 安装 V2Ray Point Server +## 安装 V2Ray Server [安装 V2Ray](https://github.com/V2Ray/v2ray-core/blob/master/spec/install.md) -## 配置 V2Ray Point Server -### Point A +## 配置 V2Ray Server +### Server A 示例配置保存于 [vpoint_socks_vmess.json](https://github.com/v2ray/v2ray-core/blob/master/release/config/vpoint_socks_vmess.json) 文件中,格式如下: ```javascript { @@ -32,10 +32,10 @@ "settings": { "vnext": [ { - "address": "127.0.0.1", // Point B 的 IP 地址,IPv4 或 IPv6,不支持域名 - "port": 27183, // Point B 的监听端口,请更换成其它的值 + "address": "127.0.0.1", // Server B 的 IP 地址,IPv4 或 IPv6,不支持域名 + "port": 27183, // Server B 的监听端口,请更换成其它的值 "users": [ - // 用户 ID,必须包含在 Point B 的配置文件中。此 ID 将被用于通信的认证,请自行更换随机的 ID,可以使用 https://www.uuidgenerator.net/ 来生成新的 ID。 + // 用户 ID,必须包含在 Server B 的配置文件中。此 ID 将被用于通信的认证,请自行更换随机的 ID,可以使用 https://www.uuidgenerator.net/ 来生成新的 ID。 {"id": "ad937d9d-6e23-4a5a-ba23-bce5092a7c51"} ], "network": "tcp" // 如果要使用 UDP 转发,请改成 "tcp,udp" @@ -46,11 +46,11 @@ } ``` -### Point B +### Server B 示例配置保存于 [vpoint_vmess_freedom.json](https://github.com/v2ray/v2ray-core/blob/master/release/config/vpoint_vmess_freedom.json) 文件中,格式如下: ```javascript { - "port": 27183, // 监听端口,必须和 Point A 中指定的一致 + "port": 27183, // 监听端口,必须和 Server A 中指定的一致 "log" : { "access": "access.log" // 访问记录 }, @@ -58,7 +58,7 @@ "protocol": "vmess", // 中继协议,不用改 "settings": { "clients": [ - // 认可的用户 ID,必须包含 Point A 中的用户 ID + // 认可的用户 ID,必须包含 Server A 中的用户 ID {"id": "ad937d9d-6e23-4a5a-ba23-bce5092a7c51"} ], "udp": false // 如果要使用 UDP 转发,请改成 true @@ -77,11 +77,11 @@ ## 运行 -Point Server A +Server A ./server --config="vpoint_socks_vmess.json 的绝对路径" -Point Server B +Server B ./server --config="vpoint_vmess_freedom.json 的绝对路径" diff --git a/spec/v2ray.png b/spec/v2ray.png index 1f39994e2c8cff51fee8435e53b98281b160405a..83b03c67af133792b6db055f5a6e262d537dbf84 100644 GIT binary patch literal 9959 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 literal 10977 zcmd6NcT`hP|7Jo7H6Xo%NEHIorGp?MU6B%`h28>4@4ZPEklvd}4;?{)fHY|;Ep!0^ zfruczg$>_#-?P6x=eN7({cmUH%$@tp^ZCp(b7yYu&7Ih1+Nxk;Mq&T}09JeYSQh}m zMF0T6I6_=3g2Q4;iOs)0)6`SZba2BW|6c_l5cnVI!NJAFnqUJV5iu#43~LJl5#ZtB zVG9h*Y&bYLlvFhTa)>QsX^JZ9a!RV$0v5#PqLQ-YcPOxBJUo1Cj*kz*=0wEA*eYzm zmj4y7w%7s|;pP*-#mC1sN<~deKtPD)i$0VQk&wnB#3UqQQgQ@@L@aFV|FXhL!WJM8 zMDYo*l5VZArySh(8JJkHh7!^W3Xj#8+1P=&xL6t3Dr_rQ4%RIRDJd4jB9GN|NJzn0 z_$~(*%iViIVv_eELRkNL#+GdNII#q3T6$_4I&6RMP*PD)Q40u*{UaPm&&Z4=V+j*$ zhuAzkDa+o?pOKk0x3X1R-x#a2Wng-A`4280-tfXMh=8zv_E+!J&yQn^*j|9i$f;=P z>bu7pd%wMJ>-P$c<>41hEvhlLax$}XrDI^SaCEQk9Bv;*MWy6*fBlhN(R7!C+r=+j zSX}C%?4w7jnpmk=Jx*T130Y;n5s9kWdeVw2HZI=DdGAXQU9Z!N1VqFOYCF

-hvl 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