标签归档:docker v2ray

docker部署v2ray进阶篇–流量伪装websocket+tls+web

上一篇如何在Docker上部署v2ray,简单写了在docker上部署v2ray服务器端的步骤,这次实践利用 nginx 去实现 websocket+tls+web 伪装 v2ray 流量。

一、修改 v2ray 的配置

执行:

vi /etc/v2ray/config.json

在inbounds节点加入:

"streamSettings": {     # 载体配置段,设置为websocket
	"network": "ws",
	"wsSettings": {
	  "path": "/v2wspath"  #设定一个伪装路径
	}
},
"listen": "127.0.0.1"

结果:

{
  "log" : {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "warning"
  },
  "inbounds": [{
    "port": 8001,//端口
    "protocol": "vmess",//传输协议
    "settings": {
      "clients": [
        {
          "id": "466eb1fe-6943-4935-b893-9e8adb3c6b00",//这里GUID请通过工具生成
          "level": 1,
          "alterId": 64
        }
      ]
    },
    "streamSettings": {
        "network": "ws",
        "wsSettings": {
          "path": "/v2wspath"  #设定一个伪装路径,可以任意合法路径
        }
    },
    "listen": "127.0.0.1"
  }],
  "outbounds": [{
    "protocol": "freedom",
    "settings": {}
  }]
}

重启 v2ray,使配置生效

docker restart v2ray

二、安装 nginx

和v2ray一样,我们依然在 docker 部署 nginx 最新稳定版。

1、用docker 拉取 nginx 最新稳定版

docker pull nginx:stable

2、创建 nginx 运行所需文件夹

mkdir /etc/nginx
mkdir /etc/nginx/certs
mkdir /etc/nginx/conf.d
mkdir /var/log/nginx
mkdir /var/log/nginx/v2ray
mkdir /usr/share/nginx
mkdir /usr/share/nginx/v2ray

3、创建 nginx 配置文件

vi /etc/nginx/conf.d/v2ray.conf

拷贝粘贴:

server {
	listen 80 default_server;
	listen [::]:80 default_server;
	server_name 这里输入你的域名;
	
	rewrite  ^/(.*)$  https://这里输入你的域名/$1  permanent;
}

server {
	listen 443 ssl;
	
	server_name 这里输入你的域名;
	
	ssl_certificate  certs/你的域名证书.crt;
	ssl_certificate_key certs/你的域名证书.key;
	ssl_session_timeout 5m;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
	ssl_protocols TLSv1.1 TLSv1.2;
	ssl_prefer_server_ciphers on;
	
	root /usr/share/nginx/v2ray;
	location / {
		index  index.html;
	}
   
 	location /v2wspath { # 与 V2Ray 配置中的 path 保持一致
		proxy_redirect off;
		proxy_pass http://127.0.0.1:8001; #这里输入v2ray监听的端口号;
		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;
	}
}

4、上传域名证书到服务器 /etc/nginx/certs 文件夹下

二、启动 nginx

docker run \
--restart=always \
--name=nginx \
--net=host \
-v /etc/nginx/certs:/etc/nginx/certs \
-v /etc/nginx/conf.d:/etc/nginx/conf.d \
-v /var/log/nginx/v2ray:/var/log/nginx/v2ray \
-v /usr/share/nginx/v2ray:/usr/share/nginx/v2ray \
-i -t -d \
nginx:stable

三、配置客户端

大功告成!

请严格遵守当地法律法规,严禁用于违法用途!

docker 部署 v2ray 进阶篇 – 流量伪装 websocket+tls+web

上一篇如何在Docker上部署v2ray,简单写了在docker上部署v2ray服务器端的步骤,这次实践利用 nginx 去实现 websocket+tls+web 伪装 v2ray 流量。

一、修改 v2ray 的配置

执行:

vi /etc/v2ray/config.json

在inbounds节点加入:

"streamSettings": {     # 载体配置段,设置为websocket
	"network": "ws",
	"wsSettings": {
	  "path": "/v2wspath"  #设定一个伪装路径
	}
},
"listen": "127.0.0.1"

结果:

{
  "log" : {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "warning"
  },
  "inbounds": [{
    "port": 8001,//端口
    "protocol": "vmess",//传输协议
    "settings": {
      "clients": [
        {
          "id": "466eb1fe-6943-4935-b893-9e8adb3c6b00",//这里GUID请通过工具生成
          "level": 1,
          "alterId": 64
        }
      ]
    },
    "streamSettings": {
        "network": "ws",
        "wsSettings": {
          "path": "/v2wspath"  #设定一个伪装路径,可以任意合法路径
        }
    },
    "listen": "127.0.0.1"
  }],
  "outbounds": [{
    "protocol": "freedom",
    "settings": {}
  }]
}

