分流预备工作

This commit is contained in:
ChsBuffer
2020-08-15 03:36:58 +08:00
parent d2c911da51
commit bd5cf8b70d
6 changed files with 25 additions and 9 deletions

View File

@@ -1,5 +1,4 @@
using System.Text;
using System.Threading;
using Netch.Models;
using Netch.Utils;
@@ -21,7 +20,7 @@ namespace Netch.Controllers
if (Global.Settings.BootShadowsocksFromDLL && (mode.Type == 0 || mode.Type == 1 || mode.Type == 2))
{
State = State.Starting;
var client = Encoding.UTF8.GetBytes($"0.0.0.0:{Global.Settings.Socks5LocalPort}");
var client = Encoding.UTF8.GetBytes($"{LocalAddress}:{Socks5LocalPort}");
var remote = Encoding.UTF8.GetBytes($"{server.Hostname}:{server.Port}");
var passwd = Encoding.UTF8.GetBytes($"{server.Password}");
var method = Encoding.UTF8.GetBytes($"{server.EncryptMethod}");
@@ -49,7 +48,7 @@ namespace Netch.Controllers
#region Argument
var argument = new StringBuilder();
argument.Append($"-s {server.Hostname} -p {server.Port} -b {Global.Settings.LocalAddress} -l {Global.Settings.Socks5LocalPort} -m {server.EncryptMethod} -k \"{server.Password}\" -u");
argument.Append($"-s {server.Hostname} -p {server.Port} -b {LocalAddress} -l {Socks5LocalPort} -m {server.EncryptMethod} -k \"{server.Password}\" -u");
if (!string.IsNullOrWhiteSpace(server.Plugin) && !string.IsNullOrWhiteSpace(server.PluginOption))
argument.Append($" --plugin {server.Plugin} --plugin-opts \"{server.PluginOption}\"");
if (mode.BypassChina) argument.Append(" --acl default.acl");

View File

@@ -33,7 +33,7 @@ namespace Netch.Controllers
if (!string.IsNullOrEmpty(server.OBFSParam)) argument.Append($" -g \"{server.OBFSParam}\"");
}
argument.Append($" -b {Global.Settings.LocalAddress} -l {Global.Settings.Socks5LocalPort} -u");
argument.Append($" -b {LocalAddress} -l {Socks5LocalPort} -u");
if (mode.BypassChina) argument.Append(" --acl default.acl");
#endregion

View File

@@ -22,8 +22,8 @@ namespace Netch.Controllers
{
File.WriteAllText("data\\last.json", JsonConvert.SerializeObject(new Trojan
{
local_addr = Global.Settings.LocalAddress,
local_port = Global.Settings.Socks5LocalPort,
local_addr = LocalAddress,
local_port = Socks5LocalPort,
remote_addr = server.Hostname,
remote_port = server.Port,
password = new List<string>

View File

@@ -27,8 +27,8 @@ namespace Netch.Controllers
new VMess.Inbounds
{
settings = new VMess.InboundSettings(),
port = Global.Settings.Socks5LocalPort,
listen = Global.Settings.LocalAddress
port = Socks5LocalPort,
listen = LocalAddress
}
},
outbounds = new List<VMess.Outbounds>

View File

@@ -1,9 +1,26 @@
using Netch.Models;
using Netch.Utils;
namespace Netch.Controllers
{
public abstract class EncryptedProxy : Controller
{
private int? _socks5Port;
public int Socks5LocalPort
{
get => _socks5Port ?? Global.Settings.Socks5LocalPort;
set => _socks5Port = value;
}
private string _localAddress;
public string LocalAddress
{
get => _localAddress ?? Global.Settings.LocalAddress;
set => _localAddress = value;
}
/// <summary>
/// 启动
/// </summary>

View File

@@ -148,7 +148,7 @@ namespace Netch.Controllers
if (result)
{
// 加密代理成功启动
UsingPorts.Add(Global.Settings.Socks5LocalPort); // 记录Socks5使用端口
UsingPorts.Add(pEncryptedProxyController.Socks5LocalPort); // 记录Socks5使用端口
switch (mode.Type)
{