共计 21951 个字符,预计需要花费 55 分钟才能阅读完成。
xray 配置谁能给一份, 主要是 nginx 的回落, 搞不定啊
按照这个网站的教程搞的,, 服务端配置
复制代码 nginx 配置
复制代码 v2rayN 客户端配置 IP 哪里有问题啊??????? |
网友回复:
注册: 客气了,现在 xray 这思路就是尽量简洁,一个前置接管 443 可以 all in one 处理各种 fallback 后端监听,并且和 nginx 互不干扰,你可以看看这个 all in one 配置示例,自行增删就可以了,fallback 本身也可以一级级嵌套,和这演示的扁平化分流都行的:https://github.com/XTLS/Xray-examples/tree/main/All-in-One-fallbacks-Nginx
坏坏: nginx 前置分流,xray 后置的。这是 xray 的配置 {“log”: { “loglevel”: “warning”, “access”: “/var/log/xray/access.log”, “error”: “/var/log/xray/error.log”}, “dns”: {“servers”: [ “https+local://8.8.8.8/dns-query”] }, “routing”: {“domainStrategy”: “IPIfNonMatch”, “domainMatcher”: “mph”, “rules”: [ // rules 自己配置] }, “inbounds”: [{ “listen”: “127.0.0.1”, “port”: 41256, // 端口自己定义,跟 nginx 配置中留存的端口一致 “protocol”: “vless”, “settings”: { “clients”: [ { “id”: “xxxxxxxxxxxxx”, “level”: 0, “email”: “”, “flow”: “xtls-rprx-vision”} ], “decryption”: “none” }, “sniffing”: {“enabled”: true, “destOverride”: [ “http”, “tls”] }, “streamSettings”: {“network”: “tcp”, “security”: “tls”, “tlsSettings”: { “rejectUnknownSni”: true, “certificates”: [ { “ocspStapling”: 3600, “oneTimeLoading”: false, “usage”: “encipherment”, “certificateFile”: “/usr/ssl/chain.pem”, // 证书地址 “keyFile”: “/usr/ssl/key.pem” // key 地址} ] }, “tcpSettings”:{“acceptProxyProtocol”: true, “header”: { “type”: “none”} } } } ], “outbounds”: [{ “protocol”: “freedom”, “tag”: “direct”, “settings”: { “domainStrategy”: “UseIP”} }, {“protocol”: “blackhole”, “tag”: “block”, “settings”: { “response”: { “type”: “http”} } } ] } 复制代码 这是 nginx 的配置 user www-data; worker_processes auto; pid /run/nginx.pid; include /etc/nginx/modules-enabled/*.conf; events {worker_connections 768; # multi_accept on;} # tcp 四层分流 stream {log_format log_stream ‘$remote_addr [$time_local] $protocol ‘ ‘[$ssl_preread_server_name] [$ssl_preread_alpn_protocols] ‘ ‘$status $bytes_sent $bytes_received $session_time’; error_log /var/log/nginx/pserver/error.log info; // 注意,请创建 /var/log/nginx/pserver/ 文件夹 access_log /var/log/nginx/pserver/access.log log_stream; map $ssl_preread_server_name $stream_map {# 服务站点 default homepage; // 除 xray 域名,其他的域名分流到 homepage # 伪装代理 xray.example.com xray_core; // xray.example.com : xray 对应的域名,分流到 xray_core} # 服务站点 upstream homepage {server 127.0.0.1:41255; // 41255 端口,nginx 网页监听 端口} # 伪装代理 upstream xray_core {server 127.0.0.1:41256; // 41256 端口,前面 xray 监听的端口} server {listen 443; proxy_pass $stream_map; proxy_protocol on; ssl_preread on;} } http {## # Basic Settings ## sendfile on; tcp_nopush on; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## log_format main ‘$proxy_protocol_addr – $remote_user [$time_local] “$request” ‘ ‘$status $body_bytes_sent “$http_referer” ‘ ‘”$http_user_agent” “$http_x_forwarded_for”‘; access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log; ## # SSL Settings ## ssl_certificate /usr/ssl/chain.pem; // ssl 证书地址 ssl_certificate_key /usr/ssl/key.pem; // ssl key 地址 ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.3; ssl_prefer_server_ciphers off; add_header Strict-Transport-Security “max-age=63072000” always; # OCSP stapling ssl_stapling on; ssl_stapling_verify on; ## # Gzip Settings ## gzip on; gzip_vary on; gzip_proxied any; gzip_min_length 1k; gzip_comp_level 2; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_disable “MSIE [1-6].”; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; # proxy_protocol 协议将访问 IP 修改为客户端 IP set_real_ip_from 127.0.0.1; real_ip_header proxy_protocol; # 端口转发设置 absolute_redirect on; port_in_redirect off; server_name_in_redirect off; server {listen 80; server_name example.com; // 注意修改域名 return 301 https://$host$request_uri; // 强制重定向到 https} server {listen 127.0.0.1:41255 ssl http2 proxy_protocol; server_name aaa.example.com; // 网站域名,注意修改域名 // 自行配置网站} server {// 如果有域名分流,请这样配置。如果没有,可以删除 listen 127.0.0.1:41255 ssl http2 proxy_protocol; server_name bbb.example.com; // 分流的网站域名:bbb.example.com // 自行配置网站} } #mail {# # See sample authentication script at: # # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript # # # auth_http localhost/auth.php; # # pop3_capabilities “TOP” “USER”; # # imap_capabilities “IMAP4rev1” “UIDPLUS”; # # server { # listen localhost:110; # protocol pop3; # proxy on; #} # # server {# listen localhost:143; # protocol imap; # proxy on; #} #} 复制代码
omo.moe: 为什么不用一键呢
time12sads: 看不懂你们搞的这些,花里胡哨的,我 tcp+http 就是干
shawpan: Nginx 巨吃性能,该封还封没吊用。过来人劝你没必要。我之前部署的 Nginx 反而慢了,也封过端口
hacn: 除非你要用 Windows 搭梯子,不然一键脚本或者各种面板直接搞定更快
nauya: daima.eu.org
tawer: 就是
toot: https://github.com/chika0801/Xray-examples/blob/main/VLESS-TCP-XTLS-Vision/config_server_with_fallbacks.json
爱你一生 1024: 回落没什么卵用,我没有回落照样好好的
fangfang22: fallback 是填的 web 服务器地址,你的 nginx 都没监听 8888,回落什么?
注册: 劝你和站点端口分开
注册: 不会配置啊,,,, 原来用的是 VLESS-TCP-TLS-WS 用的是 v2ray 的核心 现在用的是 Xray 核心,,,, 不会配置
swxk521: 你这个是 xray 不能正常工作吗? 还有你 xray 监听了 443 端口,nginx 就不能再监听 443。另外,我去看了你发的教程,你没抄全。nginx 中 ” listen 443 ssl; ” 要改成 ” listen 127.0.0.1:8080 ”。还有,你 nginx 配置中,回落到 8888 又是干什么的?(可以不回答,这不重要)
坏坏: 你都 xray 作为前置入站 443 接管 nginx 的活了,你后面回落到 nginx 的话,nginx 只负责后端处理指定的正常网站流量了,监听端口就不能用 443 了,我看你回落到 8888,你 8888 端口放的别的防探测工具或者转发到别的 vps 做链式的配置也没看到啊?那就简单点本机 nginx 监听 8888 做回落的伪装也行。
time12sads: 不想搞什么回落这些,,, 也不想用 nginx 了 我现在就只想这样处理,,,,, 不知道如何配置 nginx 监听 443 放网站 xray 搞一个端口让他直连,,,, 不知道可以不 或者 , 上面的搞不定,,,,, 用 nginx 做前端分流 网站和 xray 给一个配置
omo.moe: 不想搞什么回落这些,,, 也不想用 nginx 了 我现在就只想这样处理,,,,, 不知道如何配置 nginx 监听 443 放网站 xray 搞一个端口让他直连,,,, 不知道可以不 或者 , 上面的搞不定,,,,, 用 nginx 做前端分流 网站和 xray 给一个配置 我还没有搞懂呢,,,,, 玛德,,,, 掉坑里面去了,,,,,,,,, 太多东西还没有理解
坏坏: nginx 前端,无法组合 xtls 的 tls+vision 流控的。你单独 tls+vision 不做回落也可以用的,目前来说墙没做伪装探测,有无 nginx 无所谓,直接去掉 nginx 和 xray 的 fallback 内容就可以。
坏坏: 那就直接 Nginx 监听 443 配置一个域名反代到 xray 就好了吧 … xray 随便给个端口监听,nginx 在域名配置里用 proxy 对这个端口进行反代就好了
omo.moe: 可以的。现在新版的 vision 流控支持 nginx 前置的。
小白鸡: nginx 本身不具备流量识别能力,以前的 vmess vless 是指定 /path 做跳转给后置 v2ray xray 等处理。xtls 的 tls vision 流控不是用来自己做前置接手对应 vision 流控数据,不符合的数据发给 fallback 处理么?vision 流控指定走 tls 协议 tcp 数据包,也没有 path 分流标准,nginx 如何前置分流的?
注册: “security”: “tls” 然后客户端用 xtls
注册: nginx 前置分流,xray 后置的。这是 xray 的配置 {“log”: { “loglevel”: “warning”, “access”: “/var/log/xray/access.log”, “error”: “/var/log/xray/error.log”}, “dns”: {“servers”: [ “https+local://8.8.8.8/dns-query”] }, “routing”: {“domainStrategy”: “IPIfNonMatch”, “domainMatcher”: “mph”, “rules”: [ // rules 自己配置] }, “inbounds”: [{ “listen”: “127.0.0.1”, “port”: 41256, // 端口自己定义,跟 nginx 配置中留存的端口一致 “protocol”: “vless”, “settings”: { “clients”: [ { “id”: “xxxxxxxxxxxxx”, “level”: 0, “email”: “”, “flow”: “xtls-rprx-vision”} ], “decryption”: “none” }, “sniffing”: {“enabled”: true, “destOverride”: [ “http”, “tls”] }, “streamSettings”: {“network”: “tcp”, “security”: “tls”, “tlsSettings”: { “rejectUnknownSni”: true, “certificates”: [ { “ocspStapling”: 3600, “oneTimeLoading”: false, “usage”: “encipherment”, “certificateFile”: “/usr/ssl/chain.pem”, // 证书地址 “keyFile”: “/usr/ssl/key.pem” // key 地址} ] }, “tcpSettings”:{“acceptProxyProtocol”: true, “header”: { “type”: “none”} } } } ], “outbounds”: [{ “protocol”: “freedom”, “tag”: “direct”, “settings”: { “domainStrategy”: “UseIP”} }, {“protocol”: “blackhole”, “tag”: “block”, “settings”: { “response”: { “type”: “http”} } } ] } 复制代码 这是 nginx 的配置 user www-data; worker_processes auto; pid /run/nginx.pid; include /etc/nginx/modules-enabled/*.conf; events {worker_connections 768; # multi_accept on;} # tcp 四层分流 stream {log_format log_stream ‘$remote_addr [$time_local] $protocol ‘ ‘[$ssl_preread_server_name] [$ssl_preread_alpn_protocols] ‘ ‘$status $bytes_sent $bytes_received $session_time’; error_log /var/log/nginx/pserver/error.log info; // 注意,请创建 /var/log/nginx/pserver/ 文件夹 access_log /var/log/nginx/pserver/access.log log_stream; map $ssl_preread_server_name $stream_map {# 服务站点 default homepage; // 除 xray 域名,其他的域名分流到 homepage # 伪装代理 xray.example.com xray_core; // xray.example.com : xray 对应的域名,分流到 xray_core} # 服务站点 upstream homepage {server 127.0.0.1:41255; // 41255 端口,nginx 网页监听 端口} # 伪装代理 upstream xray_core {server 127.0.0.1:41256; // 41256 端口,前面 xray 监听的端口} server {listen 443; proxy_pass $stream_map; proxy_protocol on; ssl_preread on;} } http {## # Basic Settings ## sendfile on; tcp_nopush on; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## log_format main ‘$proxy_protocol_addr – $remote_user [$time_local] “$request” ‘ ‘$status $body_bytes_sent “$http_referer” ‘ ‘”$http_user_agent” “$http_x_forwarded_for”‘; access_log /var/log/nginx/access.log main; error_log /var/log/nginx/error.log; ## # SSL Settings ## ssl_certificate /usr/ssl/chain.pem; // ssl 证书地址 ssl_certificate_key /usr/ssl/key.pem; // ssl key 地址 ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.3; ssl_prefer_server_ciphers off; add_header Strict-Transport-Security “max-age=63072000” always; # OCSP stapling ssl_stapling on; ssl_stapling_verify on; ## # Gzip Settings ## gzip on; gzip_vary on; gzip_proxied any; gzip_min_length 1k; gzip_comp_level 2; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_disable “MSIE [1-6].”; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; # proxy_protocol 协议将访问 IP 修改为客户端 IP set_real_ip_from 127.0.0.1; real_ip_header proxy_protocol; # 端口转发设置 absolute_redirect on; port_in_redirect off; server_name_in_redirect off; server {listen 80; server_name example.com; // 注意修改域名 return 301 https://$host$request_uri; // 强制重定向到 https} server {listen 127.0.0.1:41255 ssl http2 proxy_protocol; server_name aaa.example.com; // 网站域名,注意修改域名 // 自行配置网站} server {// 如果有域名分流,请这样配置。如果没有,可以删除 listen 127.0.0.1:41255 ssl http2 proxy_protocol; server_name bbb.example.com; // 分流的网站域名:bbb.example.com // 自行配置网站} } #mail {# # See sample authentication script at: # # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript # # # auth_http localhost/auth.php; # # pop3_capabilities “TOP” “USER”; # # imap_capabilities “IMAP4rev1” “UIDPLUS”; # # server { # listen localhost:110; # protocol pop3; # proxy on; #} # # server {# listen localhost:143; # protocol imap; # proxy on; #} #} 复制代码
silence: 可以的。你看我在楼里发的配置。nginx 可以做前置服务器的。在监听到 443 端口发来的请求后,直接根据域名进行分流,不需要用证书解密,直接将完整的 https 请求转发。这样是可以实现的。
time12sads: 明白了,你是用 upstream 分流了二级域名转发了,也算行吧,我还一直思考怎么用同一个域名做分流来着的。
time12sads: 我一直是为 xray 单独设了一个二级域名,毕竟之前 nginx 前置时,vmess + ws +tls, 也需要二级域名。xray 前置的 xtls,可以共用一个域名吗?这个我之前没有试过。
omo.moe: 以前 nginx 前置标准 vmess 或者 vless 我都是 nginx 指定 path 路径转发后端。而现在的 xray 前置还是以前的 v2ray vless 前置,都是 fallback 普通网站流量到后置监听的 nginx 进行处理,也就是 vps 里面做了个类似回环的感觉,但是外部访问 443 依然是正常的 nginx 处理结果,无感知区别的。就像楼主这种直接 xray 接听 443,将不是 vision 流量发给 nginx,直接同域名直接访问就是 https 标准 nginx 内容,不需要 2 个域名或者二级域名区分
time12sads: 这样啊,谢谢你
omo.moe: xray 前置接手对应 vision 数据流,不符合标准的数据第一次 fallback 做一个 trojan,可以作为 iplc 同端口中转 trojan 用,然后正常 nginx 网站流量再 fallback 给 80 的 nginx: {“log”:{ “loglevel”:”warning”, “access”:”C:\Software\Xray-windows-64\access.log”, “error”:”C:\Software\Xray-windows-64\error.log”}, “routing”:{“domainStrategy”:”IPIfNonMatch”, “rules”:[ { “type”:”field”, “ip”:[ “geoip:cn”, “geoip:private”], “outboundTag”:”block” } ] }, “inbounds”:[{ “port”:443, “protocol”:”vless”, “settings”:{ “clients”:[ { “id”:” 你的 UUID”, “flow”:”xtls-rprx-vision”} ], “decryption”:”none”, “fallbacks”:[{ “dest”:12345, “xver”:1} ] }, “streamSettings”:{“network”:”tcp”, “security”:”tls”, “tlsSettings”:{ “rejectUnknownSni”:true, “alpn”:[ “http/1.1”], “certificates”:[{ “certificateFile”:”C:\Software\Xray-windows-64\web.crt”, “keyFile”:”C:\Software\Xray-windows-64\web.key”} ] } }, “sniffing”:{“enabled”:true, “destOverride”:[ “http”, “tls”] } }, {“port”:12345, “listen”:”127.0.0.1″, “protocol”:”trojan”, “settings”:{ “clients”:[ { “password”:”password”} ], “fallbacks”:[{ “dest”:80} ] }, “streamSettings”:{“network”:”tcp”, “security”:”none”, “tcpSettings”:{ “acceptProxyProtocol”:true} } } ], “outbounds”:[{ “protocol”:”freedom”, “tag”:”direct”}, {“protocol”:”blackhole”, “tag”:”block”} ] }复制代码 nginx 配置只要监听 80 端口即可,这样就可以 443 访问直接就是 nginx 的网站配置了,简单配置个 bing 反代演示:events {worker_connections 1024;} http {server { listen 80 default_server; listen [::]:80 default_server; location / {proxy_pass https://www.bing.com; proxy_ssl_server_name on; proxy_redirect off; sub_filter_once off; sub_filter “www.bing.com” $server_name; proxy_set_header Host “www.bing.com”; proxy_set_header Referer $http_referer; proxy_set_header X-Real-IP $remote_addr; proxy_set_header User-Agent $http_user_agent; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header Accept-Encoding “”; proxy_set_header Accept-Language “zh-CN”;} } }复制代码
time12sads: 客气了,现在 xray 这思路就是尽量简洁,一个前置接管 443 可以 all in one 处理各种 fallback 后端监听,并且和 nginx 互不干扰,你可以看看这个 all in one 配置示例,自行增删就可以了,fallback 本身也可以一级级嵌套,和这演示的扁平化分流都行的:https://github.com/XTLS/Xray-examples/tree/main/All-in-One-fallbacks-Nginx
omo.moe: nginx 作前端方便点,,, 还是 xray 做前端分流到 nginx 好用点 要是我还要用 nginx 分流几个网站,,, 怎么配置好 我原来用的是你用的办法,nginx 做前端, 用路径 path 分流 ws + 域名 +443
注册 : {“log”: { “access”: “/var/log/xray/access.log”, “error”: “/var/log/xray/error.log”, “loglevel”: “warning”}, “routing”: {“domainStrategy”: “IPIfNonMatch”, “rules”: [ { “type”: “field”, “ip”: [ “geoip:cn”], “outboundTag”: “block” } ] }, “inbounds”: [{ “listen”: “127.0.0.1”, “port”: 9999, “protocol”: “vless”, “settings”: { “clients”: [ { “id”: “”, “flow”: “xtls-rprx-vision”} ], “decryption”: “none” }, “streamSettings”: {“network”: “tcp”, “security”: “tls”, “tlsSettings”: { “certificates”: [ { “certificateFile”: “/etc/letsencrypt/live/fullchain.pem”, “keyFile”: “/etc/letsencrypt/live/privkey.pem”} ] } }, “sniffing”: {“enabled”: true, “destOverride”: [ “http”, “tls”] } } ], “outbounds”: [{ “protocol”: “freedom”, “tag”: “direct”}, {“protocol”: “blackhole”, “tag”: “block”} ] } 复制代码 nginx 配置 server {listen 80; server_name 域名; # return 301 https:// 域名 $request_uri; #日志 access_log /var/log/nginx/ 域名.access.log; error_log /var/log/nginx/ 域名.error.log error;} server {listen 443 ssl; server_name 域名; #证书地址 ssl_certificate /etc/letsencrypt/live/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/privkey.pem; ##SSL 认证 include global/letsencrypt.conf; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers ‘TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-256-GCM-SHA384:TLS13-AES-128-GCM-SHA256:EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH’; #ssl_early_data on; #告诉服务器重写客户端可能报告为自己的首选项 ssl_prefer_server_ciphers off; #指定曲线类型 ssl_ecdh_curve secp384r1; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.4.4 1.1.1.1 1.0.0.1 8.8.8.8; location / { proxy_pass http://127.0.0.1:9999; proxy_redirect off; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection “upgrade”; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;} }复制代码 怎么不能用 客户端如何配置是不是客户端的问题
注册: 怕的就是你这种, 自己搞不定又不愿用一键 多看看示例代码比在这问有用
坏坏: 不是不用一键,,,,, 是 nginx 在前端挂了好多网站 用一键, 怕搞乱设置 楼上的分流, 这些我都不敢用,,,, 因为我的 nginx 配置是分开的
clcavril: nginx 当前端, 反代内部端口, 用 vless+ws; 共用一个 443 端口
坏坏: 这个会,,,, 想用 VLESS + TCP + XTLS + Vision
clcavril: xray 监听 443 回落 nginx 会对你网站有影响, 没人这么建站, 随便用 xray 回落测个速就知道 你 xray 用非 443 端口应该秒封 非要用的话, 共 443 端口,xray 监听 443, 回落 3344 和 2233, 分别对应 nginx 的 http1.1 和 http2 “decryption”: “none”, “fallbacks”: [{ “alpn”: “h2”, “dest”: 3344, “xver”: 1}, {“dest”: 2233, “xver”: 1} ] }, 复制代码 server {listen 127.0.0.1:2233 proxy_protocol; listen 127.0.0.1:3344 http2 proxy_protocol; server_name 你的域名; set_real_ip_from 127.0.0.1; real_ip_header proxy_protocol; index index.html index.htm index.php; root /data/wwwroot/ 你的域名; 复制代码
坏坏: 目前其实还没有证据显示高墙会根据主动嗅探去封禁,如果不是为了自娱自乐,完全可以不搞 fallback 的。当然,抱着玩一玩的态度,还是可以搞一搞学习一下的。