摘要:本文主要介绍了v2ray
的代理服务搭建方法,和cfw
(也可以用其他的替代品clash verge
)的配置,这样我们就可以在家也能连接公司网络自由办公+网上冲浪。
介绍
反正就是支持各种代理协议集合的一款软件,使用简单安全。
- 官方文档地址:www.v2fly.org/
github
地址:github.com/v2fly/v2ray...docker
镜像地址:hub.docker.com/r/teddysun/...
简单使用
服务端安装
我采用的是
docker
进行安装。下面的案例就是最简单的使用方式,开放9000
端口的vmess
协议的代理。
docker-compose.yml
yaml
version: "3"
services:
v2ray-proxy:
image: teddysun/v2ray:5.19.0
container_name: v2ray-proxy
networks:
- default
volumes:
- "./config.json:/etc/v2ray/config.json"
ports:
- "9000:9000"
networks:
default:
external:
name: huzhihui
config.json
json
{
"inbounds": [
{
"port": 9000,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "b831381d-6324-4d53-ad4f-8cda48b30811",
"alterId": 0
}
]
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
}
]
}
说明
inbounds
:表示服务端接收的流量outbounds
:表示服务端接收的流量的处理方式,这里的"protocol": "freedom"
表示直接访问目的地址。clients
:配置表示的是客户端的连接,有多少个人就配置多少个,id
需要配置不同,alterId
都配置为0
;
客户端CFW
使用
导入下面的配置选择规则模式即可使用。
配置文件local.yaml
yaml
# http、https、socks5的代理端口
mixed-port: 7890
# restFul端口
external-controller: 127.0.0.1:55758
allow-lan: true
# 推荐使用规则模式
mode: rule
# 代理配置
proxies:
- name: LC
type: vmess
network: tcp
cipher: auto
server: 192.168.137.191
port: 9000
tls: false
udp: true
uuid: b831381d-6324-4d53-ad4f-8cda48b30811
alterId: 0
# 规则组,
proxy-groups:
- name: 选择代理
type: select
proxies:
- ✅ 手动选择
- 🌐 突破锁区
- name: ✅ 手动选择
type: select
proxies:
- LC
- name: 🌐 突破锁区
type: select
proxies:
- LC
# 代理规则,我这样写就是 192.168.8.0,192.168.0.0 网段的所有IP都走代理
rules:
- IP-CIDR,192.168.8.0/24,LC
- IP-CIDR,192.168.0.0/24,LC
proxies
配置说明
type
:协议类型network
:网络模式cipher
:加密方式server
:服务器地址port
:服务器端口tls
:是否启用tls加密udp
:是否启用udpuuid
:和服务端配置的uuid要一致alterId
:和服务端配置的alterId要一致
高级使用方式
需要先看了简单使用的文档才来这里看。
# WebSocket + TLS + Web 配置
#服务器配置
这次 TLS 的配置将写入 Nginx/Caddy/Apache 配置中,由这些软件来监听 443 端口(443 比较常用,并非 443 不可),然后将流量转发到 V2Ray 的 WebSocket 所监听的内网端口(本例是 10000),V2Ray 服务器端不需要配置 TLS。
#服务器 V2Ray 配置
json
{
"inbounds": [
{
"port": 10000,
"listen":"127.0.0.1",//只监听 127.0.0.1,避免除本机外的机器探测到开放了 10000 端口
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "b831381d-6324-4d53-ad4f-8cda48b30811",
"alterId": 0
}
]
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/ray"
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
}
]
}
#证书配置
Nginx 配置和 Apache 配置中使用的是域名和证书使用 TLS 小节的举例,请替换成自己的。因为 Caddy 会自动申请证书并自动更新,所以使用 Caddy 不用指定证书、密钥。
注意: 如果你有的 VPS 上有架设网页,请使用 webroot 模式生成证书而不是 TLS 小节中提到的 standalone 模式。以下仅就两种模式的些微不同举例,相同部分参照 TLS 小节。本例中使用的是 ECC 证书,若要生成 RSA 证书,删去 --keylength ec-256
或 --ecc
参数即可。详细请参考 acmesh-official/acme.sh (opens new window)。
证书生成
css
$ ~/.acme.sh/acme.sh --issue -d mydomain.me --webroot /path/to/webroot --keylength ec-256
安装证书和密钥
bash
acme.sh --install-cert -d mydomain.com --ecc \
--key-file /etc/v2ray/v2ray.key \
--fullchain-file /etc/v2ray/v2ray.crt \
--reloadcmd "service nginx force-reload"
#Nginx 配置
ruby
server {
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/v2ray/v2ray.crt;
ssl_certificate_key /etc/v2ray/v2ray.key;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
server_name mydomain.me;
location /ray { # 与 V2Ray 配置中的 path 保持一致
if ($http_upgrade != "websocket") { # WebSocket协商失败时返回404
return 404;
}
proxy_redirect off;
proxy_pass http://127.0.0.1:10000; # 假设WebSocket监听在环回地址的10000端口上
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
# Show real IP in v2ray access.log
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}