mirror of
https://github.com/amnezia-vpn/amnezia-client.git
synced 2026-10-15 05:42:07 +00:00
Open
opened 2026-10-13 20:42:20 +00:00 by bsakaguchi
·
3 comments
No Branch/Tag specified
dev
feat/otp-login
feat/api-tests
fix/show-locked-xray-settings-page-for-servers-without-write-access
fix/serialize-log-record-writes-and-pin-log-date-format-locale
fix/libagw-review-fixes
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#1430
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 @pers1307 on GitHub (Aug 29, 2026).
Original GitHub issue: https://github.com/amnezia-vpn/amnezia-client/issues/3089
Describe the bug
When AmneziaWG 3.1 is installed on a self-hosted server through the client, the
generated
/opt/amnezia/awg/awg0.confcontains noMTUdirective. The serverinterface therefore comes up with the WireGuard default of 1420, while the
Amnezia client always configures its own tunnel interface with 1376.
Because of this 44-byte mismatch, every server→client packet larger than 1376
bytes is dropped at the client's tunnel interface. Handshake and small packets
pass, so the client shows "Connected", but no web page ever loads.
The AmneziaWG 2.0 container on the same server did write
MTU = 1376into itsconfig, so the problem only appears after switching to 3.1.
To Reproduce
Steps to reproduce the behavior:
docker exec <awg-container> ip link show awg0— MTU is 1420,while the client interface (
amn0) is 1376Expected behavior
The server-side interface MTU should match the value the client configures on
its own tunnel interface, i.e.
MTU = 1376should be written intoawg0.confduring installation, as it was for AmneziaWG 2.0.
Log files
Server side, AmneziaWG 3.1 (broken), counters after a few minutes of use:
The server keeps retransmitting into a black hole — almost nothing arrives from
the client, because its requests never get answered.
Same server, AmneziaWG 2.0 with
MTU = 1376on both sides (working):Configuration difference:
Screenshots
N/A — the client UI shows a normal "Connected" state, the failure is invisible in the
UI.
Desktop (please complete the following information):
Smartphone (please complete the following information):
Server (please complete the following information):
amneziawg-go 0.0.20250522Additional context
Workaround — add
MTU = 1376to the[Interface]section of the server'sawg0.confand apply it live:After this the tunnel works normally on both desktop and mobile, with no other
changes.
Verified on a test bench: with an artificially limited path MTU the exact same
symptom reproduces (small packets fine, large downloads fail), and lowering the
tunnel MTU fixes it.
Side note: the 3.1 installer also leaves
I1–I5empty, while the 2.0container had
I1configured. The blog post announcing 3.1 explicitly statesthat protocol behaviour depends on
I1, so an empty default looks unintended.@Damnboychi1 commented on GitHub (Aug 29, 2026):
#3064
@HeisLuka commented on GitHub (Sep 9, 2026):
I checked this against
5.0.1.5, currentdev, and the currentamneziawg-toolsawg-quickimplementation.There is a source-confirmed MTU lifecycle problem here, although I would describe it a little differently from the original report.
The server and client MTUs currently have completely separate ownership
The current AWG model already shows the asymmetry.
AwgClientConfigcontains:but
AwgServerConfighas no MTU field at all.So there is currently no server-side AWG MTU value that can be:
with the client MTU.
The generated server config contains no
MTUCurrent
client/server_scripts/awg/configure_container.shcreates:but no:
This is identical in
5.0.1.5and currentdev.The container then starts the interface through:
So the effective server MTU is delegated entirely to
awg-quick.awg-quickexplains the observed 1420When
MTUis absent, currentamneziawg-toolsdoes approximately:The actual code ends with:
Therefore on a normal Ethernet/default route with MTU 1500:
which exactly matches the server interface observed in this report.
So:
is not random behavior.
It is the expected result of the current generated configuration.
But the Amnezia client uses a different MTU policy
Current client defaults are:
and
AwgConfigModel::applyDefaultsToClientConfig()applies that value whenever the client config has no explicit MTU:That value is eventually passed to the platform tunnel interface as
deviceMTU.So a default self-hosted installation can intentionally become:
without any component treating this as inconsistent.
This is the source-confirmed bug
I would frame the invariant as:
rather than:
This becomes more important for AWG 3.x because the transport adds behavior and overhead beyond plain WireGuard, while
awg-quick's automatic calculation is still based on:The installer has information about the protocol being deployed, but the server-side MTU calculation currently does not.
The runtime workaround is strong evidence
The reporter observed:
and changing only:
made the connection usable.
That is a strong indication that the server's automatically selected MTU is part of the failure on this path.
I would, however, avoid describing the mechanism as:
without a packet trace proving that exact drop point.
The safer conclusion is:
The packet loss may occur at the outer-path PMTU/fragmentation boundary rather than simply because the receiving interface has a smaller MTU.
This is not clearly a pure AWG 2.0 -> 3.1 installer regression
I also checked the older source corresponding to commit:
used around the 4.8.21 generation.
Its AWG server configuration script also does not contain an
MTUdirective.So I cannot confirm from the repository that:
and AWG 3.1 later removed it.
If an older working container really contains:
it would be useful to determine where that line came from:
That historical question is separate from the current bug.
Current
devis already enough to establish:The fix should not just hardcode
1376into one shell scriptThere are several client defaults today:
while a self-hosted server has one interface MTU shared by all peers.
So simply adding:
would still leave mobile peers using a different policy.
I think a better design is to introduce an explicit server-side MTU into the AWG configuration model.
For example:
and generate:
Then generated client configurations should derive their maximum tunnel MTU from the same deployment policy.
A conservative invariant could be:
with a single safe AWG 3.x deployment value selected deliberately rather than inferred independently by
awg-quick.If
1280is intended to be the universal conservative AWG 3.x value, that policy should be explicit in the installer/model instead of emerging only on mobile builds.Diagnostics should expose the mismatch
The current UI can show client/server protocol settings, but because
AwgServerConfighas no MTU field it cannot show:A useful diagnostics block would be:
That would make this class of failure much easier to diagnose.
Installer postcondition
After starting AWG, the installer can cheaply verify:
and record/check the effective MTU.
The installation should not silently accept:
when those values differ.
Regression matrix
Expected:
not implicitly 1420 because
awg-quickguessed it.The server tunnel value should follow the AWG deployment policy and account for the real outer path.
Verify:
satisfy the deployment invariant.
Same check with the mobile MTU policy.
on one self-hosted AWG server.
The server setting must be safe for every generated client.
Change it in the supported configuration surface and verify it survives:
awg-quickmust not silently replace the intended MTU with its automaticunderlay - 80value.Test:
and verify there is no black-hole behavior.
A mismatched effective MTU must be visible rather than presenting only
Connected.So I would classify #3089 as confirmed on current dev, but with a slightly broader root cause:
Amnezia explicitly owns client AWG MTU while leaving server AWG MTU to
awg-quickauto-detection. The server configuration model has no MTU at all, so the two sides cannot be kept in one deployment contract.The reported
1420server value is exactly what the currentawg-quickauto-MTU algorithm produces on a 1500-byte underlay.@sp198469-hue commented on GitHub (Oct 12, 2026):
Всем привет, может быть кому то из русскоязычного человечества поможет, обновил Амнезию с 4 версии до пятой, дальше протокол Amnezia WG был сначала legacy потом 2.0, потом вышла 3.1 - дай думаю обнловлю. Пришлось снести пользователей (т.е. я пошел по пути "удалить протокол" -> "поставить протокол"), думал так будет чище, вернее смелее. Проблема №1 - после обновления протокола старая версия на Apple iPhone "не понимала" новый протокол, проблема №2 основная - ВПН начал дико тормозить. Решение для русскоговорящих тут https://github.com/amnezia-vpn/amnezia-client/issues/3274