v2ray+websocks+nginx+ssl配置

有兴趣查看本文,说明你可能有科学上网的需要,以及对v2ray有了解。本方法提供一种新的传输方式,利用Nginx及HTTPS转发后端v2ray的websocks数据,这样我们可以将科学上网流量混合到正常的HTTPS流量中,从而提高安全性。

本文在VultrBandwagonHost的CentOS7及Debian8、9系统上成功配置,如果遇到错误,请根据实际情况进行修改。

如题所示,除了v2ray外,我们还需要Nginx,一个域名及对应的SSL证书,域名可以是某个二级域名,SSL证书也可以使用免费的Let’s Encrypt证书,如果还没有申请过的,可以参考这篇文章:利用Certbot申请Let’s Encrypt SSL证书,至于Nginx,可以直接通过系统的包管理器安装,也可以参考这篇文章进行安装:Linux安装官方最新版的Nginx。至于域名,我们只需将域名解析到VPS上就行了,可以是单独的域名,也可以用现有的域名。处于考虑,我建议新申请一个便宜的域名,就算被干,损失也不大。

到这一步,我假设你已经准备好了上述所需要的东西,接下来就是配置了。

安装v2ray

v2ray官方给我们提供了一种很简单的安装方式,只需要一行命令就能完成安装:

bash <(curl -L -s https://install.direct/go.sh)

正常来说,安装过程是没有问题的,但是有的时候也难免会有缺少组件的情况,如果缺少组件,按照提示安装就好了,下面的命令是安装过程可能会遇到的缺少组件安装命令:
CentOS系:

yum install curl unzip

Debian/Ubuntu系统:

apt-get install curl unzip

配置v2ray

v2ray的配置文件在/etc/v2ray/config.json,修改之前建议备份一下这个文件,后面出了问题好还原回去。

安装完v2ray之后,我们需要对v2ray进行配置,下面是一个配置案例:

{
  "inbound": {
    "listen": "127.0.0.1",
      "port": 1000,  # 选择webstocks的端口号,用于和Nginx通行
      "protocol": "vmess",
      "settings": {
        "clients": [
          {
            "alterId": 64, #选择合适的数值
            "id": "ca50cce6-1cb5-4340-8a0f-914757a9b87b"  #修改这里成你生成的uuid
          }
        ]
      },
      "streamSettings": {
        "network": "ws",
        "wsSettings": {
          "connectionReuse": false,
          "path": "/ws", #选择想要的路径,如/ws
          "headers": {
            "Host": "ws.bwh123.com"
          }
        }
      }
  },
  "inboundDetour": [],
  "log": {
    "access": "/var/log/v2ray/access.log",
    "error": "/var/log/v2ray/error.log",
    "loglevel": "warning"
  },
  "outbound": {
    "protocol": "freedom",
    "settings": {}
  },
  "outboundDetour": [
    {
      "protocol": "blackhole",
      "settings": {},
      "tag": "blocked"
    }
  ],
  "routing": {
    "settings": {
      "rules": [
        {
          "ip": [
            "0.0.0.0/8",
            "10.0.0.0/8",
            "100.64.0.0/10",
            "127.0.0.0/8",
            "169.254.0.0/16",
            "172.16.0.0/12",
            "192.0.0.0/24",
            "192.0.2.0/24",
            "192.168.0.0/16",
            "198.18.0.0/15",
            "198.51.100.0/24",
            "203.0.113.0/24",
            "::1/128",
            "fc00::/7",
            "fe80::/10"
          ],
          "outboundTag": "blocked",
          "type": "field"
        }
      ]
    },
    "strategy": "rules"
  }
}

把上述复制,将注释信息包括前后的空格删除,然后粘贴到/etc/v2ray/config.json,保存,用下述命令测试配置文件是否合法:

root@BWH123:/etc/v2ray# /usr/bin/v2ray/v2ray --test --config /etc/v2ray/config.json
V2Ray v3.10(die Commanderin)20180222
An unified platform for anti-censorship.
Configuration OK.

通过查看输出信息判断配置文件是否正确,如果报错,根据报错信息进行修改即可。

到这里v2ray的配置就算完成了,接下来是配置Nginx转发websocks数据。

配置Nginx转发websocks

如果你的Nginx是用系统的包管理器安装的,Nginx的配置文件目录应该是在/etc/nginx/,我们直接到/etc/nginx/conf.d/新建一个虚拟主机配置文件,内容如下:


server { listen 443 ssl; listen [::]:443 ssl; ssl on; #申请到的SSL证书信息 ssl_certificate /etc/letsencrypt/live/ws.bwh123.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/ws.bwh123.com/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; #想要使用的域名 与SSL证书对应 server_name ws.bwh123.com; location /ws { proxy_redirect off; proxy_pass http://127.0.0.1:1000; #v2ray配置的websocks端口号 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; } location / { root /var/www/html; index index.html index.htm; } } server { listen 80; listen [::]:80; server_name ws.bwh123.com; return 301 https://ws.bwh123.com$request_uri; }

保存之后,用Nginx自带的配置文件检测功能检查下是否有问题:

nginx -t

如果没问题的话,重启一下v2ray及Nginx就可以使用了:

systemctl restart v2ray
systemctl restart nginx

或者:

service v2ray restart
service nginx restart

如果重启之后,用浏览器打开上述配置的域名及相应路径,如果返回Bad Request说明可能配置成功了。如果始终返回502错误,且恰好又是CentOS7系统,可能需要检查一下是否是SELinux导致的问题:CentOS 7 禁用SELinux

v2ray客户端配置

Windows系统客户端 v2rayn

配置好服务器端之后,我们开始来配置客户端,首先是Windows系统客户端,这里推荐一个v2rayN,下载之后,还需要下载v2ray的核心文件,如果为检测到,会引导到v2ray core的下载页面,下载之后将这两个压缩包里面的文件放到同一个文件夹下再次启动就可以了。

如图:
Windows系统客户端 v2rayn

根据实际情况进行填写即可。

macOS系统 v2rayx

macOS下我推荐使用v2rayx,如图:
v2rayx
v2rayx
v2rayx

iOS Kitsunbei

Kitsunbei
Kitsunbei

“v2ray+websocks+nginx+ssl配置”的2个回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注