V2Ray+WebSocket+TLS+Nginx 配置及使用
v2ray 是一个模块化的代理工具,支持 VMess,Socks,HTTP,Shadowsocks 等等协议,并且附带很多高级功能,HTTP,TLS 等等。
关键词限制,全文 v2ray 中的 y 为全角字符,运行相关命令时请自行替换为半角的 y
前提条件
- 境外 VPS 一台,并已编译安装 Nginx
- 域名一个,解析至该 VPS
- 基本的 Linux 技巧
测试环境
Domain Name
www.test.org
CentOS
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.3.1611 (Core)
Release: 7.3.1611
Codename: Core
安装
V2Ray
安装 V2Ray
以下指令假设已在 su 环境下,如果不是,请先运行 sudo su
bash <(curl -L -s https://install.direct/go.sh)
此脚本会自动安装以下文件:
/usr/bin/v2ray/v2ray:V2Ray 程序;/usr/bin/v2ray/v2ctl:V2Ray 工具;/etc/v2ray/config.json:配置文件;/usr/bin/v2ray/geoip.dat:IP 数据文件/usr/bin/v2ray/geosite.dat:域名数据文件 此脚本会配置自动运行脚本。自动运行脚本会在系统重启之后,自动运行 V2Ray。目前自动运行脚本只支持带有 Systemd 的系统,以及 Debian / Ubuntu 全系列。
设置开机启动
systemctl enable v2ray
SSL
安装 EPEL
yum -y install epel-release
EPEL 的全称叫 Extra Packages for Enterprise Linux 。EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL 之后,就相当于添加了一个第三方源。
安装 certbot
yum -y install certbot
certbot 是一款让你的网站自动部署 Let's Encrypt 颁发的免费数字证书
申请 SSL 证书
certbot certonly --standalone -d www.test.org
如果申请成功,证书和私钥路径如下:
/etc/letsencrypt/live/www.test.org/fullchain.pem
/etc/letsencrypt/live/www.test.org/privkey.pem
配置
Nginx
打开域名的配置文件
server {
listen 80;
listen 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/www.test.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.test.org/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_timeout 10m;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_buffer_size 1400;
add_header Strict-Transport-Security max-age=15768000;
ssl_stapling on;
ssl_stapling_verify on;
server_name www.test.org;
access_log /data/wwwlogs/www.test.org_nginx.log combined;
index index.html index.htm index.php;
root /data/wwwroot/www.test.org;
if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
include /usr/local/nginx/conf/rewrite/other.conf;
#error_page 404 /404.html;
#error_page 502 /502.html;
location /ray {
proxy_pass http://127.0.0.1:23333;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
}
}
V2Ray
备份配置文件
cp /etc/v2ray/config.json /etc/v2ray/config.json_bak
编辑配置文件
vi /etc/v2ray/config.json
{
"inbounds": [
{
"port": 23333,
"listen":"127.0.0.1",
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx",
"alterId": 4
}
]
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/ray"
}
}
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
}
]
}
id 为 UUID 可以用这个网站生成:https://www.uuidgenerator.net/
服务端配置来说,主要关心 inbound 中配置,包括端口,协议,和 id 以及 alterId。这些配置需要和客户端一致。
当需要多人使用时,clients 中可以配置多个。
v2ray 支持以下协议,默认的协议为 VMess
- Blackhole
- Dokodemo-door
- Freedom
- HTTP
- Shadowsocks
- Socks
- VMess
Linux 安全设置
防火墙 firewalld
关闭防火墙或者开放端口
关闭防火墙
systemctl stop firewalld.service
开放端口
添加
firewall-cmd --zone=public --add-port=443/tcp --permanent
--permanent 永久生效,没有此参数重启后失效。
重新载入
firewall-cmd --reload
SELinux
关闭 SELinux
vi /etc/selinux/config
SELINUX=disabled
setenforce 0
SELinux 是一种基于 域-类型 模型(domain-type)的强制访问控制(MAC)安全系统,它由NSA编写并设计成内核模块包含到内核中,相应的某些安全相关的应用也被打了SELinux的补丁,最后还有一个相应的安全策略。任何程序对其资源享有完全的控制权。假设某个程序打算把含有潜在重要信息的文件扔到/tmp目录下,那么在DAC情况下没人能阻止他。SELinux提供了比传统的UNIX权限更好的访问控制。
启动
systemctl start v2ray
systemctl start nginx
查看状态
systemctl status v2ray
systemctl status nginx
客户端
Windows客户端:
- V2RayW
- V2RayN
- V2RayS
- Clash
Android客户端:
- V2RayNG
- BifrostV
MacOS客户端
- V2RayX
- V2RayU
- ClashX
iOS(iPhone/iPad)客户端:
- Shadowrocket
- i2Ray
- Kitsunebi
- pepi
- Quantumult
国区 App Store 搜索不到,可使用美区账户,用户名 tangyuan9102@gmail.com ,密码 QWER1234poiu 登录app store再尝试。
关于客户端的配置,这里以 V2RayX 举例:

