Exemplo n.º 1
0
        public static string BuildCaddyConfig(TrojanGoSettings parameters, bool useCustomWeb = false)
        {
            var caddyStr = File.ReadAllText(CaddyFilePath);

            caddyStr.Replace("##domain##", parameters.Domain);
            caddyStr.Replace("##port##", WebPort.ToString());

            if (!useCustomWeb && !string.IsNullOrEmpty(parameters.MaskDomain))
            {
                var prefix = "http://";
                if (parameters.MaskDomain.StartsWith("https://"))
                {
                    prefix = "https://";
                }
                var domain = parameters.MaskDomain
                             .TrimStart("http://".ToCharArray())
                             .TrimStart("https://".ToCharArray());

                caddyStr = caddyStr.Replace("##reverse_proxy##", $"reverse_proxy {prefix}{domain} {{ \n        header_up Host {domain} \n    }}");
            }
            else
            {
                caddyStr = caddyStr.Replace("##reverse_proxy##", "");
            }

            return(caddyStr);
        }
        public override void Prepare(Record parameter)
        {
            var record = Utils.DeepClone(parameter);

            Host     = record.Host;
            Settings = record.TrojanGoSettings;
        }
Exemplo n.º 3
0
        public static string BuildTrojanGoConfig(TrojanGoSettings parameters)
        {
            var jsonStr  = File.ReadAllText(TrojanGoSettingPath);
            var settings = JToken.FromObject(JsonConvert.DeserializeObject(jsonStr));

            settings["remote_port"] = WebPort;
            settings["password"][0] = parameters.Password;
            settings["ssl"]["sni"]  = parameters.Domain;

            return(JsonConvert.SerializeObject(settings, Formatting.Indented, new JsonSerializerSettings()
            {
                NullValueHandling = NullValueHandling.Ignore
            }));
        }
Exemplo n.º 4
0
        public static string BuildTrojanGo(TrojanGoSettings settings)
        {
            StringBuilder strBuilder = new StringBuilder();

            strBuilder.Append("trojan-go://");

            strBuilder.Append($"{HttpUtility.UrlEncode(settings.Password)}@{settings.Domain}:{settings.Port}/?");
            if (settings.EnableWebSocket)
            {
                strBuilder.Append($"type=ws&path={HttpUtility.UrlEncode(settings.WebSocketPath)}&");
            }
            else
            {
                strBuilder.Append("type=original&");
            }
            strBuilder.Append($"#{HttpUtility.UrlEncode("trojan-go")}");

            return(strBuilder.ToString());
        }
 public override void Prepare(Record parameter)
 {
     _host     = parameter.Host;
     _settings = parameter.TrojanGoSettings;
 }