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

news2024/11/13 11:03:06

一、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.yuantao.com",
                        "port":443,
                        "users":[
                            {
                                "id":"6ec56d51-52cd-4b64-a925-52982ed7044e",
                                "alterId": 100
                            }
                        ]
                    }
                ]
            },
            "streamSettings":{
                "network":"ws",
                "security":"tls",
                "tlsSettings":{
                    "serverName":"www.yuantao.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连接了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1533291.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Oracle数据库冷备份(实例)

冷备份 1、 select file#,name,bytes/1024/1024 mb from v$datafile; 2 、缩减 便于copy alter database datafile 2 resize 100m;show parameter spfilecreate undo tablespace u2 datafile /u01oracle/oradata/qq/u2.dbf size 2m autoextend on; //建新的 alter system…

《2023 IT行业项目管理调查报告》新鲜出炉!助力IT行业持续稳步发展

又一年!2024年1月,禅道联合多方合作伙伴,发起了2023年IT行业项目管理调查问卷。经过2个多月的问卷收集与报告分析,《2023 IT行业项目管理调查报告》发布啦! 我们希望通过这次调查,深入了解不同公司和个人在…

你知道什么是工业物联网吗?——青创智通

工业物联网解决方案-工业IOT-青创智通 工业物联网,简称IIoT(Industrial Internet of Things),是指将物联网技术应用于工业领域,实现工业设备、系统和人之间的互联互通,以提高工业生产效率、降低运营成本并…

Vue.js+SpringBoot开发智能教学资源库系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 课程档案表3.2.2 课程资源表3.2.3 课程作业表3.2.4 课程评价表 四、系统展示五、核心代…

关于Windows中的屏幕亮度的有关知识,看这篇文章就差不多了

屏幕亮度序言 你可能需要定期更改屏幕亮度。当外面很亮的时候,你会想把它调亮,这样你就能看到。当你在一个黑暗的房间里时,你会想要它变暗,这样它不会伤害你的眼睛。降低屏幕亮度也将有助于节省电源并延长笔记本电脑的电池寿命。 除了手动更改屏幕亮度外,你还可以让Wind…

机器学习 - 预测训练模型

接着上篇博客机器学习-训练模型做进一步说明。 There are three things to make predictions (also called performing inference) with a PyTorch model: Set the model in evaluation mode (model.eval())Make the predictions using the inference mode context manager (…

操作系统:malloc与堆区内存管理

malloc是函数而不是系统调用,他的底层是同调调用brk和mmap这两个系统调用实现功能的,具体选择brk还是mmap要看申请的空间大小以及malloc中的阈值(一般是128kb) 注意申请的空间只有使用才会触发缺页中断映射到物理内存 不理解的话先…

武汉星起航:卓越品质领航亚马逊跨境电商,助力中国卖家扬帆全球

作为业内实力雄厚的亚马逊跨境电商孵化服务商,武汉星起航电子商务有限公司以其卓越的品质和服务,为中国卖家提供了进军国际市场的强大支持,赢得了业界的广泛赞誉。 武汉星起航电子商务有限公司自2020年成立以来,便致力于连接中国…

Linux服务器导出CPU和内存使用情况

Linux服务器默认存储一个月的CPU和内存记录,所在目录:/var/log/sa/,如下图所示 在此用sar命令来执行 sar是一个比较全面的性能监控工具,包括cpu、内存、磁盘和网络等信息,并且该命令会每10分钟自动保存一次硬件资源使用…

分巧克力---第八届蓝桥杯省赛c++A,B组

题目描述如下 对于满足某个条件的单调最值问题,我们应该下意识考虑二分,我们分析本题的条件,要找一个边长最大值使得我们所有的巧克力切出该边长的正方形的数量大于等于人数,由于我们的边长一定在1到1e5之间,我们要在这…

基于QGraphicsView的图像显示控件,支持放大、缩小、鼠标拖动

原链接 前言 这是一个Qt平台的基于QGraphicsView类的图像显示控件,支持输入QPixmap、QImage、opencv的从cv::Mat类。 实现平台:Windows 10 x64 Qt 6.2.3 MSVC 2019 opencv 4.5 先来看演示视频 控件类实现 ImageViewer.h文件 #ifndef IMAGEVIEWER…

【SpringMVC】知识汇总

SpringMVC 短暂回来,有时间就会更新博客 文章目录 SpringMVC前言一、第一章 SpingMVC概述二、SpringMVC常用注解1. Controller注解2. RequestMapping注解3. ResponseBody注解4. RequestParam5. EnableWebMvc注解介绍6. RequestBody注解介绍7. RequestBody与RequestP…

(19)C#自动添加微信好友(可批量申请)--微信UI自动化(.Net)

往期知识回顾 (1)C#开启探索微信自动化之路-微信UI自动化 (2)C#创建微信窗体自动化实例-微信UI自动化 (3)C#针对系统热键管理-微信UI自动化 (4)C#采集微信通讯录和联系人-微信UI自动化 (5)C#实现针对微信窗体鼠标静默点击-微信UI自动化 (6)C#搜索微信通讯录联系人-微信UI…

JavaMySQL高级一(下)

目录 1.常用函数 1.字符串函数 2.时间日期函数 3.聚合函数 4.数学函数 2.分布查询 3.子查询基础 1.简单子查询 1.常用函数 在程序开发过程中,除了简单的数据查询,还有基于已数据进行数据的统计分析计算等需求。因此,在SQL中将一…

zookeeper底层细节

zk 临时节点和watch机制实现注册中心自动注册和发现,数据都在内存,nio 多线程模型; cp注重一致性,数据不一致时集群不可用 事务请求处理方式 1.all事务由唯一服务器处理 2.将客户端事务请求转成proposal分发follower 3.等待半…

windows访问远程服务器上容器的几种直接方式

远程服务器 host上有一个docker container,如何通过 client 直接登陆 container 呢? container 使用 host 的网络,即使用了 --networkhost先配置 container的 ssdh(/etc/ssh/sshd_config),相关参数设置 po…

使用导入车辆出险报告接口API接口实现车辆出险查询

引言: 现在,汽车事故频发,我们经常听到车辆出险的消息。对于购车用户而言,了解车辆的出险、理赔和事故记录是十分重要的。而如何快速查询到这些信息,成为了用户们在掌握车辆情况上的一个难点。幸运的是,挖数…

高效备考2024年AMC10:吃透2000-2023年1250道真题(限时免费送)

我们今天继续来随机看5道AMC10真题,以及详细解析,这些题目来自1250道完整的官方历年AMC10真题库。通过系统研究和吃透AMC10的历年真题,参加AMC10的竞赛就能拿到好名次。即使不参加AMC10竞赛,掌握了这些知识和解题思路后初中和高中…

【NBUOJ刷题笔记】递推_递归+分治策略1

0. 前言 PS:本人并不是集训队的成员,因此代码写的烂轻点喷。。。本专题一方面是巩固自己的算法知识,另一方面是给NBU学弟学妹们参考解题思路(切勿直接搬运抄袭提交作业!!!)最后&…

QT5.14.2 Qt布局调和术:精妙UI设计背后的自适应魔法

欢迎来到Qt世界的一角,今天我们要探索的是Qt中的布局管理以及控件自适应大小调整的艺术。在这篇文章中,我们不仅会讨论理论,还会一起动手实践,弄清楚如何打造出既美观又实用的用户界面。 一、布局管理概览 布局管理是Qt中的核心概…