feat(hosts): add Xray sockopt domain strategy - #822
Open
TaraRostami wants to merge 1 commit into
Open
Conversation
Add a per-host Xray sockopt domain strategy option for generated Xray JSON proxy outbounds. Defaults to AsIs for backward compatibility, merges with existing Fragment/Noise dialerProxy settings, supports generic and Shadowsocks outbounds plus XHTTP download settings, and keeps WireGuard's protocol-specific domain strategy unchanged. Includes database migration, generated API client updates, and regression/integration tests.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a per-host
xray_sockopt_domain_strategyoption to controlstreamSettings.sockopt.domainStrategyon generated Xray JSON proxy outbounds.The default is
AsIsand remains implicit for backward compatibility, so existing hosts keep the same generated Xray configuration unless a different strategy is selected.This is useful when a generated Xray client configuration needs Xray's built-in DNS resolver to resolve the outbound server hostname, while keeping the hostname itself in the Host configuration and other subscription formats.
The setting merges with existing Fragment/Noise
dialerProxyconfiguration and is applied to generated VMess/VLESS/Trojan/Hysteria outbounds, Shadowsocks, and XHTTP download-side stream settings.WireGuard keeps its existing protocol-specific
settings.domainStrategy, and non-Xray subscription formats such as share links remain unchanged.Important
The migration currently uses
7c4bd5128e62as itsdown_revision, which was theAlembic head of
devwhen this PR was prepared. If new migrations are merged intodevbefore this PR, this migration should be rebased onto the new head to avoidcreating multiple Alembic heads.
Type of change
Checklist
Testing
Tested locally on Windows with a development SQLite database.
Backend / migration checks:
Feature-specific tests
The dedicated regression tests cover:
streamSettings.sockopt.domainStrategysettings.domainStrategyAsIsremaining implicit in generated Xray JSONdomainStrategywith Fragment/NoisedialerProxyThe panel was also run locally and the feature was manually tested through the Host UI and generated Xray subscription output.
Screenshots
Notes for reviewers
AsIsis the default and is intentionally omitted from generated Xray JSON to preserve existing behavior.streamSettings.sockopt.domainStrategy.settings.domainStrategy.AsIsas a non-null server default.