mirror of https://github.com/2dust/v2rayN
parent
5683df2fc0
commit
bba93a0fb7
|
@ -834,6 +834,33 @@ namespace v2rayN.Handler
|
||||||
|
|
||||||
private int GenMoreOutbounds(ProfileItem node, V2rayConfig v2rayConfig)
|
private int GenMoreOutbounds(ProfileItem node, V2rayConfig v2rayConfig)
|
||||||
{
|
{
|
||||||
|
//fragment proxy
|
||||||
|
if (_config.coreBasicItem.enableFragment
|
||||||
|
&& !Utils.IsNullOrEmpty(v2rayConfig.outbounds[0].streamSettings?.security))
|
||||||
|
{
|
||||||
|
var fragmentOutbound = new Outbounds4Ray
|
||||||
|
{
|
||||||
|
protocol = "freedom",
|
||||||
|
tag = $"{Global.ProxyTag}3",
|
||||||
|
settings = new()
|
||||||
|
{
|
||||||
|
fragment = new()
|
||||||
|
{
|
||||||
|
packets = "tlshello",
|
||||||
|
length = "100-200",
|
||||||
|
interval = "10-20"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
v2rayConfig.outbounds.Add(fragmentOutbound);
|
||||||
|
v2rayConfig.outbounds[0].streamSettings.sockopt = new()
|
||||||
|
{
|
||||||
|
dialerProxy = fragmentOutbound.tag
|
||||||
|
};
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (node.subid.IsNullOrEmpty())
|
if (node.subid.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -31,6 +31,8 @@ namespace v2rayN.Models
|
||||||
/// 默认用户代理
|
/// 默认用户代理
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string defUserAgent { get; set; }
|
public string defUserAgent { get; set; }
|
||||||
|
|
||||||
|
public bool enableFragment { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
|
|
|
@ -253,6 +253,8 @@ namespace v2rayN.Models
|
||||||
///
|
///
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int? userLevel { get; set; }
|
public int? userLevel { get; set; }
|
||||||
|
|
||||||
|
public FragmentItem4Ray? fragment { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class VnextItem4Ray
|
public class VnextItem4Ray
|
||||||
|
@ -665,4 +667,11 @@ namespace v2rayN.Models
|
||||||
{
|
{
|
||||||
public string? dialerProxy { get; set; }
|
public string? dialerProxy { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class FragmentItem4Ray
|
||||||
|
{
|
||||||
|
public string? packets { get; set; }
|
||||||
|
public string? length { get; set; }
|
||||||
|
public string? interval { get; set; }
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -2635,6 +2635,24 @@ namespace v2rayN.Resx {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 Enable fragment 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
public static string TbSettingsEnableFragment {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TbSettingsEnableFragment", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 Use Xray and enable non-Tun mode, which conflicts with the group previous proxy 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
public static string TbSettingsEnableFragmentTips {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TbSettingsEnableFragmentTips", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找类似 Enable hardware acceleration(Require restart) 的本地化字符串。
|
/// 查找类似 Enable hardware acceleration(Require restart) 的本地化字符串。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -1201,4 +1201,10 @@
|
||||||
<data name="menuAddHttpServer" xml:space="preserve">
|
<data name="menuAddHttpServer" xml:space="preserve">
|
||||||
<value>Add [Http] server</value>
|
<value>Add [Http] server</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="TbSettingsEnableFragmentTips" xml:space="preserve">
|
||||||
|
<value>Use Xray and enable non-Tun mode, which conflicts with the group previous proxy</value>
|
||||||
|
</data>
|
||||||
|
<data name="TbSettingsEnableFragment" xml:space="preserve">
|
||||||
|
<value>Enable fragment</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -1198,4 +1198,10 @@
|
||||||
<data name="menuAddHttpServer" xml:space="preserve">
|
<data name="menuAddHttpServer" xml:space="preserve">
|
||||||
<value>添加[Http]服务器</value>
|
<value>添加[Http]服务器</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="TbSettingsEnableFragment" xml:space="preserve">
|
||||||
|
<value>启用分片(Fragment)</value>
|
||||||
|
</data>
|
||||||
|
<data name="TbSettingsEnableFragmentTips" xml:space="preserve">
|
||||||
|
<value>使用Xray且非Tun模式启用,和分组前置代理冲突</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -1171,4 +1171,10 @@
|
||||||
<data name="menuAddHttpServer" xml:space="preserve">
|
<data name="menuAddHttpServer" xml:space="preserve">
|
||||||
<value>新增[Http]伺服器</value>
|
<value>新增[Http]伺服器</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="TbSettingsEnableFragment" xml:space="preserve">
|
||||||
|
<value>啟用分片(Fragment)</value>
|
||||||
|
</data>
|
||||||
|
<data name="TbSettingsEnableFragmentTips" xml:space="preserve">
|
||||||
|
<value>使用Xray且非Tun模式啟用,和分組前置代理衝突</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
|
@ -34,6 +34,7 @@ namespace v2rayN.ViewModels
|
||||||
[Reactive] public string mux4SboxProtocol { get; set; }
|
[Reactive] public string mux4SboxProtocol { get; set; }
|
||||||
[Reactive] public int hyUpMbps { get; set; }
|
[Reactive] public int hyUpMbps { get; set; }
|
||||||
[Reactive] public int hyDownMbps { get; set; }
|
[Reactive] public int hyDownMbps { get; set; }
|
||||||
|
[Reactive] public bool enableFragment { get; set; }
|
||||||
|
|
||||||
#endregion Core
|
#endregion Core
|
||||||
|
|
||||||
|
@ -129,6 +130,7 @@ namespace v2rayN.ViewModels
|
||||||
mux4SboxProtocol = _config.mux4SboxItem.protocol;
|
mux4SboxProtocol = _config.mux4SboxItem.protocol;
|
||||||
hyUpMbps = _config.hysteriaItem.up_mbps;
|
hyUpMbps = _config.hysteriaItem.up_mbps;
|
||||||
hyDownMbps = _config.hysteriaItem.down_mbps;
|
hyDownMbps = _config.hysteriaItem.down_mbps;
|
||||||
|
enableFragment = _config.coreBasicItem.enableFragment;
|
||||||
|
|
||||||
#endregion Core
|
#endregion Core
|
||||||
|
|
||||||
|
@ -289,6 +291,7 @@ namespace v2rayN.ViewModels
|
||||||
_config.mux4SboxItem.protocol = mux4SboxProtocol;
|
_config.mux4SboxItem.protocol = mux4SboxProtocol;
|
||||||
_config.hysteriaItem.up_mbps = hyUpMbps;
|
_config.hysteriaItem.up_mbps = hyUpMbps;
|
||||||
_config.hysteriaItem.down_mbps = hyDownMbps;
|
_config.hysteriaItem.down_mbps = hyDownMbps;
|
||||||
|
_config.coreBasicItem.enableFragment = enableFragment;
|
||||||
|
|
||||||
//Kcp
|
//Kcp
|
||||||
//_config.kcpItem.mtu = Kcpmtu;
|
//_config.kcpItem.mtu = Kcpmtu;
|
||||||
|
|
|
@ -67,6 +67,7 @@
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="Auto" />
|
<ColumnDefinition Width="Auto" />
|
||||||
|
@ -333,6 +334,26 @@
|
||||||
materialDesign:HintAssist.Hint="Down"
|
materialDesign:HintAssist.Hint="Down"
|
||||||
Style="{StaticResource DefTextBox}" />
|
Style="{StaticResource DefTextBox}" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
|
<TextBlock
|
||||||
|
Grid.Row="16"
|
||||||
|
Grid.Column="0"
|
||||||
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
|
VerticalAlignment="Center"
|
||||||
|
Style="{StaticResource ToolbarTextBlock}"
|
||||||
|
Text="{x:Static resx:ResUI.TbSettingsEnableFragment}" />
|
||||||
|
<ToggleButton
|
||||||
|
x:Name="togenableFragment"
|
||||||
|
Grid.Row="16"
|
||||||
|
Grid.Column="1"
|
||||||
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
|
HorizontalAlignment="Left" />
|
||||||
|
<TextBlock
|
||||||
|
Grid.Row="16"
|
||||||
|
Grid.Column="3"
|
||||||
|
Margin="{StaticResource SettingItemMargin}"
|
||||||
|
Style="{StaticResource ToolbarTextBlock}"
|
||||||
|
Text="{x:Static resx:ResUI.TbSettingsEnableFragmentTips}" />
|
||||||
</Grid>
|
</Grid>
|
||||||
</ScrollViewer>
|
</ScrollViewer>
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
|
@ -156,6 +156,7 @@ namespace v2rayN.Views
|
||||||
this.Bind(ViewModel, vm => vm.mux4SboxProtocol, v => v.cmbmux4SboxProtocol.Text).DisposeWith(disposables);
|
this.Bind(ViewModel, vm => vm.mux4SboxProtocol, v => v.cmbmux4SboxProtocol.Text).DisposeWith(disposables);
|
||||||
this.Bind(ViewModel, vm => vm.hyUpMbps, v => v.txtUpMbps.Text).DisposeWith(disposables);
|
this.Bind(ViewModel, vm => vm.hyUpMbps, v => v.txtUpMbps.Text).DisposeWith(disposables);
|
||||||
this.Bind(ViewModel, vm => vm.hyDownMbps, v => v.txtDownMbps.Text).DisposeWith(disposables);
|
this.Bind(ViewModel, vm => vm.hyDownMbps, v => v.txtDownMbps.Text).DisposeWith(disposables);
|
||||||
|
this.Bind(ViewModel, vm => vm.enableFragment, v => v.togenableFragment.IsChecked).DisposeWith(disposables);
|
||||||
|
|
||||||
//this.Bind(ViewModel, vm => vm.Kcpmtu, v => v.txtKcpmtu.Text).DisposeWith(disposables);
|
//this.Bind(ViewModel, vm => vm.Kcpmtu, v => v.txtKcpmtu.Text).DisposeWith(disposables);
|
||||||
//this.Bind(ViewModel, vm => vm.Kcptti, v => v.txtKcptti.Text).DisposeWith(disposables);
|
//this.Bind(ViewModel, vm => vm.Kcptti, v => v.txtKcptti.Text).DisposeWith(disposables);
|
||||||
|
|
Loading…
Reference in New Issue