mirror of
https://github.com/amnezia-vpn/amnezia-client.git
synced 2026-10-14 05:42:24 +00:00
[GH-ISSUE #2818] Amnezia Premium VLESS reports connected but passes no traffic; gateway can issue malformed or dead configs #1287
Open
opened 2026-10-13 20:39:28 +00:00 by bsakaguchi
·
4 comments
No Branch/Tag specified
dev
feat/gateway-service-import-test
feat/api-tests
fix/serialize-log-record-writes-and-pin-log-date-format-locale
fix/libagw-review-fixes
feat/otp-login
fix/ios-xray-ipv6-leak
fix/macos-xray-ipv6-leak
feat/add-support-include-split-tunnel
fix/win-xray-app-split-tunneling
fix/bug-when-saving-after-canceling
fix/xray-reconnect-crash
fix/share-empty-config-on-ssh-timeout
fix/ssh-credentials-input
fix/updater-verify-signature
fix/async-ssh-threading
fix/xray-check-inet-and-liveness-monitor
fix/selfhosted-server-installations
feat/add-support-ikev2-macos
fix/icons-different-color-themes
feat/add_support_arm_windows
feat/add-deep-link
feat/fixed-push-notifications-on-VPN-connect-disconnect-2
feat/implement-QR-code-generation-and-scanning
feat/file-password-protection
feature/add-local-proxy
feat/add-support-split-tunnel-macos
feat/tests
fix/android-register-unacknowledged-purchase
fix/share_on_linux
mirroring-to-outside
feat_copy_docker_configs
feat/self-diagnostics-log
feat/amnezia-free-vless-switch
fix/conan_build_android_on_win
fix/linux-reconnect-dns-reliability
fix/windows-connection-stability
fix/linux-reconnect-refactoring
fix/ios-groupidentifier-order
feat/xray-subscription-link
fix/minor-fixes
fix/xray-config-inplace-edit
feat/amnezia-sdk-typed-api
feat/amnezia-sdk-integration
feat/force-update-native
refactor/marketplace-update-popup
feat/force-update
fix/valnurability_dev
chore-xcode-version
fix/empty-i1-i5
build_qt_6_10_1
master
feat/protocol-selection
fix/openvpn_install
feat/locations_change
feat/locations_change_rework
feature/local-proxy-integration
fix/filepicker_atv
fix_valnurability
fix/macos-ne-codesign-4.8.19.0
temp-branch-for-testing
fix/rebased_4_8_19_linux_fix_error
feat/proxy-storage-cache
fix/zeroed-params
fix/killswitch-blocknets-linux
update/translation_RU
fix/self_hosted_reinstall_error
feat/selfhosted-dns
fix/agp_version_up
feat/switch_to_alive_protocol
feat/support_multipeer
server_scripts_update
fix/extended-vless-configuration
chore/apple-ci-cd-macos-versions
feat/add-telemt
fix/android_keystore_read_error
feat/add-mtproxy
chore/bump-qt-version
fix/make_dbus_async
feature/dns
rebase/apple-tv-target-on-conan
fix/outbound_freedom_xray_with_dns_fix
feat/apk_support
feat/fallback-proxy
feat/apple-tv-target
fix/dns_reconnection_issue
feat/fixed-push-notifications-on-VPN-connect-disconnect
fix/linux-firewall
docker-regional-locks
appstore-review-popup
feat/storekit2
fix/uninstall-split-tunnelling-driver
revert-2376-chore/license-file
support_16kb_android
bump_version
feat_add_review_android
bugfix/translation-absence-on-subscription-key-page
feat/location-separation-by-region
bugfix/text-moving-when-resing-window
fix_backup
feature/add-purchase-android
bugfix/moved-text-while-resizing-window
bugfix/incorrect-killswitch-restore-from-backup
fix/backup-exclude-secondary-api-configs
feat/proxy-fields-for-dev-console
bugfix/ovpn-ios-fix
bugfix/linux-bundle-libraries
fix/xray-app-split-win
fix/upload-to-s3
chore/add-release-date-upload
feat_add_webview_support
feature/configuration-transfer-through-qr
feat/bot-key-unlink-device
fix/ad-link-lang-support
fix/qsecuresettings-with-android
feat/add-support-arm64-win
spanish-translations
fix/context-menu
feat/add-system-dns-support
fix/qt6-9-support
fix/qt6_9_support
bugfix/strict-killswitch-ui
android-7
chore/minor-bugfixes
feature/awg-net-fix-macos-wakeup
fixbug/ios18
bugfix/ios-ne-crash
fix/linux-tray-quit-button
cryptpad-support
bugfix/disable-linux-killswitch
fix/minor-ui-fixes
feature/setup-guid-tun2socks
feature/linux-ipsec
feature/ipsec-linux
refactoring/server-config-in-classes
feature/macos-ipsec
fix/ui-fixes-after-merge-with-d20ed4a
chore/focus_control_after_qt_6.9_migration
feature/integrate-xray-as-a-library
maxos-awg-fix
feature/add-new-awg-docker-image
chore/update-3rd-prebuild
feature/test-news
fix/api-conf-files
bugfix/split-tunneling-with-api-config
bugfix/ios-awg-new-fields
feature/special-handshake-2
feat/xray-api-support
fix/desktop-entry
bugfix/shadowsocks-cipher-setting-not-changing
feature/update-tap
bugfix/openvpn_import_fix
feature/ability-to-change-port-after-installing-xray
bugfix/strict-mode-ovpn
bugfix/win-ipv6-ovpn
bugfix/subnet-adress-setting
exception-podman-docker
bugfix/fix-listviewtype-scrolling
bugfix/win-disabled-ipv6
bugfix/win-ipv6-disabled-ovpn
feature/killswitch-strict-mode
feature/awg-network-check
feature/empty-split-tunneling-list
feature/support-info
chore/update-go-version
checking-Linux-version
update_server_scripts
bugfix/button-selection-easy-setup-page
feature/old-api-proxy
patch/user-checking
fix/correcting-version
support-podman
support_podman
user-checking-patch
feature/check-docker-version
feature/allowed-dns-list
without_lsof
chore/error-body
Update-amneziavpn_ru_RU
shiroow-patch-8
shiroow-patch-7
shiroow-patch-6
shiroow-patch-5
shiroow-patch-4
shiroow-patch-3
shiroow-patch-2
shiroow-patch-1
check_sudo_permissions
feature/euphoria
add_next_octet_to_ip_settings
bugfix/mobile-controllers-init
euphoria
bugfix/android-crush
feature/macox-network-extension
bugfix/pre-release-hotfixes
bugfix/ipsec-pfs
chore/ios-site-links
checking_sudo_permissions
feature/android-tv
improve_navigation_cpp
bugfix/linux-firewall-install
fixbug/wireguard-handshake-time
ReadmeRu_full
feature/xray-user-management
feature/subscription-end-date
chore/clang-format
feature/ru-in-readme
chore/increased-api-timeout
chore/deploy-workflow
bugfix/services-list-scroll
wheel_group_suppor
chore/bump-xcode-version
fixbug/mac-network-extension
feature/android-gpb
feature/page-home-drawer-country-selection
checking-sudo-users
bugfix/service-info-from-response
fixbug/build-macos-ne-2
android-qt-6.7.3
fixbug/build-macos-ne
bugfix/wg-windows-log-folder
feature/psk-key-api-request
bugfix/user-management-qml-warnings
fix/macos-network-extension
fixbug/macos-NE-build
bugfix/fixed-isDevEnv-initialization
bugfix/revert-ios-ovpn
feature/tun2socksSrv
fix/disable_singleapp
feature/awg-wg-name-resolving
feature/disable-dhcp
bugfix/allowed-ips-old-configs
feature/goodbyedpi
feature/add-exception-log
refactoring/remove-ipv6-from-default-routes
refactoring/singleapplication-submodule
macos-dirty-build
test/gateway
Update-amneziavpn_fa_IR.ts
bugfix/ipsec-win
fix/xray-custom-port
improve-tab-navigation
test-win-11
feature/android-tv-remote-control-support
KsZnak-patch-1
feature/awg-wg-qr
bugfix/fix-loopback-splittunel
fix/setup_host_firewall
feature/android-xray
feature/openvpn-pass
feature/connection-string
fix/clickable-errors
bugfix/api_1100_fix
feature/graphview
testsvg
feature/update-win-awg
feature/open-as-amnezia
feature/update-mozilla-upstream
bugfix/qr-code-cutting
feature/native-wg-psk
test/awg-centos
bugfix/hide_error
feature/add-uninstaller-checkbox
bugfix/cancel-button-on-install-page
bugfix/anchors-page-home-warning
awg-udptlspipe
button-focus-fix
revert-677-fix/logger
bugfix/Revert_PR_596
bugfix/allowed-ips-api-configs
bugfix/on-escape-pressed
feature/auto-scroll-for-server-selection-list
fix/ui-fixes
translations/update_fa_IR.ts
feature/new-awg-docker-container
bugfix/awg_ipv6_fix
feature/tab-navigation
fix/username-no-autocapitalization
sure
refactoring/servers-model-cleanup
feature/wg-mtu-setup-ios
3rd_adaptation_to_diff_OS
sudo_not_found
test/docker-ce
bugfix/double_clear_server_from_amnezia
fix/android
client/3rd-prebuilt
revert-559-KsZnak-translation-ru-ex
KsZnak-translation-ru-ex
KsZnak-br1
KsZnak-text-change
feature/api-awg
feature/error-code-output
feature/win_x32_builds
text/debug-output
feature/ovpn3-desktop-cli
bugfix/secureqsettings-deadlock
refactoring/change-settings-when-connected
files_check
ArchLinux-support
second_adaptation_to_diff_os
sudo
refactoring/android-build
adaptation_to_different_os
feature/online_installer_for_v4
update_to_r2
bugfix/return-after-installation
feature/custom_drawer_component
bugfix/split-tunneling
bugfix/existing-awg-container
revert-370-feature/custom_drawer_component
bugfix/adapted_awg_questiondrawer
bugfix/updated_drawer_height_pageserverdata
bugfix/translated_new_source_strings_to_chinese
feature/split-tunneling-config
feature/accessibility-support
branch_connectivity_change_fix
feature/ikev2_android
android_ss_transport
bugfix/macos_fixes
feature/nextcloud-support
feature/macos_network_extension
android_pt_transport_source
feature/ios-openvpn3-pluggable-transport-Cloak
bugfix/cloak_for_desktops_fix
arm-build-macos
fix-macos-build-brew
bugfix/ios-build-openvpnadapter-from-source
feature/download-native-wireguard-config-on-connect
feature/v2ray-container
bugfix/dpkg-busy-checking-stuck
feature/online-installer
dev-killswitch
dev-netadapters
5.0.3.0
5.0.2.1
5.0.2.0
5.0.1.5
5.0.0.5
5.0.0.2
4.8.21.0
4.8.19.0
4.8.18.0
4.8.17.0
4.8.16.0
4.8.15.4
4.8.15.0
4.8.14.5
4.8.14.1
4.8.12.9
4.8.12.8
4.8.12.7
4.8.12.6
4.8.11.4
4.8.11.3
4.8.11.2
4.8.11.1
4.8.11.0
4.8.10.0
4.8.9.2
4.8.9.1
4.8.9.0
4.8.8.3
4.8.8.2
4.8.8.1
4.8.7.2
4.8.7.1
4.8.7.0
4.8.6.0
4.8.5.0
4.8.4.5
4.8.4.4
4.8.4.3
4.8.4.2
4.8.4.1
4.8.4.0
4.8.3.2
4.8.3.1
4.8.2.3
4.8.1.9
4.8.1.0
4.8.0.5
4.7.0.0
4.6.0.3
4.6.0.1
4.5.3.0
4.5.0.0
4.4.0.0
4.3.0.0
4.2.1.0
4.2.0.1
4.1.2.0_cloak_pt_experimental
4.1.0.1
4.0.8
3.1.0
3.0.8
3.0.7
3.0.5
2.1.2
2.1.0
2.0.10
2.0.9
2.0.8
2.0.7
2.0.6
2.0.5
2.0.1
2.0
1.9.1
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
1.0
No labels
pull-request
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
amnezia-vpn/amnezia-client#1287
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @ovkirillov on GitHub (Jul 8, 2026).
Original GitHub issue: https://github.com/amnezia-vpn/amnezia-client/issues/2818
Description
AmneziaVPN reports an Amnezia Premium VLESS connection as connected and creates
tun2, but no traffic passes. Native traffic, an HTTP CONNECT proxy, and a SOCKS5 proxy all time out.This appears related to #2750, but this report includes Linux reproduction, gateway-allocation validation, route/firewall analysis, and an independent Xray Core control test.
No subscription key, UUID, REALITY key, short ID, XHTTP path, or authentication data is included below.
Environment
4.8.19.0(129ae44)awg,vlessSteps to reproduce
Use VLESS protocoland reload/fetch the API configuration.tun2is created.Example checks:
Actual behavior
tun2isUP,LOWER_UPand the public route selects it.--resolvealso times out, so this is not only DNS.Expected behavior
The client should only report the Premium VLESS connection as usable after the Xray outbound can complete its handshake and pass traffic. The gateway should not issue structurally incomplete or unreachable configurations.
Findings
1. Endpoint route and kill-switch exception can target the wrong address
For one issued Premium XHTTP/TLS configuration:
hostNameand Xrayoutbounds[].settings.vnext[].addresswere different.hostName.tun2itself.This creates a recursive tunnel bootstrap failure. Adding a
/32physical route andamnvpn.110.allowNetsexception for the actual Xrayvnext.addressfixes the bootstrap route, although the issued Premium sessions described below still fail.Suggested client fix: derive the physical route and kill-switch exception from the active Xray outbound address, not only from profile
hostName.2. Gateway issued malformed or dead configurations
The encrypted Premium gateway API was queried repeatedly through a known-working self-hosted tunnel. Returned VLESS profiles were validated before use.
Observed allocations included:
serverNameand empty short ID. TCP connected, but the REALITY session never completed.Multiple locations were tested. Invalid configurations should be rejected by the API or client before replacing the last known configuration.
3. Independent Xray Core control reproduces the reset
The complete REALITY/Vision profile was exported locally without exposing its secrets and tested with official Xray Core 26.5.9:
127.0.0.1Xray accepted the local SOCKS request, then the Premium session was reset:
Because this also fails through a working alternate route with upstream Xray Core, the complete Premium allocation is failing independently of Fedora TUN routing, DNS, or the direct ISP path.
Control result
After restoring the self-hosted profile on the same host:
This confirms that the local proxy services, TUN path, and general Xray support are functional.
Suggested fixes
vnext.address:port;serverNameand public key;Connectedsolely becausetun2exists; require an Xray handshake or a small connectivity probe.Additional notes
tun2socksprocess were active during the final tests.@Swiftkill commented on GitHub (Jul 10, 2026):
Same problem. At same time wole programs UI becomes unresponsible or coruped and reports 1100 API error
@WAYuriyDmitriev commented on GitHub (Jul 12, 2026):
Some problem Macos 15.5
@zhghe77 commented on GitHub (Jul 21, 2026):
Same problem on Fedora 44, but works fine on Windows 11.
@HeisLuka commented on GitHub (Sep 9, 2026):
I rechecked this against current
dev(2a8242d3067d1fafcc5e17417c1eb98a430896d9), and the source still appears to permit the main failure modes described in this issue.There seem to be three independent problems here.
1. XRay still has two possible endpoint identities
XrayProtocolloads the actual native XRay configuration intom_xrayConfig, but independently derives:The real VLESS transport endpoint, however, is encoded in the XRay outbound:
The project itself already treats
vnext[0].addressas the VLESS address in its serialization code.But
setupRouting()still uses the metadata-derivedm_remoteAddressfor control-plane decisions, including:So a configuration with:
can still result in XRay dialing B while the surrounding routing / firewall logic reasons about A.
That means the same VPN generation can still have two different notions of "the server endpoint".
I think this should be collapsed into one canonical transport identity, derived from the actual active XRay outbound:
and that same identity should be used for endpoint escape, physical route lookup, kill-switch allowance, diagnostics and reachability checks.
hostNamecan remain profile/API metadata, but it should not independently define the control-plane endpoint when the native XRay config says something different.2. Premium refresh still appears to trust a gateway candidate before proving it is usable
The current refresh path is still roughly:
ApiV2ServerConfig::fromJson()is a deserializer. It copies fields such ashostName, containers, DNS, API config, etc.; it does not validate VLESS/REALITY semantics.Likewise,
SecureServersRepository::editServer()validates the broad config type and then persists the replacement. It is not a protocol validator.I do not see a validation barrier in this path that proves, before promotion, that the returned VLESS generation has for example:
and there is no last-known-good activation transaction around that replacement.
So the problematic state described in the report is still structurally possible:
A safer contract would be:
If validation or activation fails, the previous known-working generation should remain authoritative.
This is separate from the backend problem. The independent upstream-Xray test in the original report is important because it shows that some allocations can also be dead outside Amnezia's TUN/routing path. Client-side validation cannot repair a bad backend allocation, but it can prevent that allocation from replacing a working one.
3.
Connectedstill does not mean the XRay outbound is healthyThis part is particularly clear in current
XrayProtocol::startTun2Socks().After tun2socks emits its local stack-ready message:
the client runs
setupRouting()and then does:There is no requirement here for:
So the state from this report remains representable by design:
In other words:
I would either introduce an intermediate state or make
Connecteddepend on a bounded end-to-end health condition.This does not need to be a heavy Internet speed test. Even a small controlled probe, or a protocol/data-plane readiness signal with a timeout, would distinguish "local plumbing is installed" from "the VPN can actually transport traffic".
Suggested regression cases
hostName=A,vnext.address=B-> endpoint routing / firewall logic must target B.hostNamealone must not change the actual XRay transport path.serverName,publicKeyor requiredshortId-> reject before repository replacement.Connectedstate.So although this issue was originally reported against
4.8.19.0, the core client-side invariants behind it still do not appear to be enforced in currentdev.I would treat the backend allocation quality and these client-side lifecycle/control-plane bugs as related but separate issues rather than choosing one as the explanation for all failures.