Commit Graph

85 Commits

Author SHA1 Message Date
infosave 0d72579edd fix(awg2): auto-detect wg/awg tool inside container (real cause of issue #50)
Live testing against an AmneziaWG 2.0 server revealed the actual root cause
of "Failed to generate client keys": the official Amnezia container image
ships the userspace tool only as `wg` (a patched AmneziaWG binary) and has
NO `awg` binary, while the panel hardcoded `awg` for AWG2. `awg genkey` then
failed with "sh: awg: not found". (amneziawg-go ships `awg` with `wg`
symlinked, so both names work there — but the Amnezia image does not.)

- generateClientKeys(): detect the tool inside the container
  (`command -v awg || command -v wg`) instead of hardcoding `awg`.
- addClientToServer(): resolve the tool via new resolveWgTool() helper so
  `wg set` / `wg-quick up` (peer apply) also work on the Amnezia image.
- executeServerCommand(): delegate to VpnServer::executeCommand so SSH key
  auth + docker sudo auto-detection apply to all 19 call sites (it was
  password-only before).

Verified end-to-end on a live AWG2 server: pre-fix code fails with
"Failed to generate client keys: sh: awg: not found"; fixed code creates
the client, generates keys, and the peer appears in `wg show wg0`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 12:13:15 +03:00
infosave b819eb35b0 fix(awg2): resolve issue #50 client key generation and install timeout
Issue #50 (AmneziaWG 2.0 / awg2): "Failed to generate client keys" when
creating clients, and "Invalid server response" on first install.

- VpnClient::generateClientKeys() built its own password-only SSH command
  (PubkeyAuthentication=no, no sudo), bypassing VpnServer::executeCommand.
  That broke key-based servers and hosts where docker requires sudo. Route
  it through executeCommand so SSH-key auth and docker sudo auto-detection
  apply, matching every other remote operation.
- VpnClient::getNextClientIP() read /opt/amnezia/awg/wg0.conf only; AWG2
  uses awg0.conf. Read awg0.conf first, fall back to wg0.conf.
- deploy route: lift PHP time limit (set_time_limit(0) + ignore_user_abort)
  so the multi-minute awg2 docker build is not killed mid-request, which
  produced the truncated, non-JSON "Invalid server response".
- migration 070: drop `--no-cache` from the awg2 docker build so layers are
  reused, making installs and retries fast and idempotent.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-29 10:31:59 +03:00
infosave2007 809b0ca63d feat(migrations): Add WARP auto-integration with redsocks and iptables
- Implemented migration 067 to set up Cloudflare WARP with automatic routing for VPN client TCP traffic through a redsocks proxy.
- Included installation scripts for WARP and redsocks, along with iptables rules for traffic redirection.
- Added detection for X-Ray and patching of its outbound configuration.
- Created uninstall scripts to clean up configurations and remove installed packages.

fix(migrations): Enhance WARP install script for heredoc compatibility

- Implemented migration 068 to fix nested heredoc conflicts and streamline the WARP installation script for panel compatibility.
- Removed duplicate `set -eo pipefail` and adjusted formatting for better readability.

feat(migrations): Auto-detect AIVPN subnet for routing in WARP setup

- Implemented migration 069 to enhance the WARP installation script by adding detection for AIVPN subnets alongside existing AWG container detection.
- Updated routing logic to handle both container IPs and host-level VPN subnets.
- Ensured proper configuration of iptables for seamless traffic routing through the WARP proxy.
2026-04-25 10:40:21 +03:00
infosave2007 f04f9dd1cb refactor: enhance SSH command handling and auto-detect sudo requirements for Docker commands 2026-04-24 16:15:04 +03:00
infosave2007 aae920a5c2 fix: update SSH command execution to use semicolons for reliability and improve disk usage calculation 2026-04-24 15:48:42 +03:00
infosave2007 63f3d202b6 fix: correct AIVPN byte counter mapping to match server-to-client and client-to-server traffic semantics 2026-04-24 07:16:09 +03:00
infosave2007 8eed687f66 refactor: consolidate metric collection into single SSH calls and add support for SSH key authentication 2026-04-24 07:07:57 +03:00
infosave2007 4c4b682256 fix: normalize SSH private key to prevent libcrypto errors caused by incorrect formatting 2026-04-24 06:48:18 +03:00
infosave2007 a8bb70a58f fix: prevent secondary protocols from overwriting primary server configuration data 2026-04-23 18:31:05 +03:00
infosave2007 b99783e40f fix: prioritize protocol metadata container name over server data during protocol installation 2026-04-23 18:04:20 +03:00
infosave2007 6006628f64 feat: add multi-protocol support for AWG2 with dynamic tool selection and configuration path resolution 2026-04-23 18:00:09 +03:00
infosave2007 e2767b3af2 chore: configure writable backup and log directories with appropriate permissions in Docker and PHP 2026-04-23 16:21:36 +03:00
infosave2007 ebcf09df08 fix: cast shell_exec output to string to prevent null pointer exceptions during split 2026-04-23 16:17:32 +03:00
infosave2007 8fd8dd092c feat: implement AIVPN host binary fallback and update installation script for prebuilt binary 2026-04-21 18:56:05 +03:00
infosave2007 19e1107c9d feat: new protocol QR 2026-04-20 21:34:27 +03:00
infosave2007 7bacc94e9c feat: update QR code generation to use vpn:// format with JSON and zlib compression 2026-04-20 21:15:35 +03:00
infosave2007 c1282a058d feat: add install_protocol field and server_protocols entry in save method 2026-04-20 20:55:24 +03:00
infosave2007 c29162ddb9 feat: add support for AWG2 QR code generation and vpn:// URL configuration 2026-04-20 19:52:33 +03:00
infosave2007 08e0a3499c feat: update AWG2 configuration handling in InstallProtocolManager and VpnClient 2026-04-20 18:25:35 +03:00
infosave2007 5d88728333 feat: enhance AWG2 support with additional parameters and backward compatibility improvements 2026-04-15 20:26:48 +03:00
infosave2007 191f85562a feat: implement container name resolution and persistence for AIVPN servers 2026-04-11 11:11:18 +03:00
infosave2007 3a1cfb1856 feat: enhance Docker command execution with improved error handling and path management 2026-04-04 17:22:38 +03:00
infosave2007 d6eda37ebd feat: enhance ServerMonitoring to resolve container names based on protocol and improve client metrics handling 2026-04-04 16:24:21 +03:00
infosave2007 bb960645d7 feat: enhance VpnClient to support multi-protocol metadata and improve key generation error handling 2026-04-04 16:15:10 +03:00
infosave2007 1574f54bef feat: enhance AWG2 protocol handling by adding config directory management and fixing empty peer block in install script 2026-04-04 16:02:11 +03:00
infosave2007 51d5d13c41 feat: enhance SQL migration handling and add Docker installation instructions for remote servers 2026-04-04 15:48:15 +03:00
infosave2007 ecaae6c18a feat: synchronize MTProxy client links with current runtime configuration after reinstall 2026-04-04 15:35:59 +03:00
infosave2007 c38c3d1c83 feat: Add AIVPN support and enhance client statistics tracking
- Introduced AIVPN server detection and statistics fetching in ServerMonitoring.
- Implemented AIVPN client statistics handling in VpnClient, including raw and offset counters for traffic.
- Enhanced AWG parameters to include S3 and S4.
- Updated database schema to accommodate new AIVPN statistics fields.
- Added a script for remote reset and reinstallation of protocols.
- Improved client view template to ensure proper display of connection instructions.
- Added translations for connection instructions in multiple languages.
- Ensured host-level NAT for AWG subnet in VpnServer.
2026-04-04 15:27:40 +03:00
infosave2007 da5cdc6ae8 feat: add AWG2 protocol support and enhance API documentation for protocol management 2026-04-04 13:59:37 +03:00
infosave2007 da72a5b3ed feat: enhance VpnClient and VpnServer for improved command execution and configuration handling 2026-04-04 12:45:04 +03:00
infosave2007 65e6a2dd0b feat: add support for awg2, mtproxy, and aivpn protocols, and implement user role-based access control. 2026-04-04 09:56:49 +03:00
infosave2007 85ff5b2502 feat: Update client IP handling for X-Ray configuration and enable text content display by default 2026-02-14 11:39:04 +03:00
infosave2007 f6a854f5ab feat: Allocate proper IP address for clients and expose getNextClientIP method 2026-02-13 20:40:04 +03:00
infosave2007 e12f923aff feat: Add protocol_id to VPN clients insertion logic 2026-02-13 20:13:57 +03:00
infosave2007 444e64a50a feat: Update client insertion logic to use name/email instead of login 2026-02-13 19:37:41 +03:00
infosave2007 5172e43fc1 feat: Enhance protocol detection and restoration for AWG and X-Ray installations 2026-02-13 19:01:00 +03:00
infosave2007 327ebd85e9 feat: Enhance online client tracking by including recent handshake counts for WireGuard/AWG 2026-02-05 19:34:02 +03:00
infosave2007 09baa19a09 feat: Enforce single IP per peer for AWG/WireGuard connections 2026-01-30 22:14:09 +03:00
infosave2007 77398b5000 feat: Enforce single IP per user for Xray servers and update protocol checks 2026-01-30 21:45:05 +03:00
infosave2007 66bd218aec feat: Add online clients tracking and display on dashboard and server views 2026-01-30 21:07:30 +03:00
infosave2007 28a6de5697 feat: Implement single IP enforcement for Xray VLESS protocol with online tracking 2026-01-30 20:09:39 +03:00
infosave2007 e90e3a8df2 fix traffic reboot 2026-01-30 19:27:02 +03:00
infosave2007 f4fa6ec941 fix: Do not inherit client_id from server protocols (prevents duplicate UUIDs) 2026-01-30 15:58:15 +03:00
infosave2007 1627fc105e fix: Prevent X-ray client UUID reuse 2026-01-30 15:38:18 +03:00
infosave2007 77115fb2a0 fix: Cleanup debug logging in ServerMonitoring 2026-01-30 15:30:32 +03:00
infosave2007 11ab3cbc88 fix: Add X-ray support to ServerMonitoring for background stats collection 2026-01-30 15:21:32 +03:00
infosave2007 0b759f7b32 fix: Update vpn_clients speed columns in ServerMonitoring for real-time display 2026-01-30 15:14:29 +03:00
infosave2007 1c95b34cf6 feat: Enforce 1 user 1 connection for X-ray and fix active stats speed 2026-01-30 15:04:23 +03:00
infosave2007 da9ef48f76 feat: Реализован API для удаления клиентов, добавлен отладочный скрипт статистики XRay и метод InstallProtocolManager::install сделан публичным. 2026-01-27 16:15:00 +03:00
infosave2007 ed2cf87418 fix(awg): reload wg0 interface after adding client to apply AWG params
Without interface reload, AWG obfuscation params (Jc, S1, S2, H1-H4) are not
applied to the kernel, and connections fail because client uses AWG but
server uses standard WireGuard protocol.
2026-01-27 15:17:16 +03:00