Thanks for non-commercial open source development authorization by JetBrains!
https://github.com/wulabing/xray_docker
Want to appear here? Feel free to reach out via an issue or the Telegram group
![]() | Thanks to CapybaraCode for sponsoring this project — the very first sponsorship this project has received, and I truly appreciate the recognition! A stable, low-latency API relay service for Claude Code / AI coding. Works out of the box, pay-as-you-go, and smooth enough for daily coding work. Enter the promo code WULABING when signing up to get an extra $4 in credit. |
![]() | Thanks to UHDNOW for sponsoring this project! A carefully maintained private Emby server with a full catalogue of 4K / IMAX remuxes, Dolby Vision and HDR sources, multiple direct-connect routes and instant seeking. Worth a look if you are into home media. |
wget installed.https://github.com/XTLS/Xray-core/issues/91
Supported configurations
wget -N --no-check-certificate -q -O install.sh "https://raw.githubusercontent.com/wulabing/Xray_onekey/nginx_forward/install.sh" && chmod +x install.sh && bash install.sh
Supported configurations
VLESS + TCP + TLS + Nginx (flow control xtls-rprx-vision)
VLESS + TCP + TLS + Nginx (flow control xtls-rprx-vision) plus VLESS + TCP + TLS + Nginx + WebSocket fallback coexistence mode
wget -N --no-check-certificate -q -O install.sh "https://raw.githubusercontent.com/wulabing/Xray_onekey/main/install.sh" && chmod +x install.sh && bash install.sh
| Distribution | Version requirement | Notes |
|---|---|---|
| Debian | 10+ | Debian 12 / 13 recommended |
| Ubuntu | 20.04+ | |
| Rocky Linux | 8+ | |
| AlmaLinux | 8+ | |
| Oracle Linux | 7+ | |
| CentOS | 7+ / Stream | CentOS 7 reached EOL on 2024-06-30. Official repositories have moved to vault.centos.org; the script prints a warning and continues, but dependency installation may fail. Switching to another distribution is recommended |
The feature WebSocket transport (with ALPN http/1.1, etc.) is deprecated, not recommended for using and might be removed.), and it may be removed in a future release. This warning is emitted before the log file is created, so it is only visible in journalctl -u xray and never appears in /var/log/xray/error.log.libpcre3-dev, but the script still installed it as part of a single apt install command, so the whole command failed and packages listed alongside it — including openssl — were never installed. Those pcre / zlib / openssl development packages are leftovers from the days when Nginx was compiled from source; Nginx is now installed as a binary from the official repository and no longer needs them, so they have all been removed.kill -9 whatever occupied port 80. When that was a running Nginx, nginx.service was left in failed (Result: signal) state. It now tries systemctl stop nginx first and only falls back to kill -9 if the port is still held.limits.conf corruption: when /etc/security/limits.conf does not end with a newline (as on some distributions and cloud images), the appended * soft nofile 65536 was concatenated onto the previous line, both corrupting the existing limit and defeating the line-anchored cleanup logic — repeated installs kept accumulating garbage lines, and the file-descriptor tuning never actually took effect. A newline is now added before appending.ylx2016/Linux-NetSpeed repository misbehaves it may serve an outdated script. The script now validates the source and prints its version before executing, and aborts if validation fails.Important notice for existing users: if your node was installed with v1.3.11 or earlier, its inbound TLS configuration never actually loaded any certificate, so clients cannot complete the TLS handshake. Please reinstall, or manually rename
"xtlsSettings"to"tlsSettings"in/usr/local/etc/xray/config.jsonand then runsystemctl restart xray.
xtlsSettings in the configuration template has not been a valid field since Xray-core v1.8.1. Unknown JSON fields are silently ignored, so security: "tls" fell back to an empty TLS configuration and certificates never took effect. The field has been renamed to tlsSettings.sed to allow /.well-known/acme-challenge/. Under normal conditions port 80 also unconditionally 301-redirects that path to https, so renewal only succeeded by luck when the CA followed the redirect to 443; once the port had been changed via menu item 13 it failed 100% of the time. That location is now permanently present in Nginx, making issuance and renewal independent of the port Xray listens on. Commented-out configuration lines are no longer left behind when issuance fails.ipget.net now returns 403. The check uses dig to query A / AAAA records, falling back to getent when dig is unavailable.--reloadcmd now also fixes ownership of /ssl, so Xray can still read the certificate after renewal; the owner is taken from User= in the systemd unit. Also fixed the deprecated chown user.group dot syntax and the omission of the /ssl directory itself.--upgrade --auto-upgrade is executed after installation, preventing renewal failures caused by CA API changes on older versions.xray run -test and nginx -t validation; the script errors out and exits on failure.config/*.json, web.conf and nginx.repo are no longer fetched from GitHub during installation, so network hiccups can no longer produce a half-installed setup.nginx >= 1.25.1 now uses the http2 on; directive; the jq fallback download picks amd64 / arm64 based on CPU architecture; on IPv6-only machines the DNS64 configuration is appended to /etc/resolv.conf instead of overwriting it; timeouts were added to network requests everywhere, so the menu no longer hangs when GitHub is unreachable.security=xtls links and QR codes, added the missing encryption=none / type / sni / host parameters, and the WebSocket path is now urlencoded (multi-level paths are no longer mangled).Start Xray: systemctl start xray
Stop Xray: systemctl stop xray
Start Nginx: systemctl start nginx
Stop Nginx: systemctl stop nginx
Web directory: /www/xray_web
Xray server configuration: /usr/local/etc/xray/config.json
Nginx directory: /etc/nginx
Certificate files: /ssl/xray.key (private key) and /ssl/xray.crt (public certificate)
If you would like to support me, you can buy servers / proxies through my affiliate links:
Servers / proxies: BandwagonHost · JustMySocks · DMIT · Nube.sh (pay-as-you-go) · Vultr
socks5 / http residential proxies: Proxy-Cheap · IPRoyal
You can also support me with USDT — thank you for your support — TRC20: TU8mLTPfa5Y9nmszyfyt2VRAtuZhdLexL8
557 followers · starred Jan 2022
2,359 followers · starred Jul 2021
986 followers · starred Mar 2024
61 followers · starred Sep 2019
Thanks for non-commercial open source development authorization by JetBrains!
https://github.com/wulabing/xray_docker
Want to appear here? Feel free to reach out via an issue or the Telegram group
![]() | Thanks to CapybaraCode for sponsoring this project — the very first sponsorship this project has received, and I truly appreciate the recognition! A stable, low-latency API relay service for Claude Code / AI coding. Works out of the box, pay-as-you-go, and smooth enough for daily coding work. Enter the promo code WULABING when signing up to get an extra $4 in credit. |
![]() | Thanks to UHDNOW for sponsoring this project! A carefully maintained private Emby server with a full catalogue of 4K / IMAX remuxes, Dolby Vision and HDR sources, multiple direct-connect routes and instant seeking. Worth a look if you are into home media. |
wget installed.https://github.com/XTLS/Xray-core/issues/91
Supported configurations
wget -N --no-check-certificate -q -O install.sh "https://raw.githubusercontent.com/wulabing/Xray_onekey/nginx_forward/install.sh" && chmod +x install.sh && bash install.sh
Supported configurations
VLESS + TCP + TLS + Nginx (flow control xtls-rprx-vision)
VLESS + TCP + TLS + Nginx (flow control xtls-rprx-vision) plus VLESS + TCP + TLS + Nginx + WebSocket fallback coexistence mode
wget -N --no-check-certificate -q -O install.sh "https://raw.githubusercontent.com/wulabing/Xray_onekey/main/install.sh" && chmod +x install.sh && bash install.sh
| Distribution | Version requirement | Notes |
|---|---|---|
| Debian | 10+ | Debian 12 / 13 recommended |
| Ubuntu | 20.04+ | |
| Rocky Linux | 8+ | |
| AlmaLinux | 8+ | |
| Oracle Linux | 7+ | |
| CentOS | 7+ / Stream | CentOS 7 reached EOL on 2024-06-30. Official repositories have moved to vault.centos.org; the script prints a warning and continues, but dependency installation may fail. Switching to another distribution is recommended |
The feature WebSocket transport (with ALPN http/1.1, etc.) is deprecated, not recommended for using and might be removed.), and it may be removed in a future release. This warning is emitted before the log file is created, so it is only visible in journalctl -u xray and never appears in /var/log/xray/error.log.libpcre3-dev, but the script still installed it as part of a single apt install command, so the whole command failed and packages listed alongside it — including openssl — were never installed. Those pcre / zlib / openssl development packages are leftovers from the days when Nginx was compiled from source; Nginx is now installed as a binary from the official repository and no longer needs them, so they have all been removed.kill -9 whatever occupied port 80. When that was a running Nginx, nginx.service was left in failed (Result: signal) state. It now tries systemctl stop nginx first and only falls back to kill -9 if the port is still held.limits.conf corruption: when /etc/security/limits.conf does not end with a newline (as on some distributions and cloud images), the appended * soft nofile 65536 was concatenated onto the previous line, both corrupting the existing limit and defeating the line-anchored cleanup logic — repeated installs kept accumulating garbage lines, and the file-descriptor tuning never actually took effect. A newline is now added before appending.ylx2016/Linux-NetSpeed repository misbehaves it may serve an outdated script. The script now validates the source and prints its version before executing, and aborts if validation fails.Important notice for existing users: if your node was installed with v1.3.11 or earlier, its inbound TLS configuration never actually loaded any certificate, so clients cannot complete the TLS handshake. Please reinstall, or manually rename
"xtlsSettings"to"tlsSettings"in/usr/local/etc/xray/config.jsonand then runsystemctl restart xray.
xtlsSettings in the configuration template has not been a valid field since Xray-core v1.8.1. Unknown JSON fields are silently ignored, so security: "tls" fell back to an empty TLS configuration and certificates never took effect. The field has been renamed to tlsSettings.sed to allow /.well-known/acme-challenge/. Under normal conditions port 80 also unconditionally 301-redirects that path to https, so renewal only succeeded by luck when the CA followed the redirect to 443; once the port had been changed via menu item 13 it failed 100% of the time. That location is now permanently present in Nginx, making issuance and renewal independent of the port Xray listens on. Commented-out configuration lines are no longer left behind when issuance fails.ipget.net now returns 403. The check uses dig to query A / AAAA records, falling back to getent when dig is unavailable.--reloadcmd now also fixes ownership of /ssl, so Xray can still read the certificate after renewal; the owner is taken from User= in the systemd unit. Also fixed the deprecated chown user.group dot syntax and the omission of the /ssl directory itself.--upgrade --auto-upgrade is executed after installation, preventing renewal failures caused by CA API changes on older versions.xray run -test and nginx -t validation; the script errors out and exits on failure.config/*.json, web.conf and nginx.repo are no longer fetched from GitHub during installation, so network hiccups can no longer produce a half-installed setup.nginx >= 1.25.1 now uses the http2 on; directive; the jq fallback download picks amd64 / arm64 based on CPU architecture; on IPv6-only machines the DNS64 configuration is appended to /etc/resolv.conf instead of overwriting it; timeouts were added to network requests everywhere, so the menu no longer hangs when GitHub is unreachable.security=xtls links and QR codes, added the missing encryption=none / type / sni / host parameters, and the WebSocket path is now urlencoded (multi-level paths are no longer mangled).Start Xray: systemctl start xray
Stop Xray: systemctl stop xray
Start Nginx: systemctl start nginx
Stop Nginx: systemctl stop nginx
Web directory: /www/xray_web
Xray server configuration: /usr/local/etc/xray/config.json
Nginx directory: /etc/nginx
Certificate files: /ssl/xray.key (private key) and /ssl/xray.crt (public certificate)
If you would like to support me, you can buy servers / proxies through my affiliate links:
Servers / proxies: BandwagonHost · JustMySocks · DMIT · Nube.sh (pay-as-you-go) · Vultr
socks5 / http residential proxies: Proxy-Cheap · IPRoyal
You can also support me with USDT — thank you for your support — TRC20: TU8mLTPfa5Y9nmszyfyt2VRAtuZhdLexL8
557 followers · starred Jan 2022
2,359 followers · starred Jul 2021
986 followers · starred Mar 2024
61 followers · starred Sep 2019