shatinz
3a57ebffe7
# Pull Request: Connection Reporting System & Improvements for Restricted Networks
...
## Description
This PR introduces a comprehensive **Connection Reporting System** designed to improve the reliability and monitoring of connections, specifically tailored for environments with restricted internet access (e.g., active censorship, GFW).
### Key Changes
1. **New Reporting API (`/report`)**:
* Added `ReportController` and `ReportService` to handle incoming connection reports.
* Endpoint receives data such as `Latency`, `Success` status, `Protocol`, and Client Interface details.
* Data is persisted to the database via the new `ConnectionReport` model.
2. **Subscription Link Updates**:
* Modified `subService` to append a `reportUrl` parameter to generated subscription links (VLESS, VMess, etc.).
* This allows compatible clients to automatically discover the reporting endpoint and send feedback.
3. **Database Integration**:
* Added `ConnectionReport` schema to `database/model` and registered it in `database/db.go` for auto-migration.
## Why is this helpful for Restricted Internet Locations?
In regions with heavy internet censorship, connection stability is volatile.
* **Dynamic Reporting Endpoint**: The `reportUrl` parameter embedded in the subscription link explicitly tells the client *where* to send connection data.
* **Bypassing Blocking**: By decoupling the reporting URL from the node address, clients can ensure diagnostic data reaches the panel even if specific node IPs are being interfered with (assuming the panel itself is reachable).
* **Real-time Network Intelligence**: This mechanism enables the panel to aggregate "ground truth" data from clients inside the restricted network (e.g., latency, accessibility of specific protocols), allowing admins to react faster to blocking events.
* **Protocol Performance Tracking**: Allows comparison of different protocols (Reality vs. VLESS+TLS vs. Trojan) based on real-world latency and success rates from actual users.
* **Rapid Troubleshooting**: Administrators can see connection quality trends and rotate IPs/domains proactively when success rates drop, minimizing downtime for users.
## Technical Details
* **API Endpoint**: `POST /report`
* **Payload Format**: JSON containing `SystemInfo` (Interface), `ConnectionQuality` (Latency, Success), and `ProtocolInfo`.
* **Security**: Reports are tied to valid client request contexts (implementation detail: ensure endpoint is rate-limited or authenticated if necessary, though currently designed for open reporting from valid sub links).
## How to Test
1. Update the panel.
2. Generate a subscription link.
3. Observe the `reportUrl` parameter in the link.
4. Simulate a client POST to the report URL and verify the entry in the `ConnectionReports` table.
2026-02-04 13:30:00 +03:30
Sam Mosleh
d5ea8d0f38
Fix default CA by enforcing it everywhere ( #3719 )
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
Release 3X-UI / Build for Windows (push) Waiting to run
2026-01-30 16:35:24 +01:00
Sam Mosleh
8a4c9a98cb
Fix modifying default CA ( #3708 )
2026-01-26 23:05:15 +01:00
sviatoslav-gusev
70b365171f
feat: add option to use existing custom SSL certificates ( #3688 )
2026-01-21 16:47:36 +01:00
Nebulosa
e6318d57e4
Add x-ui.service.arch file ( #3650 )
...
* Add a service file for Arch-based OSs
* Update release.yml with arch service file
* Update x-ui.service.arch
2026-01-18 15:41:07 +01:00
VolgaIgor
a691eaea8d
Fixed incorrect filtering for IDN top-level domains ( #3666 )
Release 3X-UI / build (386) (push) Has been cancelled
Release 3X-UI / build (amd64) (push) Has been cancelled
Release 3X-UI / build (arm64) (push) Has been cancelled
Release 3X-UI / build (armv5) (push) Has been cancelled
Release 3X-UI / build (armv6) (push) Has been cancelled
Release 3X-UI / build (armv7) (push) Has been cancelled
Release 3X-UI / build (s390x) (push) Has been cancelled
Release 3X-UI / Build for Windows (push) Has been cancelled
2026-01-12 02:53:43 +01:00
MHSanaei
f8c9aac97c
Add port selection and checks for ACME HTTP-01 listener
...
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
Release 3X-UI / Build for Windows (push) Waiting to run
Introduces user prompts to select the port for ACME HTTP-01 certificate validation (default 80), checks if the chosen port is available, and provides guidance for port forwarding. Adds is_port_in_use helper to all scripts and improves messaging for certificate issuance and error handling.
2026-01-11 15:28:43 +01:00
Nebulosa
427b7b67d8
Refactor ca-certificate dependency ( #3655 )
2026-01-09 17:05:55 +01:00
Sanaei
a9770e1da2
ip cert ( #3631 )
2026-01-05 05:47:15 +01:00
MHSanaei
947fd4fae1
fix
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
Release 3X-UI / Build for Windows (push) Waiting to run
2026-01-03 07:27:39 +01:00
Nebulosa
719ae0e014
Remove wget dependency from everywhere ( #3598 )
...
* Remove wget dependency
* Merge branch 'curl_only' of https://github.com/nebulosa2007/3x-ui into nebulosa2007-curl_only
---------
Co-authored-by: Sanaei <ho3ein.sanaei@gmail.com>
2026-01-03 06:41:40 +01:00
Nebulosa
692a73788a
Set variables for packaging purposes ( #3600 )
...
* Set Variables for settings
2026-01-03 03:57:19 +01:00
Mikhail Grigorev
3287fa4d80
Added EnvironmentFile to systemd unit ( #3606 )
...
* Added EnvironmentFile to systemd unit
* Added support for older releases
* Remove ARGS
* Fixed copy unit
* Fixed unit filename
* Update update.sh
2026-01-03 03:37:48 +01:00
weekend sorrow
1393f981bc
feat: Add etckeeper compatibility ( #3602 )
2026-01-03 03:13:00 +01:00
Nebulosa
c061337ce7
Set log folder variable to /var/log/3x-ui ( #3599 )
...
* Set log folder variable to /var/log/3x-ui
* Set log folder as x-ui and create the log folder
* Create the log folder in install and update scripts
2026-01-02 16:11:32 +01:00
Sanaei
69ccdba734
Self-signed SSL ( #3611 )
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
Release 3X-UI / Build for Windows (push) Waiting to run
2025-12-28 00:03:33 +01:00
MHSanaei
0ea8b5352a
fix
Release 3X-UI / build (386) (push) Has been cancelled
Release 3X-UI / build (amd64) (push) Has been cancelled
Release 3X-UI / build (arm64) (push) Has been cancelled
Release 3X-UI / build (armv5) (push) Has been cancelled
Release 3X-UI / build (armv6) (push) Has been cancelled
Release 3X-UI / build (armv7) (push) Has been cancelled
Release 3X-UI / build (s390x) (push) Has been cancelled
Release 3X-UI / Build for Windows (push) Has been cancelled
2025-12-04 00:09:13 +01:00
JieXu
e8c509c720
Update for Red Hat base Linux ( #3589 )
...
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
Release 3X-UI / Build for Windows (push) Waiting to run
* Update install.sh
* Update update.sh
* Update x-ui.sh
* Update install.sh
* Update update.sh
* Update x-ui.sh
* fix
2025-12-03 21:40:49 +01:00
fgsfds
cf38226b5d
Add update-all-geofiles key to x-ui.sh ( #3586 )
...
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
Release 3X-UI / Build for Windows (push) Waiting to run
* added update-all-geofiles key to x-ui.sh that updated all geofiles
* fix
* text fixes
* typo fix
* cleanup
2025-11-07 19:26:43 +01:00
JieXu
cafcb250ec
Add support for OpenSUSE Leap ( #3573 )
...
* Update update.sh
* Update install.sh
* Update x-ui.sh
* Update x-ui.sh
2025-10-01 23:11:37 +02:00
mhsanaei
ee0e3093ba
Add IPv4 for wget in install
2025-09-25 15:08:13 +02:00
Evgeny Volferts
b3e96230c4
Add Alpine Linux support ( #3534 )
...
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
Release 3X-UI / Build for Windows (push) Waiting to run
* Add Alpine linux support
* Fix for reading logs
2025-09-22 21:56:43 +02:00
mhsanaei
24a3411465
more list for public IP address
Release 3X-UI / build (386) (push) Has been cancelled
Release 3X-UI / build (amd64) (push) Has been cancelled
Release 3X-UI / build (arm64) (push) Has been cancelled
Release 3X-UI / build (armv5) (push) Has been cancelled
Release 3X-UI / build (armv6) (push) Has been cancelled
Release 3X-UI / build (armv7) (push) Has been cancelled
Release 3X-UI / build (s390x) (push) Has been cancelled
2025-08-21 14:24:25 +02:00
mhsanaei
3d0212c21d
fix: fail2ban on Debian 12 #1701
Release 3X-UI / build (386) (push) Has been cancelled
Release 3X-UI / build (amd64) (push) Has been cancelled
Release 3X-UI / build (arm64) (push) Has been cancelled
Release 3X-UI / build (armv5) (push) Has been cancelled
Release 3X-UI / build (armv6) (push) Has been cancelled
Release 3X-UI / build (armv7) (push) Has been cancelled
Release 3X-UI / build (s390x) (push) Has been cancelled
2025-08-15 13:34:02 +02:00
mhsanaei
6a17285935
remove: glibc check
...
Release 3X-UI / build (386) (push) Waiting to run
Release 3X-UI / build (amd64) (push) Waiting to run
Release 3X-UI / build (arm64) (push) Waiting to run
Release 3X-UI / build (armv5) (push) Waiting to run
Release 3X-UI / build (armv6) (push) Waiting to run
Release 3X-UI / build (armv7) (push) Waiting to run
Release 3X-UI / build (s390x) (push) Waiting to run
now you can install on all OS like ubuntu 20 or 18
2025-08-04 19:16:56 +02:00
Mikhail Grigorev
0ad708b1b6
Added list of services for get public IP address (IP v4 and v6) ( #3216 )
...
* Fixed get public IP address
* Remove https://ifconfig.io/ip and https://ipinfo.tw/ip
---------
Co-authored-by: Mikhail Grigorev <grigorev_mm@magnit.ru>
2025-07-27 17:24:11 +02:00
X-Oracle
71f13ebcbd
small improvement ( #3277 )
2025-07-27 17:22:59 +02:00
xujie86
fa45bf87de
Update install.sh ( #3267 )
2025-07-22 23:28:56 +02:00
xujie86
75416eebd7
Increase the number of characters for webBasePath ( #3239 )
2025-07-22 12:53:12 +02:00
mhsanaei
bbdeb65291
new alternative to get public IP address
2025-07-06 20:45:58 +02:00
xujie86
ba50c99c10
chore: add RHEL system to install.sh
...
Release 3X-UI / build (386) (push) Has been cancelled
Release 3X-UI / build (amd64) (push) Has been cancelled
Release 3X-UI / build (arm64) (push) Has been cancelled
Release 3X-UI / build (armv5) (push) Has been cancelled
Release 3X-UI / build (armv6) (push) Has been cancelled
Release 3X-UI / build (armv7) (push) Has been cancelled
Release 3X-UI / build (s390x) (push) Has been cancelled
fixed #3097
2025-06-16 18:11:23 +07:00
Shishkevich D.
13cf7271d6
fix: check default credentials during a fresh installation
Build and Release 3X-UI / build (386) (push) Waiting to run
Build and Release 3X-UI / build (amd64) (push) Waiting to run
Build and Release 3X-UI / build (arm64) (push) Waiting to run
Build and Release 3X-UI / build (armv5) (push) Waiting to run
Build and Release 3X-UI / build (armv6) (push) Waiting to run
Build and Release 3X-UI / build (armv7) (push) Waiting to run
Build and Release 3X-UI / build (s390x) (push) Waiting to run
2025-05-06 09:05:32 +07:00
Pk-web6936
b75a1ef5e1
Code refactoring ( #2877 )
...
* read without -r will mangle backslashes.
https://github.com/koalaman/shellcheck/wiki/SC2162
* read without -r will mangle backslashes.
2025-04-09 11:12:14 +02:00
mhsanaei
6545d8b61d
glibc version
...
replace with OS check
2025-03-22 07:48:50 +01:00
mhsanaei
db945e2fbd
OS: Alma Linux 9.5+
2025-03-21 12:49:23 +01:00
mhsanaei
667fac15f4
OS: Rocky Linux 9.5+
2025-03-21 12:40:13 +01:00
mhsanaei
29033a7828
OS: Debian 12+
2025-03-20 19:45:29 +01:00
Sanaei
cac00224db
runs-on: ubuntu-22.04 ( #2767 )
...
https://github.com/actions/runner-images/issues/11101
2025-03-13 16:06:08 +01:00
mhsanaei
21ea673c30
Make wget verify certificates part2 #2661
...
Co-Authored-By: İrem Kuyucu <siren@kernal.eu>
2025-02-24 13:15:18 +01:00
atarwn
7a3ee69a7f
Virtuozzo linux support ( #2668 )
2025-02-24 09:22:34 +01:00
Sanaei
d18a1a37ce
revert group management ( #2656 )
...
* Revert "json post base path bug fixed (#2647 )"
This reverts commit 04cf250a54 .
* Revert "Group Management of Subscription Clients"
* Revert "fix getSubGroupClients for enable/disable and edit clients."
* Revert "Enhance database initialization in db.go (#2645 )"
This reverts commit 66fe84181b .
* Revert "Add checkpoint handling in CloseDB function (#2646 )"
This reverts commit 4dd40f6f19 .
* Revert "Improved database model migration and added indexing (#2655 )"
This reverts commit b922d986d6 .
2025-02-04 11:27:58 +01:00
Zahar Izmailov
b922d986d6
Improved database model migration and added indexing ( #2655 )
2025-02-03 13:36:03 +01:00
Tara Rostami
3f38c42852
fail2ban: better ipv6 validation ( #2615 )
2024-12-20 18:33:27 +01:00
mhsanaei
eb58314c53
bash - remove version limit
2024-10-31 01:18:37 +01:00
mhsanaei
d40fa46851
fix access url
2024-10-30 15:24:18 +01:00
mhsanaei
13f7e07128
bash - Access URL
...
I will add https with domain later
2024-10-29 15:20:38 +01:00
mhsanaei
610db7827d
Update install.sh
2024-10-25 11:30:44 +02:00
mhsanaei
14435db0d8
bash - Default credentials detected. Security update required
2024-10-24 21:17:00 +02:00
mhsanaei
bd6402562e
OS - Alpine Linux
...
fix bash menu for docker
2024-10-24 20:36:12 +02:00
mhsanaei
99cadf7652
Update install.sh
2024-10-16 16:29:20 +02:00