通过nginx+xray服务搭建及本地配置

一、xray服务配置

下载:https://github.com/XTLS/Xray-core

进入下载界面

这里我选择的是Xray-linux-64.zip

将文件解压到 /usr/local/xray

编辑配置文件/usr/local/xray/config.json

uuid可以在v2ray客服端自动生成,也可以在UUID v4 生成器 - KKTool工具箱 (kktoolkit.com)    上获取uuid

{
    "inbounds": [
        {
            "port": 10000,
            "protocol": "vmess",
            "settings": {
                "clients": [
                    {
                        "id": "6ec56d51-52cd-4b64-a925-52982ed7044e",
                        "alterId": 100
                    }
                ],
                "decryption": "none"
            },
           "streamSettings": {
             "network": "ws",
             "wsSettings": {
               "path": "/kazfs"
             }
            }
        }
    ],
    "outbounds": [
        {
            "protocol": "freedom"
        }
    ]
}

配置xray启动服务vi /etc/systemd/system/xray.service

[Unit]
Description=Xray Service
After=network.target

[Service]
User=nobody
ExecStart=/usr/local/xray/xray -config /usr/local/xray/config.json
Restart=on-failure
RestartSec=10
LimitNOFILE=51200

[Install]
WantedBy=multi-user.target

设置开机启动xray

systemctl enable xray --now

二、nginx配置

    location /kazfs {
        if ($http_upgrade != "websocket") { # WebSocket协商失败时返回404
            return 404;
        }
        proxy_redirect off;
        proxy_pass http://127.0.0.1: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;
    }

三、客服端配置

3.1 windows客服端

测试结果:

3.2 linux客服端配置

下载软件还是去https://github.com/XTLS/Xray-core下载,用的还是服务端一样的xray

/usr/local/xray/config.json

{
    "log":{
        "loglevel":"warning"
    },
    "inbounds":[
        {
            "port":10808,
            "listen":"127.0.0.1",
            "protocol":"socks",
            "settings":{
                "udp":true
            }
        },
        {
            "tag":"http",
            "port":10809,
            "listen":"127.0.0.1",
            "protocol":"http",
            "sniffing":{
                "enabled":true,
                "destOverride":[
                    "http",
                    "tls"
                ]
            },
            "settings":{
                "auth":"noauth",
                "udp":true,
                "allowTransparent":false
            }
        }
    ],
    "outbounds":[
        {
            "tag":"proxy",
            "protocol":"vmess",
            "settings":{
                "vnext":[
                    {
                        "address":"www.ziyuantao.com",
                        "port":443,
                        "users":[
                            {
                                "id":"6ec56d51-52cd-4b64-a925-52982ed7044e",
                                "alterId": 100
                            }
                        ]
                    }
                ]
            },
            "streamSettings":{
                "network":"ws",
                "security":"tls",
                "tlsSettings":{
                    "serverName":"www.ziyuantao.com"
                },
                "wsSettings":{
                    "path":"/kazfs"
                }
            }
        },
        {
            "tag":"direct",
            "protocol":"freedom",
            "settings":{

            }
        },
        {
            "tag":"block",
            "protocol":"blackhole",
            "settings":{
                "response":{
                    "type":"http"
                }
            }
        }
    ],
    "routing":{
        "domainStrategy":"IPIfNonMatch",
        "domainMatcher":"linear",
        "rules":[
            {
                "type":"field",
                "inboundTag":[
                    "api"
                ],
                "outboundTag":"api",
                "enabled":true
            },
            {
                "type":"field",
                "outboundTag":"direct",
                "domain":[
                    "domain:example-example.com",
                    "domain:example-example2.com"
                ],
                "enabled":true
            },
            {
                "type":"field",
                "outboundTag":"direct",
                "ip":[
                    "192.168.10.1/24"
                ],
                "protocol":[
                    "http",
                    "tls",
                    "bittorrent"
                ]
            },
            {
                "type":"field",
                "outboundTag":"block",
                "domain":[
                    "geosite:category-ads-all"
                ],
                "enabled":true
            },
            {
                "type":"field",
                "outboundTag":"direct",
                "domain":[
                    "geosite:cn"
                ],
                "enabled":true
            },
            {
                "type":"field",
                "outboundTag":"direct",
                "ip":[
                    "geoip:private",
                    "geoip:cn"
                ],
                "enabled":true
            },
            {
                "type":"field",
                "port":"0-65535",
                "outboundTag":"proxy",
                "enabled":true
            },
            {
                "type":"field",
                "port":"0-65535",
                "outboundTag":"proxy",
                "enabled":true
            }
        ]
    }
}

服务配置:

[Unit]
Description=Xray Service
After=network.target

[Service]
User=nobody
ExecStart=/usr/local/xray/xray -config /usr/local/xray/config.json
Restart=on-failure
RestartSec=10
LimitNOFILE=51200

[Install]
WantedBy=multi-user.target

启动服务:

systemctl start xray

四、测试

curl -x socks5h://127.0.0.1:10808 https://www.google.com
curl -x http://127.0.0.1:10809 https://www.google.com

五、设置

export http_proxy=http://127.0.0.1:10809
export https_proxy=http://127.0.0.1:10809

然后通过curl google.com就能访问

六、问题排查(重要)

VMess: Invalid User 可能的原因:

1、客户端和服务器端的用户 ID 不匹配;
2、客户端和服务器端的用户 alterId 不匹配;
3、客户端与服务器的时间不匹配,误差不能超过90秒钟;

可以选择证书自申请的caddy+xray,也可以选择网上那些一键式搭建的方式

由于我的服务器需要nginx,就用nginx做websocket连接了

相关推荐

  1. json-server 快速本地服务器

    2024-03-20 07:16:01       27 阅读
  2. NTP服务并读取本地时间

    2024-03-20 07:16:01       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-20 07:16:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-20 07:16:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-20 07:16:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-20 07:16:01       20 阅读

热门阅读

  1. 【Spring】聊一聊Autowired和Resource

    2024-03-20 07:16:01       21 阅读
  2. ffmpeg 视频拼接 淡入淡出

    2024-03-20 07:16:01       18 阅读
  3. TCP粘包C++进行处理

    2024-03-20 07:16:01       18 阅读
  4. Spring Data访问Elasticsearch----路由值Routing values

    2024-03-20 07:16:01       21 阅读
  5. kafka connect

    2024-03-20 07:16:01       19 阅读
  6. C# double类型计算精度问题解决

    2024-03-20 07:16:01       20 阅读
  7. 面试复盘(北京某小公司)

    2024-03-20 07:16:01       21 阅读
  8. Unity构建详解(2)——SBP的初始设置和脚本编译

    2024-03-20 07:16:01       16 阅读