- Address: 你的服务器IP/地址,后边的是端口,对应服务器配置文件内 inbound 部分的 port
- User ID: 服务器配置文件内 inbound 部分的 ID
- alterId: 服务器配置文件内 inbound 部分的 alterId


备注
- V2Ray 的客户端 Core 和服务端 Core 版本需要一致。
- V2Ray 要求客户端与服务器的时间差不超过1分钟(与时区无关)。
- 本教程仅供学习交流,请勿违反国家法律法规,否则后果自负!
V2Ray+WebSocket+TLS+Nginx 配置及使用的更多相关文章
- vps被封逃逸_v2+cloudflare+websocket+tls+nginx
每逢重大节日,总有那么一大部分vps凉凉,以下为能正经正常使用vps,无奈之举,此法由于多层代理,夜间速度会有影响,白天感受不明显. 由于博客园内容审查,v2_ray 中间的 下划线为分隔符,相关链接 ...
- [nginx][tls] nginx配置https与ssl/tls的sni的方法
一 https的sni配置方法 http { } server { listen 443 ssl; server_nam ...
- nginx服务器配置/websocket nginx 配置笔记
server { listen 80; server_name xxx.com; # add_header '*' ; location /u/ { # 反向代理透传客户端ip proxy_set_h ...
- nginx配置websocket
有时候我们需要给websocket服务端做一下nginx的配置,比如需要给websocket服务端做负载均衡,或者,有些系统要求访问websocket的时候不能带端口,这时候我们就需要用nginx来进 ...
- 从配置websocket理解nginx
原文地址:http://www.niu12.com/article/2 今天由于写了一个简单的基于h5 websoceket的聊天室,再本地都是好好了. 但是上到服务器后就发现无法行的通, 查 ...
- 在vue中如何使用WebSocket 以及nginx代理如何配置WebSocket
WebSocket WebSocket是一种网络传输协议,可在单个TCP连接上进行全双工通信.浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并进行双向数据传输. 浏览器支持情况 现 ...
- Nginx配置websocket的安全协议wss
//nginx配置wss访问方式 map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream webso ...
- WebSocket 结合 Nginx 实现域名及 WSS 协议访问
简单了解一下 WebSocket 现在,很多网站为了实现推送技术,所用的技术都是轮询.轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器 ...
- Nginx配置各种响应头防止XSS,点击劫持,frame恶意攻击
为什么要配置HTTP响应头? 不知道各位有没有被各类XSS攻击.点击劫持 (ClickJacking. frame 恶意引用等等方式骚扰过,百度联盟被封就有这些攻击的功劳在里面.为此一直都在搜寻相关防 ...
随机推荐
- laravel中使用FormRequest进行表单验证,验证异常返回JSON
通常在项目中,我们会对大量的前端提交过来的表单进行验证,如果不通过,则返回错误信息. 前端为了更好的体验,都使用ajax进行表单提交,虽然 validate() 方法能够根据前端的不同请求方式,返回不 ...
- powershell 提取 spotlight 图片
powershell脚本来源于网络,有一些调整. # 将复制出来的缓存图片保存在下面的文件夹 $dir = Split-Path -Parent $MyInvocation.MyCommand.Def ...
- 下载文件旁边附的MD5/SHA256等有什么用途?
在我们下载很多软件时,旁边会出现md5,sha1/sha256/sha512等一长串字符串,这些字符串是什么意义呢? 因为怕盗版或者怕软件被植入病毒或者插件等,要对软件的完整性做校验.步骤:先下载完软 ...
- Web前端——Html常用标签及属性
html 常用的标题等标签就不记录了,只记录一下比较少见的标签以及属性 表格 table td 单元格 tr 表的行 th 表头 td或th可以下面的两个属性达到跨行或跨列 表格跨行 rowspan ...
- SpringBoot(15)—@Conditional注解
SpringBoot(15)-@Conditional注解 作用 @Conditional是Spring4新提供的注解,它的作用是按照一定的条件进行判断,满足条件的才给容器注册Bean. 一.概述 1 ...
- .NET MVC5简介(六)HttpHandler
浏览器到网站程序 上一篇中,介绍IHttpModule的时候,自定义一个类CustomHttpModule继承自IHttpModule,自定义一个事件,并配合配置文件,就可以执行自定义Module中的 ...
- VUE组内培训
最近去参加了一个外部VUE的周末培训,加上自己比较感兴趣所以对这项很热的前端框架做了点学习,顺便给组内同事做个简单的分享,希望下次有项目可以使用上- VUE的语法教程网上很多我就不一一列举,截图放一下 ...
- xwiki 知识管理系统
搭建一个知识管理平台, 用于知识库管理/规范管理, 可以作wiki, 可以将word/excel等导入进去, 支持全文搜索, 可以记周报, 会议纪要. 现在有很多文档管理系统, 比如阿里的语雀.腾讯的 ...
- Nginx文章
https://www.cnblogs.com/qfb620/p/5508468.html https://www.cnblogs.com/jiangwangxiang/p/8481661.html ...
- js 常用工具方法
1.格式化字符串 String.prototype.format = function () { let args = arguments; return this.replace(/\{(\d+)\ ...