From ff0b782da0919fd18631463e24bec2dafe91c10f Mon Sep 17 00:00:00 2001 From: ProxySU Date: Fri, 20 Mar 2020 20:12:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ProxySU/MainWindow.xaml | 11 +- ProxySU/MainWindow.xaml.cs | 98 ++++++++++++------ ProxySU/TemplateConfiguration.xaml | 1 - ProxySU/TemplateConfiguration.xaml.cs | 8 +- ProxySU/bin/Release/ProxySU.exe | Bin 57856 -> 67584 bytes ProxySU/bin/Release/Release.zip | Bin 188960 -> 194080 bytes .../WebSocketTLSWeb_server_config.caddyfile | 9 ++ .../WebSocketTLSWeb_server_config.json | 29 ++++++ .../TemplateConfg/mkcp_server_config.json | 33 ++++++ .../TemplateConfg/tcp_http_server_config.json | 50 +++++++++ .../TemplateConfg/tcp_server_config.json | 25 +++++ 11 files changed, 224 insertions(+), 40 deletions(-) create mode 100644 ProxySU/bin/Release/TemplateConfg/WebSocketTLSWeb_server_config.caddyfile create mode 100644 ProxySU/bin/Release/TemplateConfg/WebSocketTLSWeb_server_config.json create mode 100644 ProxySU/bin/Release/TemplateConfg/mkcp_server_config.json create mode 100644 ProxySU/bin/Release/TemplateConfg/tcp_http_server_config.json create mode 100644 ProxySU/bin/Release/TemplateConfg/tcp_server_config.json diff --git a/ProxySU/MainWindow.xaml b/ProxySU/MainWindow.xaml index 7068d8b..ce5dca3 100644 --- a/ProxySU/MainWindow.xaml +++ b/ProxySU/MainWindow.xaml @@ -30,12 +30,12 @@ - + - + @@ -52,9 +52,10 @@ - - - + + + + diff --git a/ProxySU/MainWindow.xaml.cs b/ProxySU/MainWindow.xaml.cs index d9b08d3..48f3c0c 100644 --- a/ProxySU/MainWindow.xaml.cs +++ b/ProxySU/MainWindow.xaml.cs @@ -25,14 +25,23 @@ namespace ProxySU public partial class MainWindow : Window { public static string[] ReceiveConfigurationParameters { get; set; } + //ReceiveConfigurationParameters[0]----模板类型 + //ReceiveConfigurationParameters[1]----服务端口 + //ReceiveConfigurationParameters[2]----uuid + //ReceiveConfigurationParameters[3]----path + //ReceiveConfigurationParameters[4]----domain + //ReceiveConfigurationParameters[5]----mKCP伪装类型 public MainWindow() { InitializeComponent(); RadioButtonPasswordLogin.IsChecked = true; RadioButtonNoProxy.IsChecked = true; RadioButtonProxyNoLogin.IsChecked = true; - ReceiveConfigurationParameters = new string[5]; + RadioButtonSocks4.Visibility = Visibility.Collapsed; + ReceiveConfigurationParameters = new string[6]; + } + //开始布署安装 //System.Diagnostics.Process exitProgram = System.Diagnostics.Process.GetProcessById(System.Diagnostics.Process.GetCurrentProcess().Id); private void Button_Login_Click(object sender, RoutedEventArgs e) @@ -140,7 +149,51 @@ namespace ProxySU //using (var client = new SshClient(sshHostName, sshPort, sshUser, sshPassword)) //Action startSetUpAction = new Action(StartSetUpRemoteHost); //string appConfig = TextBoxJsonPath.Text.ToString().Replace("\\","\\\\"); - string appConfig = (""); + //读取模板配置 + //sed -i 's/PermitRootLogin no/PermitRootLogin yes/' /etc/v2ray/config.json + string appConfig=""; + if (String.IsNullOrEmpty(ReceiveConfigurationParameters[0]) == true) + { + MessageBox.Show("请先选择配置模板!"); + return; + } + else if (String.Equals(ReceiveConfigurationParameters[0], "TCP")) + { + //File.Copy("TemplateConfg\\tcp_server_config.json", "ConfigUpload\\tcp_server_config.json", true); + + appConfig = "TemplateConfg\\tcp_server_config.json"; + } + else if (String.Equals(ReceiveConfigurationParameters[0], "WebSocketTLS2Web")) + { + //File.Copy("TemplateConfg\\tcp_server_config.json", "ConfigUpload\\tcp_server_config.json", true); + + appConfig = "TemplateConfg\\WebSocketTLSWeb_server_config.json"; + } + else if (String.Equals(ReceiveConfigurationParameters[0], "TCPhttp")) + { + //File.Copy("TemplateConfg\\tcp_server_config.json", "ConfigUpload\\tcp_server_config.json", true); + + appConfig = "TemplateConfg\\tcp_http_server_config.json"; + } + else if (String.Equals(ReceiveConfigurationParameters[0], "MkcpNone")|| String.Equals(ReceiveConfigurationParameters[0], "mKCP2SRTP")||String.Equals(ReceiveConfigurationParameters[0], "mKCPuTP")|| String.Equals(ReceiveConfigurationParameters[0], "mKCP2WechatVideo")|| String.Equals(ReceiveConfigurationParameters[0], "mKCP2DTLS")|| String.Equals(ReceiveConfigurationParameters[0], "mKCP2WireGuard")) + { + //File.Copy("TemplateConfg\\tcp_server_config.json", "ConfigUpload\\tcp_server_config.json", true); + + appConfig = "TemplateConfg\\mkcp_server_config.json"; + } + + else if (String.Equals(ReceiveConfigurationParameters[0], "HTTP2")) + { + //File.Copy("TemplateConfg\\tcp_server_config.json", "ConfigUpload\\tcp_server_config.json", true); + + appConfig = "TemplateConfg\\HTTP2_server_config.json"; + } + else if (String.Equals(ReceiveConfigurationParameters[0], "TLS")) + { + //File.Copy("TemplateConfg\\tcp_server_config.json", "ConfigUpload\\tcp_server_config.json", true); + + appConfig = "TemplateConfg\\TLS_server_config.json"; + } Task task = new Task(() => StartSetUpRemoteHost(connectionInfo, TextBlockSetUpProcessing, ProgressBarSetUpProcessing, appConfig)); task.Start(); } @@ -401,18 +454,22 @@ namespace ProxySU //下载官方安装脚本安装 - - client.RunCommand("curl -o /tmp/go.sh https://install.direct/go.sh"); - client.RunCommand("bash /tmp/go.sh"); - client.RunCommand("mv /etc/v2ray/config.json /etc/v2ray/config.json.1"); + //client.RunCommand("curl -o /tmp/go.sh https://install.direct/go.sh"); + //client.RunCommand("bash /tmp/go.sh"); + //client.RunCommand("mv /etc/v2ray/config.json /etc/v2ray/config.json.1"); + client.RunCommand("mkdir /etc/v2ray"); //上传配置文件 currentStatus = "程序安装完毕,配置文件上传中......"; textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); Thread.Sleep(2000); UploadConfig(connectionInfo, appConfig); - + client.RunCommand("sed -i 's/##port##/" + ReceiveConfigurationParameters[1] + "/' /etc/v2ray/config.json"); + client.RunCommand("sed -i 's/##uuid##/"+ ReceiveConfigurationParameters[2] + "/' /etc/v2ray/config.json"); + client.RunCommand("sed -i 's/##path##/" + ReceiveConfigurationParameters[3] + "/' /etc/v2ray/config.json"); + //client.RunCommand("sed -i 's/##domain##/" + ReceiveConfigurationParameters[4] + "/' /etc/v2ray/config.json"); + client.RunCommand("sed -i 's/##mkcpHeaderType##/" + ReceiveConfigurationParameters[5] + "/' /etc/v2ray/config.json"); currentStatus = "安装成功"; textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); @@ -467,6 +524,7 @@ namespace ProxySU { sftpClient.Connect(); //MessageBox.Show("sftp信息1" + sftpClient.ConnectionInfo.ServerVersion.ToString()); + //sftpClient.UploadFile(File.OpenRead("TemplateConfg\tcp_server_config.json"), "/etc/v2ray/config.json", true); sftpClient.UploadFile(File.OpenRead(uploadConfig), "/etc/v2ray/config.json", true); //MessageBox.Show("sftp信息" + sftpClient.ConnectionInfo.ServerVersion.ToString()); sftpClient.Disconnect(); @@ -600,32 +658,6 @@ namespace ProxySU } } - //private void ButtonSetConfiguration_Click(object sender, RoutedEventArgs e) - //{ - // if (RadioButtonGuideConfiguration.IsChecked == true) - // { - // MessageBox.Show("还未完善,敬请期待!"); - // } - // else if (RadioButtonTemplateConfiguration.IsChecked == true) - // { - // var openFileDialog = new Microsoft.Win32.OpenFileDialog() - // { - // Filter = "Cert Files (*.json)|*.json" - // }; - // var result = openFileDialog.ShowDialog(); - // if (result == true) - // { - // TextBoxJsonPath.Text = openFileDialog.FileName; - // } - // } - // else - // { - // MessageBox.Show("还未完善,敬请期待!"); - // } - // //MessageBox.Show(TextBoxJsonPath.Text.ToString()); - // //string appConfig = TextBoxJsonPath.Text.ToString().Replace("\\", "\\\\"); - // //MessageBox.Show(appConfig); - //} } } diff --git a/ProxySU/TemplateConfiguration.xaml b/ProxySU/TemplateConfiguration.xaml index 9422b27..1af4b89 100644 --- a/ProxySU/TemplateConfiguration.xaml +++ b/ProxySU/TemplateConfiguration.xaml @@ -33,7 +33,6 @@ - diff --git a/ProxySU/TemplateConfiguration.xaml.cs b/ProxySU/TemplateConfiguration.xaml.cs index f2ad14c..a79fb54 100644 --- a/ProxySU/TemplateConfiguration.xaml.cs +++ b/ProxySU/TemplateConfiguration.xaml.cs @@ -47,32 +47,38 @@ namespace ProxySU else if (RadioButtonMkcpNoCamouflage.IsChecked == true) { //传递模板类型 - MainWindow.ReceiveConfigurationParameters[0] = "MkcpNoCamouflage"; + MainWindow.ReceiveConfigurationParameters[0] = "MkcpNone"; + MainWindow.ReceiveConfigurationParameters[5] = "none"; } else if (RadioButton2mKCP2SRTP.IsChecked == true) { //传递模板类型 MainWindow.ReceiveConfigurationParameters[0] = "mKCP2SRTP"; + MainWindow.ReceiveConfigurationParameters[5] = "srtp"; } else if (RadioButton2mKCPuTP.IsChecked == true) { //传递模板类型 MainWindow.ReceiveConfigurationParameters[0] = "mKCPuTP"; + MainWindow.ReceiveConfigurationParameters[5] = "utp"; } else if (RadioButton2mKCP2WechatVideo.IsChecked == true) { //传递模板类型 MainWindow.ReceiveConfigurationParameters[0] = "mKCP2WechatVideo"; + MainWindow.ReceiveConfigurationParameters[5] = "wechat-video"; } else if (RadioButton2mKCP2DTLS.IsChecked == true) { //传递模板类型 MainWindow.ReceiveConfigurationParameters[0] = "mKCP2DTLS"; + MainWindow.ReceiveConfigurationParameters[5] = "dtls"; } else if (RadioButton2mKCP2WireGuard.IsChecked == true) { //传递模板类型 MainWindow.ReceiveConfigurationParameters[0] = "mKCP2WireGuard"; + MainWindow.ReceiveConfigurationParameters[5] = "wireguard"; } else if (RadioButtonHTTP2.IsChecked == true) { diff --git a/ProxySU/bin/Release/ProxySU.exe b/ProxySU/bin/Release/ProxySU.exe index 7ba497f3a4afe35f32b46577c1013fd4e4bf971a..e286043bc412b1c6c90ce90fcd8b9feea1f379e7 100644 GIT binary patch literal 67584 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 iUpP2I6ULL*N^ytgdz5hG#ebTse==lHF(* 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 delta 12719 zcmZX*18^Wg*Df5}ww;Z$v7L==+csunYhzm*+jcg#v$1Xe`@Z+P_1{}}y5^kjGfzK# zs;9fFySh%^IegwAJcObQI7I5^Ef`J^GG7=nA7~3QA6R}ZfB^ym0t4c0=BT)9aNJ_W z{I9qR0s{X}DLOlNda0-}nt7TH^7y!_KBRAVc^pn<^QOy&#;2ozL5Lc{pn&y}MM_C| zQglj_l`w{8rpvHSnqGQd$w^K02dYQamsKuB#;MoEEw-z#*_{=-AFSvRS4du{w>)b8 z@Vl?<@CGUuFV?ChAK(0+rY0PIMT`>j^IpGQKE3+YY~SgxybomxgMlD7vsr);fgZKs zO?~qIta4p4DZY;T#5NZsv-LJ|w*cmTkEKcEmLo0=Ho30V+IT;LBOmyDJQMp`hS_+5_Uoi34vP#3W^Xj}%<9sEj;L;QP6? z+J?S{yNkS1z_e(1Gt@Nq_e;x1n1>rgp+^XbH+mCNmvsA5igg zTef!(-RKp2_vFs)nHkuS>}`{Lc$?R6dF;QdbEbKZ3k{(;8k;xEE6nJC@A*F>XB|Nu zZUOM$kHCFdk%b)l6DmAF2~Gp2KWwn&&NIpz=|C1VA%y)pLeOQa+2Wb-mG&p9a%qR@ zq#+cyX!_k-YH%_`WfQ!|cGIGR@S1+do5)f>rt##knDLo-lNJ(<`s2J(rYNjrgoLVT zZD@pf@8Z<+Nqi6C2Jb82-c8dSO(%=>f&;kVWhPeBbZx0*0vinT%)a;H_tvS%w0_Ex zADf!xp*HcMFfgT~g=dF(w(hHd&T5PKU`=6+bQZCP-L)q_WhAm@9;8KF-QhgMDVY7_ zJY|Au+`y+DA%)3WtoG1u>ohFoQg?Qrq_Jj18ws>nt`w7tfXq8gCLc=1AF8W|Ed;QL za!)m$RsX=LJUG1$SDvpV)9-4&Xo-qnCBSYK?nz!jT=6R(Z%&`^5~w}We%2B^h9uVt zR!YQu8(G!Cz6s;Un$me_{f@oU-3F3t^EXw&n8Di=QnX*+hNuCLzAgEry%_^b9s;ISEtT<2kws4yWZ z1x52mMyhu-72O&ugq(oFf@a2rf<=PZ8TJ!Z(-fa5i*G>X=&-Z4$Lud!us^zegOHpz zwQQwkdtkS<{dJW6(5qeMl^DgSdm_zFDEd~qgV(IF2E#X^1cHM%0|bH-H>H5%J1s#^ z)?TX1dpQ9>HxlRg4l`2o_ZgEwaQvo_ySo89(h&Z<5`mXnvhAH*_fv`S3nmpv`XktX zKzwi;=lJr!&47OHq}g}8G%#B}Kdzj=v85bdAygHErpcK_BC)eHMaeP&PW6TnZRZn@KWliM5F8KAA5E5+zQ5b=nH!E`9s2on_7PTbQ7;B!UekleWWFOomhj^);@J z0zMOO{>0PttVzhIkEx`7nDUxd&=8Cef?MmUthTnzlc595GYA?nuAx` z!AGy?i|$(C7t#)T$7*2j{O~%ZU$3IL-8tbk)E@=;4wLXySH9shqim}{exSbx%_5<Je=y-7u2 z!QVc8czNdG$$CCUXq`Tg)^{)Rnmlqbsq`$6ptjrAZ=RPo%%LlJabh{VYg;9H5W|^Q zIcvSpw{zv@$uo5$+j9jWAmnT4jF*^`^r!|l{5SrdkNhTR3+l2{WkfA};5M$q8AF#l z`lAG0W&T4ekk%}sgtcu>*g{+yr7Eu0!vavp3`cKKV-Uvj$0pePQ{w812 z=7$xYI;)krm1CXWy%ql;x&H44p>|Ns-nM`0nvBOmBY zR1d<|$6X#jXo;9Qctbp06-|DqXywxbqh_ip_U<-Dc)8;O#z4YKYQtIONRGq@H^F-blr>mmew zpugCPUw?lz$uEO9A#sm1B^eR}Xy0TdVo$=?and{uk*Wz7}fMCESX{L9r>);2>&Y*I`EvNp>_G;)svP2bL=iIATGE8w+Z1_Jd+ z=lozQ9pUcyuKJCl`*O~|)ZtR6`|Trz-;V(4+HBQp{JQW-F!2MUu>bkF=7EaO43|1Mulip-AD zwEVqu(@}hZh(j4K7vv=X;|u;>GH8&S04^`&1x`3~r$RN50pSzH2tq!^6}sZ@=`ZS; zLu0NYvA+js4rLf~`5`oZ7*3e&ehi9`esm|Uh4PrHsb~TUl)j9+#n&d=q{SG!ISep@ z5;OxE{Hg(hzg1+IogWlFm0`T0Q0-A@n<-CG_cdN&1W^iP^OJ6YQ^UunNCiXHbsU0t z7^KMkIt+eeyX3eZWS&T#qBy`$L$M+*52Gx)d-CXBv_`A|hk}E2Lx}Api`@#!KKrlC zdW18+eaeY?Pc(lq@EC0jd&>=_E zpgNEPGH;rWk+f`J2*IC0H9tj!QvIj-n44`i%(((CfqGou8iAYmF^((gq0v_fYu6yn zD&!HU9ktmtvoiIKYBdxrZH7}v9+LUayKgc3w;zsdK_i23!3N1NU)5ZQJAyQ9D4)nd zgx#w!$S+c_V&Pnz zx(2DQggt7@BG-creKN}zSD}3nZ?c=E$x4D65p4Xq5U5**67-I!0k5_DlvCNflyvQS zF;-Y}lzuDFSG66$r~DP2;qSRz%$~1@(A(jL^k7#M7@u*Z=pfXA6KK$?NhDDK zK2xm!t2=r@LHE?{1ggk?xNJQMKqkU8xvu$hyBO2g!*XhQz!2a@<5Md17_f)DOrgYn zW}snp)T#9OH5i8bi5cDnzs;$Du{W{MjGt30&-PrAL zmzcludjcd$ckx5f`{AbD%I=o?jTQhlPkNxA{=np#^}UJ87~EBczW z@h<<_#1rv`+OeAumM`QQDl2GtpnC2I#Xf&N=Hw0X79R`gSw8@|)&o)&{V=j85IGoi z+A3|b9%ZmXT7}@2P~x2q_CrLY48cG$N93c{Q{h495R3($&>3;x0CoB+T}6oc-|Hse?9nXzLPdXd@eS5RaipBc$3$S5-+8V z?+YpA-8M5^Ny*Z}MB1&>j`py33To7?xJMjXHU$@fiz9u-jspaeTPIQKA>=DWaLT$`*^vd?R{9GdZ;vN1%hN`FCfM<^N zkg!xX4BW~m>!hc?o`U%r+yXol-fsOdJ0)coD*hxCX@x!YrScH^LU!P@ve9b{`FLw5 zs#6umG#9b|(Vm-!p?D6%0{>So@^0II|0?HyK4nb)vgB#HdPj^ECKwJ|scgdySB z>STEj+&l288F7ByCJmOeiVSYwHA+crD>K#OY^exJ+jTxiwROnw!=*rA^U|uJK1oeT z2}K(7=8>F^jOez)(qEVH{<|qprhT zK|08QB*||w8V#Ijd55K3&M#Z0AWbzITe?ssI)@dBw%B=JnfdB2!v}Ip``vb~DLokAdkon4JW5 zmCsHU=_T3imavtjgL^5Jnj43n$r8|Hxqzd;&5RoS&csUbEgYbk!h+50mZeLkbI1~X6@@#v^e8M^CU$HiJ`USHEwX31PwEO`g!VaD8@ zeJ)q>ivyr8_Hrsu!E=W44>IQ-WDdGi-_DEM$Bt70lfw9=hZ~Et3(Jt`#PS5=bg0Uj zZPJ?PSH7+5%W_IF+%tCk;Ry=4UV?kMh zIA$m>!960@-=rq0Su689?^dqfuB*Rdja^3eUK5}rkuj?(rpsT#pVW7eLWp{9$#_~P zw1B=m=lwhWfJlV^9-TJLtGbpxu@^G6LaZ+*F>{A&uPVS++zJiHYN5|WPXTi!P^y^zuqag_9kniEEA`c7k9<=VrJ54 za{_Q~l|yrH-D##;9TH=c?xjiSp{}zDaTyZylU)zk%JXZ`g@QvTOPVt8TU%eT4 z2t101y~Knp#mG6Qg0~3cwdZ3JG@Qwj;<9LiU42V%A=l=OPUN94!0a<`PktA4&VlG2 zqkDPz)hO*<#NJqJCel9?E`nNFdvJxgO42$HmtVsp#FzH7VO*h~%PXI5R*r+ZsT2>Aj;k1t1#KH33?@P5&cg^3RV0`(_LV`Uduk^CaE@h%JXV79oSl@y#n{i^ zl$_(6OU>IzSO5IDGx|1H?FZGbxYkM zArXv+N3V0vjf1OjRnVxBRlQAha$$E)8&bOQOoCR$VVr^UEdnfKm^5qZzCn!Qfy$SG zA?xJwOK}*GI%5N!Z~SlC7AU8Eu$RmRXtUI_D%~?hdZtrLW)_mjahJ z_%m2+Jbw(q*ej@FV2xrqFid7MhTvYf zIykmCQ6jp)-Gz}U-8Vw8)cL07c-5_VgvVdx3G2+>lfEjPEp zOZesYziIsTLI8vgn^DOi7=QWLtPgE>2j#*+e6N&TuvgGoy^Tf8xz>8f?9Xe%m;}vb zs1FkCA0*JBhW5CsP7-!$iBaG**tbqJ2faAo$`9%QeykRreSuqF|P-wYof?rqYb z;t_b@YZnsT-&`0VgT6=qXn5u750y-5uGN)VR3JM=Wdxw}o6yDUvmFgx}RO70ZR(ra#!U&9=9fqt%m*~HhrfV*CWz=kjL&p#?Ep7W<#ATJ7 zWPjzBm0;JjX;wh#92sAA3gHhVvUso_La}gyfY(xRg5?sLsSKUWE2^|$)Q|Vl?#%Qf zw0@TDnE@2i*jr~w5$W(n49Jh=a5^hH4lDieIR;wmv4ybSL(`h<2@=DC!&f=KdL_Qy zOpuY|9o5D}y6gKJ z`fI0KMxJPm5+f0n?V;7|R{5@u3wH4NhwO7YSGn)?e<+0uwubPG9nBaY~b6Y7F z>|J~2OX}EL=SS~(NUy}_>N^QFWYmUNlM&=b4#XNP<5Jh8_v~7`Iz7ZBJEZt|#yI*D zi~?wdJOx=Wx#vYx+(=2y9Q*3=jkHJYJiq8iEH3p{`CL;<({L2%`W67>Z8%dAq{m&ew`}VO8&wDHq#)~F9g^HE1ah& z8l}ZAxFypiSHm`wke3W(5ht^!iT{ zxqk0l;XjI}O(l4HG5HlUv#XZPMcVio z_v$T8OU8DZ$yT$Zn)pkDA@#6&Ce}cfoQ2)Ft=+`L1j-nr2*uqHQ zmdFO^jU_8tfm=9yhqc|gL){93C$Z&hu{J&v+AeqMA9OqKzQ8tPq6ooRLowaamO=9R z={NT{)Y@rJ&OvQ_$uuPpPf>p^&KQ%ybuRQ-XDZHi?qxMy1J9$?@6Xfs)3^Zou>0lP z7@x{#1EmQujXOpmNT)FSCvXz6i1E}Jql<;)*v zy~+@ODLk3++9mv#Dx+9e0~Cc1JIyIGDX-_~j3s!!Ae$pv|IO&zzW&Lg;UpaN>C!WE zaD5fo!261wYS%&YM#c-co_XNt+B>NWL-*&dvnVs{TwDk`1oL=q7fC3vc}DS5Z8fBc zABdY&kJpGFsR+E+Q?N~Sm@X9bPiuEDZE4t7uK8z8pA{ zN*+FjF~^|)otqgE(|uUrsgMb3Y8|eNT7LlT=zJ&MMN(Ds-tea^#9&&qUsFu#M)CY8 z@fD{5S(gOwY~Jg|3dq$5Ewdjee;3Qe-25cSeBWUip@LU5W*?!tut&UawF&aKaEraD zU#mZ*TQ0tQo!z3fp9XsC{XeqAs|$ADKSTUBy(mAX?PX*)d=l7dv3V99hM77nVLlpc zbN#m5zP>z&&1SV+30b$*)~8a&+_6X}OVids@RWHy^7Socp^iD&wD?}Rz^bkdTVW)w zxA(u)q`{aWMsW}v1K2S{Kc)qjK7AZxywzJ&HJWM0$o^ji#ui>iP6i%EO2agST&l!P@=)XS_lkHg-!Cct z%He{2P(ufGgSNGSE}MG9uo>1Um4yG%N#v~>S7G6AAz`ZF@@Q`;;aM)-6-GAIzK>@a z2SHjKev`(TqXoc&Pq=$RS-^29?3JNl4w@Rowd>^5LhM zO5Pz(Uu-9&wZ|uN1>3By#!EA?nS`{4x~32ScMS;W`t#sa&2vKs=Hse9>^(*Vh0)Jc%lm%(z#>9{@;c~hfhndgExkOp06lee9TjXj-ClQ46^n^D@`Vw!>Z%*Y_GS!indLOG+k)a>hmOuNA7gb%Sn zqr-=8$0nn61%*f{WWD?ev!}ZSzw5&DF+m1wiJoj~E;gxC@%p_<_qi*%=K7_u3btH) zZ?0(9AwhNP-kqF{4weBiscgT!caSX{E-;&#=HIx?86Oe6`vSr)qC8kCY)9t=oi0qL z_NP(NJkvP$TwX%T-i1yM-=JR@t0Ji)WDN4Q^SQcq%L-d&ssS4d>u~=70|O&UK}Bbv zBy&{Km|Y+;wqH_7rBwvZtif;xj^$_51$11=(#lFjI-wXog>|0Sf#_rfUVl}f8Gy}( zd9Z&(`joI#S|dv(of&NjYsNZaSNk?Dn&hvYm|YTvl(20rBK8Z5)x}>}kf?WGvQ8MT z+myj~M>diB&oup5l(Eh0xM;Y)R$8`Iu)Goyp%mNu9X0m3!D`;bwJJKrOA$FtY=X0R zQ+Sjq7-7Uu<6d@oCMgV*kM0iqI3PfzI|GcCMO-JsbY1k8OBhi5hAu;Cj0+_-FHnk2 z=1KPXTT|T?k8=cP#VR`;e%5+q9s7@e1^TimLXjk|beRbDrX;Pi)X_1*zke@_N+xA6 zUdezwVY9_r`qJn1wlrnsf4i148Ap=cnz##oa={|{E#}pk>Is~o}{*kcRMU+IclD%ADg_9X;8MY>TFkYz*-(&*QF0!T?CSmiY zrwapv#puF!wlf-HB8)HC;gy4n!r21q>aa-K5_(_75wg&}AIWHwR@MS#%FBkf-J|tz=nf4MXWIYsuHVFx`!5Bg2t`45| z(w5w`*#{-8(IZ~#-?X;cdY1iDzvy$ssE%WWzKFKg0CT}DQA>CM5y!syWUtxavDlEo zmCQvW3SN4cPqrGo;UV*9{_MLG-K>bY7z7QmWE28w|E@r!LHlh4;1J4wfi5-YOPfRI z-NH<@KpNH8yO`OSo(_#n)O6LyFq>q9GG>mdRe_7PAURU>8F?q2r6X5G3SE5(4cmK9 zU`|6=CvLb8y-HEK(RqB>r7#f_S|JnzFT8vK_Sy3|o3ffG?Aju%FhN?esPdYNhc7gN z{j~5m_$SK}=De6JAj8Zba$=D78FRwS`{Afr@WB+3N{Qy6w?hH8+hBNWv^MnVW0*SF z02zy3Yxk{$M;3YopmgLSc_4k%c=)N-T0anV*kSTa?Bm>&RyLBjZUL*s+t+#1j#s%?!XVnkE;=0KMa!F5XJ3F%; z(iO=3w8x~roq@3Qkv$`iO*d?KsG##$-b+K9rOKU?Dc-C7h#X?z-Rbe7Wt)g?tIOx9 z{^9K3p(!|Vu3=i>kN^9P%9viG+LUwC72W43+havZNPh&#Rwn88e?6gY_Pj9`ASMei73N7c z6Y;hZMEodVJAB$KU74q}FpOqX~JKyff-SpV@(>{KF_Bu$`c;*V1P-*fPEEF=?JIr)Y zzn=yu{3_mnY5u3+Ne{4k;)Ffn&78wNe230Hecu~#EXb*aE%B8s{d!Z_7Vw1k8vQOF zTVJv9uwf4$p$q9JcFBTX+%w))i#gg8O_{Ko?pHeE0c$;#+`=(Q_#FRNt4o>iVF%Fg zBV>W+pX-+O4hFzSllu2d_{GO~tNUDE^G2YJY2fXur)DLGjnD_RXa7iw+M2f%>U4Xl zO6R4Os;A^Y)Qn_%X{uBGaA`OOf4z}^Q^>{VWUkomJQZO<;}`sp00z0`4PH5rfsY~C z2u)#uXMv#*AH%OwYrD!S_qx9=z06K*sox0wwB_TF_TFr}+W+C}BXmpF@v>qPR|ov_ zIWilTq(`o<3(t~Kxl-otNpsI_u7xM3Q1feEL6BdYP2kbva${`E`;5Vz>gVp7)EYaL z;LCoZr5yW+;Oby$4qV7@rk;0JpSO#a)!CoE+t>!avsCUp*)Csw(8Q`1;tx9e=n)2y zt7K+EcVYWf17XDeqdCB**V5L;Hc)E>?(=WBa94L+b!YCCuz0lFkq)_A6ZiPO+;V(| zduFg%Af`{)mW$Mg|5$+g`r zk;`n|EOY}sN!dzY;H-~Gc%{zFzx-3xvNi60wY5pbNM<0)-iTHOE7e_!4~&kW>P3!? z5&iOyAdXb9jGprjGya}2Pf^p}&eJ_rELLCeKrqB+o!9+~kYe>0f$2(<4R$X6?3^UA z-{2I*`Fcwn|G&QQ<@@u-xnH`^hqr9n0AuMp<4gKR%)tM&;i6mJBT160;9V+aVzSZd zQLwI)S zZ+$H+s0!4`L(Sy$u}$;2$lexlQIL}d$)&S~5He+jZ;e_ge$ggO^WrLMX^ru?9`~Bu z6$*=sLzZrKcwFsin`{AJAC;1EL>o{IM@Hu>b<}1^z=r2u48e9VEPAZ= z)9;GvT{mg{5i}Fxgzk`0p_{4R0B~-kwRN@B1mY}yAC62OH@aoWuEgkE&s|s|;&|lZ zS8~bN{R=iWHidDXxLw=+Gd)*If z940={a~`84ARZDxrX~$s$iMJgMOSy?*RNl|b4IQ)e*JReReAN^-3u4e zugSlCK`&_}+hpKX9%h@vH#4PGF$G!(R9~_00~d&X|Av-Nri=I9Q5?#?x|phWKc~V(ihuT7x;&qnnCkSp z^Kn0NVNKV)xrCk0<@ZT39psWY*;^=ApM0_IlRGj(*dSp*ECE+QprZ77#EiKO-|52k_R|~bqZvFmzW(Fnw>2gy=e&Mm=M&E>o$)H>I zu}tFvI0i@Icohte@YcHfbF^5YVZ-ZjS>!o>z&g28+Z_6Wx8-2s8_6=ZyGzz)GWC1w z#Rw6KXQR#p`ULDl-4hYpj`RHO?X5g}rNKhM?q36aD`>1S(a{j?h^54S;P=&QY3?8< zXoGIYGx_bU%*%Z4=bCvAMd*Gg!(58g?8J{||dj2QRF=>0T~qJFjQ_a5EqV z+)1~`Kl_s9N|bQWTbg{P*;rtMk)(Sd3|Zwp4VfK(zV||F_|ql<^vv@Z``X@+P$(Hd zKY(|`w_CiwXJ0gnW?5W8J7bFJ<$>S0-ZJh2<*x)^;N0)Ssb37JkL5u03SbRw1~n;C zrE4nj{`w{2C#c}|{BPk~5UBV(>p^-RGjDKva0B1Pmi6d2L%7TSw}n#l;*@LP;O3V0 zLt0Z$!*MAjD06#2jJ^7B__?%UVaE#i9suA=<KT<&+CchB(H6@j-4VI1$>bVgfj8jgQfnI% z|L3&o!d?2-g9G|r%NLr!rj0BXhZk!VoM!wjtlt%SVYd|7vRJwu%72^C1q3G(+kGANvo;&t#rpsqwcnjh( z`+9RIp}?=ec&0}!Ar_H5g$>}RTUvV~$TGyOl9 z{{o8#o_az6*MF`Oc7A=2mf!r^K=?0xW{mKGl!jO*16~_dXei$j4D%1M!RY&js0!tjF6>T>Big7)V-j<>{(2~y z_9ByQ<=@9i2|~WG6#*KrF=E3R$j}Bk>5wH&rDK(|vn-1AlvGV& ztekRMrTeGl#s;wDM}ge%h^@aueCtJD7-P^qDM;_K7+O9sxhO(B%V?~nUGx~;OzA)$|G@qT+ zq}XY?qTQH9JY|k3DZyNk8N2iE#wLO@K_Y^vCXpW(If>*d(W!VrxX&})N#;>yu630O zhcFxfRg?h*BL?|jK@WLYN;0WOw_tc+ARwvWcVJWih2ox|?As!!a+YFZ?&ISBh5mm- zBq;s`N&M#_`S-Tfg8iQX6L9}Ef`EX6;D87qUz!0`>3_%}q5e}H>|g5n Nr)72^{y75j{{cU=#W4T? diff --git a/ProxySU/bin/Release/TemplateConfg/WebSocketTLSWeb_server_config.caddyfile b/ProxySU/bin/Release/TemplateConfg/WebSocketTLSWeb_server_config.caddyfile new file mode 100644 index 0000000..c9d7b03 --- /dev/null +++ b/ProxySU/bin/Release/TemplateConfg/WebSocketTLSWeb_server_config.caddyfile @@ -0,0 +1,9 @@ +##domain## { + root /var/www + tls ##email## + proxy / ##sites## + proxy ##path## localhost:10000 { + websocket + header_upstream -Origin + } +} \ No newline at end of file diff --git a/ProxySU/bin/Release/TemplateConfg/WebSocketTLSWeb_server_config.json b/ProxySU/bin/Release/TemplateConfg/WebSocketTLSWeb_server_config.json new file mode 100644 index 0000000..b323a4a --- /dev/null +++ b/ProxySU/bin/Release/TemplateConfg/WebSocketTLSWeb_server_config.json @@ -0,0 +1,29 @@ +{ + "inbounds": [ + { + "port": 10000, + "listen": "127.0.0.1", + "protocol": "vmess", + "settings": { + "clients": [ + { + "id": "##uuid##", + "alterId": 64 + } + ] + }, + "streamSettings": { + "network": "ws", + "wsSettings": { + "path": "##path##" + } + } + } + ], + "outbounds": [ + { + "protocol": "freedom", + "settings": {} + } + ] +} \ No newline at end of file diff --git a/ProxySU/bin/Release/TemplateConfg/mkcp_server_config.json b/ProxySU/bin/Release/TemplateConfg/mkcp_server_config.json new file mode 100644 index 0000000..18805b3 --- /dev/null +++ b/ProxySU/bin/Release/TemplateConfg/mkcp_server_config.json @@ -0,0 +1,33 @@ +{ + "inbounds": [ + { + "port": ##port##, + "protocol": "vmess", + "settings": { + "clients": [ + { + "id": "##uuid##", + "alterId": 64 + } + ] + }, + "streamSettings": { + "network": "mkcp", + "kcpSettings": { + "uplinkCapacity": 100, + "downlinkCapacity": 100, + "congestion": true, + "header": { + "type": "##mkcpHeaderType##" + } + } + } + } + ], + "outbounds": [ + { + "protocol": "freedom", + "settings": {} + } + ] +} \ No newline at end of file diff --git a/ProxySU/bin/Release/TemplateConfg/tcp_http_server_config.json b/ProxySU/bin/Release/TemplateConfg/tcp_http_server_config.json new file mode 100644 index 0000000..035bac2 --- /dev/null +++ b/ProxySU/bin/Release/TemplateConfg/tcp_http_server_config.json @@ -0,0 +1,50 @@ +{ + "inbounds": [ + { + "port": 80, + "protocol": "vmess", + "settings": { + "clients": [ + { + "id": "##uuid##", + "alterId": 64 + } + ] + }, + "streamSettings": { + "network": "tcp", + "tcpSettings": { + "header": { + "type": "http", + "response": { + "version": "1.1", + "status": "200", + "reason": "OK", + "headers": { + "Content-Type": [ + "application/octet-stream", + "application/x-msdownload", + "text/html", + "application/x-shockwave-flash" + ], + "Transfer-Encoding": [ + "chunked" + ], + "Connection": [ + "keep-alive" + ], + "Pragma": "no-cache" + } + } + } + } + } + } + ], + "outbounds": [ + { + "protocol": "freedom", + "settings": {} + } + ] +} \ No newline at end of file diff --git a/ProxySU/bin/Release/TemplateConfg/tcp_server_config.json b/ProxySU/bin/Release/TemplateConfg/tcp_server_config.json new file mode 100644 index 0000000..7244851 --- /dev/null +++ b/ProxySU/bin/Release/TemplateConfg/tcp_server_config.json @@ -0,0 +1,25 @@ +{ + "inbounds": [ + + { + "port": ##port##, + "protocol": "vmess", + "settings": { + "clients": [ + { + "id": "##uuid##", + "alterId": 64 + } + ] + } + } + } + + ], + "outbounds": [ + { + "protocol": "freedom", + "settings": {} + } + ] +} \ No newline at end of file