重启 v2ray,使配置生效

docker restart v2ray

二、安装 nginx

和v2ray一样,我们依然在 docker 部署 nginx 最新稳定版。

1、用docker 拉取 nginx 最新稳定版

docker pull nginx:stable

2、创建 nginx 运行所需文件夹

mkdir /etc/nginx
mkdir /etc/nginx/certs
mkdir /etc/nginx/conf.d
mkdir /var/log/nginx
mkdir /var/log/nginx/v2ray
mkdir /usr/share/nginx
mkdir /usr/share/nginx/v2ray

3、创建 nginx 配置文件

vi /etc/nginx/conf.d/v2ray.conf

拷贝粘贴:

server {
	listen 80 default_server;
	listen [::]:80 default_server;
	server_name 这里输入你的域名;
	
	rewrite  ^/(.*)$  https://这里输入你的域名/$1  permanent;
}

server {
	listen 443 ssl;
	
	server_name 这里输入你的域名;
	
	ssl_certificate  certs/你的域名证书.crt;
	ssl_certificate_key certs/你的域名证书.key;
	ssl_session_timeout 5m;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
	ssl_protocols TLSv1.1 TLSv1.2;
	ssl_prefer_server_ciphers on;
	
	root /usr/share/nginx/v2ray;
	location / {
		index  index.html;
	}
   
 	location /v2wspath { # 与 V2Ray 配置中的 path 保持一致
		proxy_redirect off;
		proxy_pass http://127.0.0.1:8001; #这里输入v2ray监听的端口号;
		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;
	}
}

4、上传域名证书到服务器 /etc/nginx/certs 文件夹下

二、启动 nginx

docker run \
--restart=always \
--name=nginx \
--net=host \
-v /etc/nginx/certs:/etc/nginx/certs \
-v /etc/nginx/conf.d:/etc/nginx/conf.d \
-v /var/log/nginx/v2ray:/var/log/nginx/v2ray \
-v /usr/share/nginx/v2ray:/usr/share/nginx/v2ray \
-i -t -d \
nginx:stable

三、配置客户端

大功告成!

请严格遵守当地法律法规,严禁用于违法用途!

如何在Docker上部署v2ray服务器端

Project V 是一个工具集合,它可以帮助你打造专属的基础通信网络。Project V 的核心工具称为V2Ray,其主要负责网络协议和功能的实现,与其它 Project V 通信。V2Ray 可以单独运行,也可以和其它工具配合,以提供简便的操作流程。

–引用v2ray官方的原话

今晚尝试了使用docker容器安装当前比较流行的v2ray,流程比较简单,并不复杂。有兴趣的新手可以尝试搭建,老司机请无视。

一、在docker hub上拉取v2ray最新版镜像

docker pull v2ray/official:latest

如果还没有安装Docker怎么办?

Ubuntu 安装 Docker CE:https://www.24kplus.com/linux/427.html

CentOS 7 安装 Docker CE:https://www.24kplus.com/linux/412.html

二、创建v2ray配置

1、创建文件夹,把v2ray配置和日志文件夹创建到本地

mkdir /etc/v2ray
mkdir /var/log/v2ray

2、创建配置

执行:

vi /etc/v2ray/config.json

然后把下面代码拷贝进去

{
  "log" : {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "warning"
  },
  "inbounds": [{
    "port": 8001,//端口
    "protocol": "vmess",//传输协议
    "settings": {
      "clients": [
        {
          "id": "466eb1fe-6943-4935-b893-9e8adb3c6b00",//这里GUID请通过工具生成
          "level": 1,
          "alterId": 64
        }
      ]
    }
  }],
  "outbounds": [{
    "protocol": "freedom",
    "settings": {}
  }]
}

需要注意的是clients节点里的id需要自行生成并替换,生成工具

三、运行v2ray

1、执行以下命令运行

docker run \
--restart=always \
--name=v2ray \
--net=host \
-v /etc/v2ray/config.json:/etc/v2ray/config.json \
-v /var/log/v2ray:/var/log/v2ray \
-i -t -d \
v2ray/official:latest

-p 为docker容器端口映射,实例中8001为v2ray默认生成端口,可以自行更改成想要的端口,本地端口:容器端口

-v 为docker容器路径映射,支持文件和文件夹,本地路径:容器路径

2、检查当前运行状态

docker container ls

好了,在docker上运行v2ray基本完成了,由于时间关系,其他进阶择日再续。

请严格遵守当地法律法规,严禁用于违法用途!