1
0
mirror of https://github.com/proxysu/ProxySU.git synced 2024-11-22 21:26:09 +03:00
ProxySU/README.md
2020-08-17 17:56:22 +08:00

136 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 使用V2ray的任何TLS加密的尽快升级到最新版本4.23.2及以上。原因如下:
[v2ray的TLS流量可被简单特征码匹配精准识别](https://github.com/v2ray/discussion/issues/704)
# ProxySU
V2ray, Trojan, NaiveProxy, Trojan-Go, BBR install tools for windows。V2rayTrojanNaiveProxy, Trojan-Go 一键安装工具。BBR一键开启仅支持CentOS8/Debian9/10/Ubuntu18.04及以上)
编译环境Visual Studio 2017 使用WPF界面。可一键安装V2ray、Trojan、NaiveProxyTrojan-Go 后续还会再添加其他。
##### V2ray可一键安装的模式有
* tcp
* tcp+http伪装
* tcp+TLS
* tcp+TLS (自签证书)
* WebSocket
* WebSocket+TLS
* WebSocket+TLS+Web
* WebSocket+TLS自签证书
* http2
* http2+TLS+Web
* http2自签证书
* mKCP及各种伪装
* QUIC及各种伪装。
mKCP和QUIC模式使用udp协议可以有效减少网络延时有加速的作用但在网络管控严厉时期会导致IP被封我遇到的一次就是刚安装好使用了3个小时后IP被封现已确认是mKCP的流量被识别导致项目组正在维护中。2020.6.10维护完毕升级到版本4.24.2及以上启用mKCP密钥可增强抗识别。以上模式最推荐的是WebSocket+TLS+Web 和http2+TLS+Web 需要有一个域名。如果能加上CDN则稳定性更好。加上CDN后是加速还是减速与线路有关。
##### Trojan 可一键安装的模式有:
* Trojan + TLS + Web
##### Trojan-Go 可一键安装的模式有:
* Trojan-Go + TLS + Web
* Trojan-Go + WebSocket + TLS + Web
##### NaiveProxy一键安装
* NaiveProxy + TLS +Web
##### 支持的VPS系统为
* CentOS 7/8
* Debian 8/9/10 (推荐 9)
* Ubuntu 16.04及以上
(注意如果系统启用了SELinux且工作在Enforcing模式下时需要将Enforcing更改为Permissive模式否则使用WebSocket+TLS+Web时Caddy的service无法开机启动这种情形一般出现在Centos7/8中程序在安装过程中将自动处理。)
###### V2ray模式目前已支持生成用于
* [v2ray官方程序](https://www.v2ray.com/chapter_00/install.html)配置文件(客户端配置)
* [v2rayN (windows)](https://github.com/2dust/v2rayN/releases)客户端导入二维码和网址
* [Trojan-QT5 (windows)](https://github.com/Trojan-Qt5/Trojan-Qt5)客户端导入二维码和网址
* [Qv2ray (windows)](https://github.com/Qv2ray/Qv2ray)客户端导入二维码和网址
* [Shadowrocket (ios)](https://apps.apple.com/us/app/shadowrocket/id932747118)导入二维码和网址
* [v2rayNG (Android)](https://github.com/2dust/v2rayNG/releases)导入二维码和网址
程序中只实现生成v2rayN的但是Shadowrocket和v2rayNG都可以导入。
###### Trojan模式目前已支持生成用于
* [Trojan官方程序](https://github.com/trojan-gfw/trojan)配置文件(客户端配置)
* [Trojan-QT5 (windows)](https://github.com/TheWanderingCoel/Trojan-Qt5/releases)导入二维码和网址
* [Qv2ray (windows)](https://github.com/Qv2ray/Qv2ray)客户端导入二维码和网址
* [Shadowrocket (ios)](https://apps.apple.com/us/app/shadowrocket/id932747118)导入二维码和网址
* [igniterAndroid](https://github.com/trojan-gfw/igniter/releases)导入二维码和网址
Trojan官方的Windows客户端需要安装 [vc_redist.x64.exe](https://aka.ms/vs/16/release/vc_redist.x64.exe)。[官方说明](https://github.com/trojan-gfw/trojan/wiki/Binary-&-Package-Distributions#windows-vista)
###### Trojan-Go模式目前已支持生成用于
* [Trojan-Go官方程序](https://github.com/p4gefau1t/trojan-go/releases)配置文件(客户端配置)
* [Trojan-QT5 (windows)](https://github.com/TheWanderingCoel/Trojan-Qt5/releases)导入二维码和网址(暂不支持WebSocket模式)
* [Qv2ray (windows)](https://github.com/Qv2ray/Qv2ray)客户端导入二维码和网址
* [Shadowrocket (ios)](https://apps.apple.com/us/app/shadowrocket/id932747118)导入二维码和网址(暂不支持WebSocket模式)
* [igniter-goAndroid](https://github.com/p4gefau1t/trojan-go-android/releases)导入二维码和网址
###### NaiveProxy支持生成用于
* [NaiveProxy官方客户端](https://github.com/klzgrad/naiveproxy/releases)配置文件windows客户端配置
* [NaiveGUI](https://github.com/ExcitedCodes/NaiveGUI/releases)(第三方Windows图形客户端)URL导入链接。
* [Qv2ray (windows)](https://github.com/Qv2ray/Qv2ray)客户端导入二维码和网址
这里多说几句NaiveProxy现在墙越来越高翻墙软件需要隐藏访问目标网址和加密数据的同时还要隐藏自己的流量特征不被识别出是代理流量。V2rayTrojan都有其自己的实现。而NaiveProxy是配合Caddy的一个http.forwardproxy插件插件有防嗅探转发流量的功能。代理http流量很完美但是在代理https流量时会出现长度特征NaiverProxy则弥补了这一点消除了代理https时的流量特征(当配置文件中Padding=true时),另外还应用 [Chrome's network stack](https://www.chromium.org/developers/design-documents/network-stack).更好的消除TLS的指纹特征。详细介绍请看项目官方介绍[NaiveProxy官方文档](https://github.com/klzgrad/naiveproxy)。有兴趣的不妨一试。
## 程序工作流程:
1. 使用[SSH.NET](https://github.com/sshnet/SSH.NET)登录远程主机
2. 根据选择的代理来调用相应的脚本:
* 选择V2ray则调用V2ray官方安装脚本 `curl -o /tmp/go.sh https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh` `bash /tmp/go.sh -f` 安装V2ray。
* 选择Trojan则调用Trojan官方安装脚本 `curl -o /tmp/trojan-quickstart.sh https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh` `yes | bash /tmp/trojan-quickstart.sh` 安装Trojan。
* 选择Trojan-Go则调用本项目内的trojan-go.sh安装 `curl -o /tmp/trojan-go.sh https://raw.githubusercontent.com/proxysu/shellscript/master/trojan-go.sh` `bash /tmp/trojan-go.sh -f` 安装Trojan-GO。
* 选择NaiveProxy先安装Caddy2,方法源自[Caddy官方文档](https://caddyserver.com/docs/download)。再用自编译的Caddy2(带forward_proxy插件)替换原来的Caddy运行文件。自编译Caddy2文件方法源自[NaiveProxy官方文档](https://github.com/klzgrad/naiveproxy#setup)。
3. 根据选择读取相应配置模板,调用[Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json)生成相应配置文件,并上传到服务器。所有模板及配置文件 [在这里](https://github.com/proxysu/windows/tree/master/TemplateConfg)
4. 如果使用WebSocket + TLS + Web/http2 + TLS + Web/Trojan + TLS + Web/NaiveProxy + TLS + Web模式则安装Caddy2,方法源自[Caddy官方文档](https://caddyserver.com/docs/download)。
5. 如果使用Http2/tcp+TLS/WebSocket+TLS/Trojan+TLS+Web模式则调用 `curl https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh | INSTALLONLINE=1 sh` 安装acme.sh使用acme.sh申请并安装证书到V2ray/Trojan.
6. 安装成功后,使用[Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json)生成兼容于相应客户端的json文件用C#内置的Base64库将json生成url链接使用[QRcoder](https://github.com/codebude/QRCoder)生成二维码。
*V2ray安装及配置文件主要参考自
[V2ray官网](https://www.v2ray.com "需加代理访问")
[白话文教程](https://toutyrater.github.io/)
[新白话文教程(社区版)](https://guide.v2fly.org/)
*Trojan安装及配置文件主要参考自
[Trojan官方配置文档](https://trojan-gfw.github.io/trojan/config)
[Trojan官方安装说明](https://github.com/trojan-gfw/trojan/wiki/Binary-&-Package-Distributions)
[自建梯子教程-Trojan](https://trojan-tutor.github.io/2019/04/10/p41.html)
*NaiveProxy安装及配置文件主要参考自
[NaiveProxy官方说明](https://github.com/klzgrad/naiveproxy)
[美博园教程-自建最强科学上网4NaiveProxy + Caddy](https://dafahao.com/naiveproxy-caddy.html "需加代理访问")
## License
[(GPL-V3)](https://raw.githubusercontent.com/proxysu/windows/master/LICENSE)
## 运行文件下载
* Beta版(随代码更新新添加功能可能有bug或不完善)
[下载](https://github.com/proxysu/windows/raw/master/ProxySU/bin/Beta/Beta.zip)
* 正式版(正式发布的版本,新功能完善后发布)
[下载](https://github.com/proxysu/windows/releases)
## Windows系统需要安装net4.0及以上
Microsoft [.NET Framework 4.0](https://dotnet.microsoft.com/download/dotnet-framework/thank-you/net40-offline-installer) or higher
## 使用的C# 库
[SSH.NET --------------- https://github.com/sshnet/SSH.NET](https://github.com/sshnet/SSH.NET)
[Newtonsoft.Json ------ https://github.com/JamesNK/Newtonsoft.Json](https://github.com/JamesNK/Newtonsoft.Json)
[QRcoder --------------- https://github.com/codebude/QRCoder](https://github.com/codebude/QRCoder)
## 程序安全
为了布署方便程序使用root账户登录主机出于慎重请不要在运行重要程序及用于生产的主机上使用。程序所有源码开源所使用的库都是github开源项目可以保障最大的使用安全程序不夹带任何私货、恶意代码及后门也不会收集任何个人资料不是在本项目地址下载的不做任何保障请尽可能从本项目地址下载。
## 程序使用问题反馈
* Telegram群组 https://t.me/proxysuissues
* Tiwtter [ProxySU_True](https://twitter.com/proxysu_true)
* 在线提问 https://github.com/proxysu/windows/issues
* 邮箱反馈 proxysetuptools@gmail.com
[常见问题集锦](https://github.com/proxysu/windows/wiki/CommonError)
## v1.0.0发布小记
足足用了近两个月的业余时间终于做成一个功能还算完善的版本。虽是一个简单的小工具没想到对于我这个初学C#的人还是有点小吃力如果不是因为武汉肺炎疫情被禁足在家还真没时间。学习C#,为啥编写这样一个小工具软件来练手?现在一键安装脚本多的是,这样的工具还有必要吗?咋说呢?我也不知道有多少人会喜欢这个小工具,只是觉得自己用着方便,也想方便一下别人吧,喜欢用就用,不喜欢,也随意。
生意又忙起来了,对于我这个业余的编程爱好者,可能没有多少业余时间继续折腾了,尽力吧。
记于2020.4.18