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

2024-03-20 09:44

本文主要是介绍通过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协商失败时返回404return 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.logproxy_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连接了

这篇关于通过nginx+xray服务搭建及本地配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/829061

相关文章

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

SpringBoot线程池配置使用示例详解

《SpringBoot线程池配置使用示例详解》SpringBoot集成@Async注解,支持线程池参数配置(核心数、队列容量、拒绝策略等)及生命周期管理,结合监控与任务装饰器,提升异步处理效率与系统... 目录一、核心特性二、添加依赖三、参数详解四、配置线程池五、应用实践代码说明拒绝策略(Rejected

关于DNS域名解析服务

《关于DNS域名解析服务》:本文主要介绍关于DNS域名解析服务,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录DNS系统的作用及类型DNS使用的协议及端口号DNS系统的分布式数据结构DNS的分布式互联网解析库域名体系结构两种查询方式DNS服务器类型统计构建DNS域

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素