From a9eb27caf42b7c2d610c05eb073215449a948087 Mon Sep 17 00:00:00 2001 From: ProxySU Date: Wed, 8 Apr 2020 21:17:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0Http2=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ProxySU/MainWindow.xaml.cs | 72 ++++++++++++++++-- ProxySU/ResultClientInformation.xaml.cs | 2 +- ProxySU/TemplateConfiguration.xaml.cs | 2 +- ProxySU/bin/Release/ProxySU.exe | Bin 97280 -> 99328 bytes ProxySU/bin/Release/Release.zip | Bin 463039 -> 463472 bytes .../TemplateConfg/http2_client_config.json | 52 +++++++++++++ .../TemplateConfg/http2_server_config.json | 37 +++++++++ 7 files changed, 155 insertions(+), 10 deletions(-) create mode 100644 ProxySU/bin/Release/TemplateConfg/http2_client_config.json create mode 100644 ProxySU/bin/Release/TemplateConfg/http2_server_config.json diff --git a/ProxySU/MainWindow.xaml.cs b/ProxySU/MainWindow.xaml.cs index b012588..1d8938f 100644 --- a/ProxySU/MainWindow.xaml.cs +++ b/ProxySU/MainWindow.xaml.cs @@ -212,12 +212,12 @@ namespace ProxySU clientConfig = "TemplateConfg\\mkcp_client_config.json"; } - else if (String.Equals(ReceiveConfigurationParameters[0], "HTTP2")) + else if (String.Equals(ReceiveConfigurationParameters[0], "Http2")) { //File.Copy("TemplateConfg\\tcp_server_config.json", "ConfigUpload\\tcp_server_config.json", true); - serverConfig = "TemplateConfg\\HTTP2_server_config.json"; - clientConfig = "TemplateConfg\\tcp_client_config.json"; + serverConfig = "TemplateConfg\\http2_server_config.json"; + clientConfig = "TemplateConfg\\http2_client_config.json"; } else if (String.Equals(ReceiveConfigurationParameters[0], "QuicNone") || String.Equals(ReceiveConfigurationParameters[0], "QuicSRTP") || String.Equals(ReceiveConfigurationParameters[0], "Quic2uTP") || String.Equals(ReceiveConfigurationParameters[0], "QuicWechatVideo") || String.Equals(ReceiveConfigurationParameters[0], "QuicDTLS") || String.Equals(ReceiveConfigurationParameters[0], "QuicWireGuard")) { @@ -503,9 +503,9 @@ namespace ProxySU //MessageBox.Show(timesStamp2.ToString()); //如果使用如果是WebSocket + TLS + Web模式,需要检测域名解析是否正确 - if (serverConfig.Contains("WebSocketTLSWeb") == true) + if (serverConfig.Contains("WebSocketTLSWeb") == true || serverConfig.Contains("Http2") == true) { - currentStatus = "使用WebSocket + TLS + Web模式,正在检测域名是否解析到当前VPS的IP上......"; + currentStatus = "正在检测域名是否解析到当前VPS的IP上......"; textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); Thread.Sleep(1000); @@ -593,7 +593,12 @@ namespace ProxySU { serverJson["inbounds"][0]["streamSettings"]["wsSettings"]["path"] = ReceiveConfigurationParameters[3]; } - //mkcp模式下,设置伪装类型 + //如果是Http2模式下,设置路径 + if (serverConfig.Contains("http2") == true) + { + serverJson["inbounds"][0]["streamSettings"]["httpSettings"]["path"] = ReceiveConfigurationParameters[3]; + } + //mkcp模式下,设置伪装类型 if (serverConfig.Contains("mkcp") == true) { serverJson["inbounds"][0]["streamSettings"]["kcpSettings"]["header"]["type"] = ReceiveConfigurationParameters[5]; @@ -616,7 +621,7 @@ namespace ProxySU //client.RunCommand("sed -i 's/##path##/\\" + ReceiveConfigurationParameters[3] + "/' " + upLoadPath); ////client.RunCommand("sed -i 's/##domain##/" + ReceiveConfigurationParameters[4] + "/' " + upLoadPath); //client.RunCommand("sed -i 's/##mkcpHeaderType##/" + ReceiveConfigurationParameters[5] + "/' " + upLoadPath); - client.RunCommand("systemctl restart v2ray"); + //client.RunCommand("systemctl restart v2ray"); File.Delete(@"config.json"); //打开防火墙端口 @@ -696,7 +701,54 @@ namespace ProxySU client.RunCommand("caddy -service start"); } - + if (serverConfig.Contains("http2") == true) + { + currentStatus = "使用Http2模式,正在安装acme.sh......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + + if (getApt == false) + { + //client.RunCommand("apt-get -qq update"); + client.RunCommand("apt-get -y -qq install socat"); + } + if (getYum == false) + { + //client.RunCommand("yum -q makecache"); + client.RunCommand("yum -y -q install socat"); + } + if (getZypper == false) + { + // client.RunCommand("zypper ref"); + client.RunCommand("zypper -y install socat"); + } + client.RunCommand("curl https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh | INSTALLONLINE=1 sh"); + client.RunCommand("cd ~/.acme.sh/"); + client.RunCommand("alias acme.sh=~/.acme.sh/acme.sh"); + + currentStatus = "申请域名证书......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + + client.RunCommand("mkdir -p /etc/v2ray/ssl"); + client.RunCommand($"/root/.acme.sh/acme.sh --issue --standalone -d {ReceiveConfigurationParameters[4]}"); + + currentStatus = "安装证书到V2ray......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + client.RunCommand($"/root/.acme.sh/acme.sh --installcert -d {ReceiveConfigurationParameters[4]} --certpath /etc/v2ray/ssl/v2ray-h2-ssl.pem --keypath /etc/v2ray/ssl/v2ray-h2-ssl.key --capath /etc/v2ray/ssl/v2ray-h2-ssl.pem --reloadcmd \"systemctl restart v2ray\""); + } + + currentStatus = "正在启动V2ray......"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + //启动V2ray服务 + client.RunCommand("systemctl restart v2ray"); + + currentStatus = "V2ray启动成功!"; + textBlockName.Dispatcher.BeginInvoke(updateAction, textBlockName, progressBar, currentStatus); + Thread.Sleep(1000); + //生成客户端配置 currentStatus = "生成客户端配置......"; @@ -718,6 +770,10 @@ namespace ProxySU { clientJson["outbounds"][0]["streamSettings"]["wsSettings"]["path"] = ReceiveConfigurationParameters[3]; } + if (clientConfig.Contains("http2") == true) + { + clientJson["outbounds"][0]["streamSettings"]["httpSettings"]["path"] = ReceiveConfigurationParameters[3]; + } if (clientConfig.Contains("mkcp")==true) { clientJson["outbounds"][0]["streamSettings"]["kcpSettings"]["header"]["type"] = ReceiveConfigurationParameters[5]; diff --git a/ProxySU/ResultClientInformation.xaml.cs b/ProxySU/ResultClientInformation.xaml.cs index f43812d..189940d 100644 --- a/ProxySU/ResultClientInformation.xaml.cs +++ b/ProxySU/ResultClientInformation.xaml.cs @@ -166,7 +166,7 @@ namespace ProxySU HidePathAndTLS(); ShowQuicKey(); } - else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "HTTP2")) + else if (String.Equals(MainWindow.ReceiveConfigurationParameters[0], "Http2")) { TextBoxTransmission.Text = "h2"; TextBoxCamouflageType.Text = "none"; diff --git a/ProxySU/TemplateConfiguration.xaml.cs b/ProxySU/TemplateConfiguration.xaml.cs index 4c9668b..68d4c50 100644 --- a/ProxySU/TemplateConfiguration.xaml.cs +++ b/ProxySU/TemplateConfiguration.xaml.cs @@ -57,7 +57,7 @@ namespace ProxySU else if (RadioButtonHTTP2.IsChecked == true) { //传递模板类型 - MainWindow.ReceiveConfigurationParameters[0] = "HTTP2"; + MainWindow.ReceiveConfigurationParameters[0] = "Http2"; //传递路径 MainWindow.ReceiveConfigurationParameters[3] = TextBoxPath.Text.ToString(); //传递域名 diff --git a/ProxySU/bin/Release/ProxySU.exe b/ProxySU/bin/Release/ProxySU.exe index 0595d9f4c56e99cf16dba42aad455ab51c81c0f3..18f0e4094716d0cb1f37f062baa501353651ae23 100644 GIT binary patch delta 4149 zcmbVPdr(y86+d^mELV0HST?XP6n1&+^4JAY9xDQ63RQ{)3MiuZKtLowcKH_LSYsCx zt*A9+`LIq*n)Z)2Y3+lgo772Ws<98pWTw+NF%3;?ZKe*>OsAtsCN*i=vFE$5y&$bK z-8*~lIluEe=R4o|?)mP$lb<9`PU)wo+-;vPdKu*3pTP|Vt_+}(1K1>ix~}N?Eh#T_ za?r+r-5l)O7pbe3ro!PqZWZ?z!*)nhIG8! z(EUD10vV#e@Vku^jq(s3^p4-Zb20@}6nvcmnaI%k<;$#-46Vj-OY#YmC0HQOD(nJ* zysFB@2GW$NkjVB-HdT7Qw8u0aN3S93_Z9S+08)7JH#CUxeP+~#d07j*kLy4TRu;h3 zVAW<8bYM1Q2V&k5TqwsmGEBc)=GFZc$^MeW;(GE2QL>N(o07_n9=tioAsY+FeT$B* zc0_)TMzORwfxoD-Iniemh|?ao)vB^t&uk;AE|4P{c}^pzI^zDNiYzXnl>BA~IOSQ_ zkT4SDss`O`YGLXs&$F}`00ir(HMTUh&Ls`1!4OshMClKzv(f)~hKS3(EG;I}exuS_)My#;Xz!?TZ_^jo zl*{>Q2>)J0Se2*-$&3eybF5jkXKlBYT-RfzD9%@0c~6%A zMs(0uDxHEHu9g0=GQ09gG@CQLt?02Rtl6z3j#F0ex`3NaxyH@z^lmfnGYTZE60tW? z|8ZQ`GyR6D3&fPG1Qp1MDzL=Q_nfjGr0-BeYntMagB4aA$Z#e;O#wwYh=#0QSl!QBWdNi?$& zqIfb}iR7(m^%f7kT~#bcbv+>JkO%jL;ziA`gj~}6t~7NKaEDli#9H5#rfqzMr0MI$ zjh{_j0gIfeh7@mXwmV?+D}nx7^Pdm2>%vk&z3cKa4zv1+dsLR$9t>ce$SDu)Tj$8Q zcE9Cg51mGf$*cI-6`y)9y|m6cvg>}!F@(fBLE4s!8x@zi`?9+Nu|79$q#@dW6Rp>3P zg}_^b&)`r+iNwlYPs9b%fX&M>`DrsA<4BPzSX55N3+aivCw0dP zslC2e_i175K>aMQt1qIa#+#1E@VzZ}b0=Kwl`56HVRLgMPIkUGrf+IZj#MKKa0K2o zoaVm>ugTg^QTq~X+#%Vnrk>&3;S*7d!VNRwI)UtzY~!hQd>2g0T2)FNzXe{BwGOmx zh0C&5hT1lGQ`UZn%w7;8yQDA+raFEnd`{MEXxt4)W$o{%?SWZQTi}KrdKiFTiQ0Qy z$nHk1a)3p7!WPQZ!(ONpH7Xp>_zu4p9#%BrIn>5wjS4?P?ce||2*5XmyY?7A1e2oi zYhsuom=d+9?a|C_XnS^%?YV*2$@bqBB~HKugkpn-Jf;=3dUN8k}0GLFSG( z#onEIhvzC{3#XsvA2O(90J|*H;LKo*r%rvKD$?fNzflPXu7^{18SnLvc)L$*|MgTK z^urhof*-=L56|&~3($+-@EgMrL`omJbEVWaowpe1oz6397?ZEli)S1Wg8Ty*Y6ynW zZy)T3J@^mfFa%=-;Sod!#j{`3$DkBFq(oR6KIH7hV;Hevw2W%(Qlh1pbRR}!amZ3@ z1ak0r4FAp03Z2je4ftiV2|s39@yxI$sD;%ciw(!E?8imVfv;j9znX|L5Hzp^SQ=sE zC}~R8+GTxe;Gc_Z zt{b>))@7w#-&YE|w6656nX-%wx$0H!H!q~-C zNAqLT&vZpI%{3S1*fzr+WTW_R#INkeinIUpaqhI^>t>2WS0-Cun1A=J!wWApo-Ofn zThr&|?{MbzA(L~Wu1wvn&I>>BbGx~-X-VAm3n^vXN6jnRr7wJb?FI8!xZ7N`Ea^W) C5^kaZ delta 2950 zcma)8du&r>6hGhPw%m24U02$*-C(2bx@K$3nCt~(W%3wZ)>~0^>^KtcK3!A+irt;T?02Hl3aig0jN~SiKJA< zo+MyId~FJWB6jFpfYp&K!w&%r%s@KCHjo^W%Z`vN@;dvGxP8Yk1HUHWEr1U8HKIKq zfV0^E`nx9q?ry+L*^z2td8QCFvol$(#vThauU-xy>Zy%Q_lHRX+v=Y{mPIc6{}RX! zb|I&b?1>lyMa1AT0oVX6^Z=U{oGA1pvwNYy0D4ItMTtI2X7_`Bm)Q!<3HI&OgQMRE zVDNkK$448iTwgEI_2_7FAlKyN-dg;zV)#e>&^n2J)eo(g=$(G(fvh8BXWxd*#tDP5 zwo+DPcSE81<8Uu6Qm{s%K3jbCOjT9F*&>`tAd_-ip(R?aseKY%8nts0>BFdq4zlxw zv3x^rn1FU-BJC=EIc}$1xH$yS;T2h^wJC!wKVovnwaELDmyZA79Q|b z9>pJaAHAT*yc!(--(ma{K?2^&1PVR!c<93SIUBg>EsPIwJ^m< z+}bp04qHweX)!=JZc~oN$?OZqOD7F?aMwOc1U%~5k;EyGR{;z0u zx7hLj>If_4a_r|kd#*0_w!xP8k5aLRmUqaoqWJ!JVo2|H$;<9{F|i7u67MKV)5h%2)a$ z+uSS?b_=V#>{9ruc@0XGjmplWYrO3A*tdl)FPl+TFC=6}B4wSTP?gClCSG-I$^`Jt zsDaC~l)dnj&!`xW%lTziN@_ zb-)!1B{fh`ulSakOT}6kucAUzsW=l}Q_*zv&4zU<%0)B>I#qN4mGyA8MTIv8m5TF0 zoTnsppmQNiQqgThjWAnAH^>r~9-f1C8C@sMPB)@I8+crsquH*9MIbbC#H97M-Qpq$ zX-L|OC|^ZPI*4dYBlZfwHtC@=A})sUvhz(j&0?sOQHNuNeGd8>d-+~$jGUQ%FSVySamrvYD z?RWm!b^ecn$$QJHFWL7$n$tZypUgHLR6lWf)S1fe&+>^&I97S|`+TyH95oe@-zpNu PDqqc)OO9F!$OG~(g~NAW diff --git a/ProxySU/bin/Release/Release.zip b/ProxySU/bin/Release/Release.zip index d1c6ea66478db8bcb1ab55964a660f477b572296..e0c814ff7db7b72170bdeca2e473f5d9dbfd514b 100644 GIT binary patch delta 26124 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 delta 25726 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 H(#!t^6trRm diff --git a/ProxySU/bin/Release/TemplateConfg/http2_client_config.json b/ProxySU/bin/Release/TemplateConfg/http2_client_config.json new file mode 100644 index 0000000..769f4d1 --- /dev/null +++ b/ProxySU/bin/Release/TemplateConfg/http2_client_config.json @@ -0,0 +1,52 @@ +{ + "inbounds": [ + { + "protocol": "http", + "port": 1081 + }, + { + "port": 1080, + "protocol": "socks", + "sniffing": { + "enabled": true, + "destOverride": [ + "http", + "tls" + ] + }, + "settings": { + "auth": "noauth" + } + } + ], + "outbounds": [ + { + "protocol": "vmess", + "settings": { + "vnext": [ + { + "address": null, + "port": null, + "users": [ + { + "id": null, + "alterId": 16, + "security": "auto" + } + ] + } + ] + }, + "streamSettings": { + "network": "h2", + "security": "tls", + "httpSettings": { + "path": null + } + }, + "mux": { + "enabled": true + } + } + ] +} \ No newline at end of file diff --git a/ProxySU/bin/Release/TemplateConfg/http2_server_config.json b/ProxySU/bin/Release/TemplateConfg/http2_server_config.json new file mode 100644 index 0000000..568b03e --- /dev/null +++ b/ProxySU/bin/Release/TemplateConfg/http2_server_config.json @@ -0,0 +1,37 @@ +{ + "inbounds": [ + { + "port": null, + "protocol": "vmess", + "settings": { + "clients": [ + { + "id": null, + "alterId": 64 + } + ] + }, + "streamSettings": { + "network": "h2", + "security": "tls", + "tlsSettings": { + "certificates": [ + { + "certificateFile": "/etc/v2ray/ssl/v2ray-h2-ssl.pem", + "keyFile": "/etc/v2ray/ssl/v2ray-h2-ssl.key" + } + ] + }, + "httpSettings": { + "path": null + } + } + } + ], + "outbounds": [ + { + "protocol": "freedom", + "settings": {} + } + ] +} \ No newline at end of file