ytflow / maple Goto Github PK
View Code? Open in Web Editor NEWA lightweight Universal Windows proxy app based on https://github.com/eycorsican/leaf
License: Apache License 2.0
A lightweight Universal Windows proxy app based on https://github.com/eycorsican/leaf
License: Apache License 2.0
我hyper-v虚拟机上跑了个xray做中转,用maple ss连接虚拟机上的xray,结果把虚拟机也代理了,绕起来了,怎么解。
虚拟机网卡是桥接物理网卡,和宿主共享一个物理网卡
您好, 我尝试使用wintun,将packet通过netstack_send发送至leaf, 并且设定了OUTBOUND_INTERFACE为物理网卡ip,但似乎leaf的socket无法联通外网.建立tcp时,会报无效参数. 向大神请教一下是什么原因呢?
See this issue for the context.
In a nutshell, Maple could ask the user for the *.dat/*.site
files, and make Leaf be able to find them by modifying the ASSET_LOCATION
env var.
我目前在用一个 v2ray 客户端 v2rayN,但是 v2rayN 不支持全局透明代理,于是我尝试使用 Maple 实现全局透明代理,我应该怎样配置 Maple 才能让全局的流量都走 v2ray 代理呢?说得更具体一点,我想做到 mellow-io/mellow#283 所说的事情,不同之处是我用的代理客户端是 v2rayN 而那里用的代理客户端是 Clash,我应该如何配置 Maple?
leaf 的配置文档我没看明白,不知道如何修改配置,也没搜到 Maple 配置相关的教程,在此恳请方家赐教。我想知道用 Maple 能不能达到我想要的效果,如果能,请给出一个 working example。
下面是我的 v2ray 配置
{
"log": {
"access": "D:\\v2rayN-Core-315\\Vaccess.log",
"error": "D:\\v2rayN-Core-315\\Verror.log",
"loglevel": "warning"
},
"inbounds": [
{
"tag": "socks",
"port": 10808,
"listen": "127.0.0.1",
"protocol": "socks",
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
},
"settings": {
"auth": "noauth",
"udp": true,
"allowTransparent": false
}
},
{
"tag": "http",
"port": 10809,
"listen": "127.0.0.1",
"protocol": "http",
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
},
"settings": {
"udp": false,
"allowTransparent": false
}
}
],
"outbounds": [
{
"tag": "proxy",
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "blah.blah",
"port": 26012,
"users": [
{
"id": "blah-blah-blah",
"alterId": 1,
"email": "[email protected]",
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "ws",
"wsSettings": {
"path": "/v2ray",
"headers": {
"Host": "www.bing.com"
}
}
},
"mux": {
"enabled": true,
"concurrency": 8
}
},
{
"tag": "direct",
"protocol": "freedom",
"settings": {}
},
{
"tag": "block",
"protocol": "blackhole",
"settings": {
"response": {
"type": "http"
}
}
}
],
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"inboundTag": [
"api"
],
"outboundTag": "api"
},
{
"type": "field",
"outboundTag": "proxy",
"domain": [
"geosite:google",
"scratch.mit.edu",
"bintray.com",
"cloudfront.net",
"discord.com",
"discordapp.net"
]
},
{
"type": "field",
"outboundTag": "proxy",
"ip": [
"31.13.86.16"
]
},
{
"type": "field",
"outboundTag": "direct",
"domain": [
"geosite:cn",
"codeforces.com",
"workflowy.com",
"live.com",
"office365.com",
"office.com",
"onedrive.com"
]
},
{
"type": "field",
"outboundTag": "direct",
"ip": [
"geoip:private",
"geoip:cn"
]
},
{
"type": "field",
"outboundTag": "block",
"domain": [
"geosite:category-ads-all"
]
}
]
}
}
The path leaf/leaf-mobile
does not exist. I cannot build Maple using the instructions listed in README.
Obfuscation: How is obfs=tls added to the configuration and where do files need to be moved? Because my SS needs to rely on the SS plugin OBFSLOCAL to connect successfully! Hope to solve it soon, thank you!
Though Maple can not control vpn flow to connect or disconnect for now, I think it's really useful to make the Open VPN Settings
button much much more noticeable when opening Maple, it should be in the main screen to tell people to do this.
Or it can be improved to make a clear guidence as How To Use
in README.
I feel frustrate when I open Maple every time for 10 seconds and then I remembered that I should jump into the vpn settings to connect. And it's worse when I first use Maple, which I think I'm lucky to find how to use it.
想用普通的进程方式运行,既监听 socks 和 http,
但是没有合适的 Windows GUI 程序。
另外,可以不安装证书进行使用吗?
我用git同步所有的dotfiles,这往往意味着我需要app支持指定目录的配置,否则我就要把文件软链到app的配置目录中。目前测试下来,Maple对两者都不太支持。在~\AppData\Local\Packages\56263bdbai.Maple_gv14dyc9zj8pj\LocalState\config中创建的symlink不能被识别为配置文件。
这是由于UWP的目录访问权限限制吗?
Socks代理如何指定用户名和密码
[General]
loglevel = error
tun-fd = 233
dns-server = 1.0.0.1, 1.1.1.1
[Proxy]
Direct = direct
Reject = reject
Shadowsocks = ss, 1.2.3.4, 1234, encrypt-method=chacha20-ietf-poly1305, password=Pa55vv0rd1234
[Proxy Group]
Default = fallback, Shadowsocks
[Rule]
IP-CIDR, 10.0.0.0/8, Direct
IP-CIDR, 172.16.0.0/12, Direct
IP-CIDR, 192.168.0.0/16, Direct
FINAL, Default
I didn't find the configuration of http proxy. While I using http as the type of proxy, it seems doesn't work.
配置中geoip 不起作用
[Rule]
GEOIP, cn, Direct
GEOIP, private, Direct
FINAL, Proxy
chrome 中全部代理
在windows平台使用相同的conf
,Maple可以成功代理,原仓库编译的leaf开启代理不生效,leaf 0.9.3 和 0.8.2 两个版本都试过
[General]
loglevel = trace
dns-server = 223.5.5.5, 114.114.114.114
tun = auto
[Proxy]
VMESS0 = vmess, xxx.xxx.xxx.xxx, xxxx, username=xxx
DIRECT = direct
REJECT = reject
[Rule]
FINAL, VMESS0
PS D:\leaf\target\debug> .\leaf -c conf.conf
start with options:
StartOptions {
config: File(
"conf.conf",
),
auto_reload: false,
runtime_opt: MultiThreadAuto(
2097152,
),
}
[2023-07-14 10:10:25][DEBUG] default handler [VMESS0]
[2023-07-14 10:10:25][TRACE] add handler [VMESS0]
[2023-07-14 10:10:25][TRACE] add handler [DIRECT]
[2023-07-14 10:10:25][TRACE] add handler [REJECT]
[2023-07-14 10:10:25][TRACE] added runtime 0
error[E0599]: no method named raw
found for struct Handle
in the current scope
--> C:\Users\zenlayer.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\fs.rs:360:29
|
360 | self.handle.raw(),
| ^^^ method not found in Handle
|
::: C:\Users\zenlayer.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\handle.rs:17:1
|
17 | pub struct Handle(OwnedHandle);
| ------------------------------- method raw
not found for this
error[E0599]: no method named raw
found for struct Handle
in the current scope
--> C:\Users\zenlayer.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\fs.rs:388:29
|
388 | self.handle.raw(),
| ^^^ method not found in Handle
|
::: C:\Users\zenlayer.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\handle.rs:17:1
|
17 | pub struct Handle(OwnedHandle);
| ------------------------------- method raw
not found for this
error[E0599]: no function or associated item named new
found for struct Handle
in the current scope
--> C:\Users\zenlayer.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\stdio_uwp.rs:28:26
|
28 | let handle = Handle::new(handle);
| ^^^ function or associated item not found in Handle
|
::: C:\Users\zenlayer.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\handle.rs:17:1
|
17 | pub struct Handle(OwnedHandle);
| ------------------------------- function or associated item new
not found for this
error[E0599]: no method named write
found for struct ManuallyDrop<_>
in the current scope
--> C:\Users\zenlayer.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\stdio_uwp.rs:29:31
|
29 | ManuallyDrop::new(handle).write(data)
| ^^^^^ method not found in ManuallyDrop<_>
|
= note: ManuallyDrop::new(handle)
is a function, perhaps you wish to call it
= help: items from traits can only be used if the trait is implemented and in scope
note: io::Write
defines an item write
, perhaps you need to implement it
--> C:\Users\zenlayer.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\io\mod.rs:1368:1
|
1368 | pub trait Write {
| ^^^^^^^^^^^^^^^
error[E0599]: no function or associated item named new
found for struct Handle
in the current scope
--> C:\Users\zenlayer.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\stdio_uwp.rs:41:30
|
41 | let handle = Handle::new(handle);
| ^^^ function or associated item not found in Handle
|
::: C:\Users\zenlayer.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\handle.rs:17:1
|
17 | pub struct Handle(OwnedHandle);
| ------------------------------- function or associated item new
not found for this
error[E0599]: no method named read
found for struct ManuallyDrop<_>
in the current scope
--> C:\Users\zenlayer.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\stdio_uwp.rs:42:35
|
42 | ManuallyDrop::new(handle).read(buf)
| ^^^^ method not found in ManuallyDrop<_>
|
= note: ManuallyDrop::new(handle)
is a function, perhaps you wish to call it
= help: items from traits can only be used if the trait is implemented and in scope
note: io::Read
defines an item read
, perhaps you need to implement it
--> C:\Users\zenlayer.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\io\mod.rs:520:1
|
520 | pub trait Read {
| ^^^^^^^^^^^^^^
For more information about this error, try rustc --explain E0599
.
error: could not compile std
due to 6 previous errors
Never mind, Issue closed.
升级到0.5.0,已经无法正常使用VMessWSS,测试过0.4.0也不行,之前一直正常使用0.3.0(现在证书过期也装不上去了)
问题如下:
配置文件如下:
[General]
# Log are for debug only
loglevel = trace
# Do not remove tun-fd option
tun-fd = 233
dns-server = 223.5.5.5, 114.114.114.114
[Proxy]
Direct = direct
Reject = reject
VMessWSS = vmess, ..., 443, username=..., ws=true, tls=true, ws-path=/...
[Proxy Group]
Fallback = fallback, VMessWSS, interval=600, timeout=5
[Rule]
EXTERNAL, site:category-ads-all, Reject
IP-CIDR, 8.8.8.8/32, Fallback
DOMAIN, www.google.com, Fallback
DOMAIN-SUFFIX, google.com, Fallback
DOMAIN-KEYWORD, google, Fallback
# 等效于 EXTERNAL, mmdb:us, Fallback
GEOIP, us, Fallback
EXTERNAL, site:geolocation-!cn, Fallback
FINAL, Direct
VS调试输出(Fallback部分):
[2021-09-06 15:55:02][DEBUG] www.google.com matches domain [www.google.com]
[2021-09-06 15:55:02][DEBUG] picked route [Fallback] for 192.168.3.1:52243 -> www.google.com:443
[2021-09-06 15:55:02][DEBUG] handler not found
[2021-09-06 15:55:02][TRACE] netstack tcp shutdown 192.168.3.1:52243
[2021-09-06 15:55:02][TRACE] netstack tcp drop 192.168.3.1:52243
[2021-09-06 15:55:02][TRACE] netstack tcp new 192.168.3.1:50704
[2021-09-06 15:55:02][DEBUG] www.google.com matches domain [www.google.com]
[2021-09-06 15:55:02][DEBUG] picked route [Fallback] for 192.168.3.1:50704 -> www.google.com:443
[2021-09-06 15:55:02][DEBUG] handler not found
[2021-09-06 15:55:02][TRACE] netstack tcp shutdown 192.168.3.1:50704
[2021-09-06 15:55:02][TRACE] netstack tcp drop 192.168.3.1:50704
[2021-09-06 15:55:02][TRACE] netstack tcp new 192.168.3.1:60754
[2021-09-06 15:55:02][DEBUG] www.google.com matches domain [www.google.com]
[2021-09-06 15:55:02][DEBUG] picked route [Fallback] for 192.168.3.1:60754 -> www.google.com:443
[2021-09-06 15:55:02][DEBUG] handler not found
[2021-09-06 15:55:02][TRACE] netstack tcp shutdown 192.168.3.1:60754
[2021-09-06 15:55:02][TRACE] netstack tcp drop 192.168.3.1:60754
[2021-09-06 15:55:02][TRACE] netstack tcp new 192.168.3.1:60596
[2021-09-06 15:55:02][TRACE] netstack tcp new 192.168.3.1:58264
[2021-09-06 15:55:02][DEBUG] [www.gstatic.com] matches domain suffix [gstatic.com]
[2021-09-06 15:55:02][DEBUG] picked route [Fallback] for 192.168.3.1:58264 -> www.gstatic.com:443
[2021-09-06 15:55:02][DEBUG] handler not found
看起来是没有找到Fallback,不知道为啥
Hi my config is something like this in apps like v2rayN:
and its like this in Netch (same config):
can someone help me apply it? Netch is crashing after Starting and connecting and annoying and V2rayN is not effecting whole system (can't be used for Gaming) thats why I need Maple, something that can effect whole system like Netch but I can't config it
This is the Config it self:
vless://********-****-****-****-************@callofduty.gamer2sky.com:****?encryption=none&security=none&type=ws&host=callofduty.gamer2sky.com&path=%2F#%40vanenshii-23apr
请问UWP提供的tun时,客户端和服务端建立TCP/UDP链接时是否无视 UWP VPN设定的路由规则
例如0.0.0.0/1 128.0.0.1/1
还是类似安卓 的vpnservice 需要protect一下fd
另外这个API的作用是?
可以有详细一点的配置方法嘛?目前的对我来说还是有点困难,不知道从哪里开始怎么弄
The following config is working:
[General]
# Log are for debug only
loglevel = error
# Do not remove tun-fd option
tun-fd = 233
dns-server = 223.5.5.5, 114.114.114.114
[Proxy]
VMess = vmess, 1xx.xx.xx.xx0, xx4, username=blahblah-blahblah-blah
[Proxy Group]
Fallback = VMess, interval=600, timeout=5
[Rule]
FINAL, Fallback
But the following not:
[General]
# Log are for debug only
loglevel = error
# Do not remove tun-fd option
tun-fd = 233
dns-server = 223.5.5.5, 114.114.114.114
[Proxy]
SS = ss, 107.173.xx.xx, xx, encrypt-method=aes-256-gcm, password=xxxxxxx
VMess = vmess, 107.173.xx.xx, xx, username=xxxxxxxxxxxxx
[Proxy Group]
Fallback = VMess, interval=600, timeout=5
[Rule]
FINAL, Fallback
Note that in the second configuration, SS is an invalid configuration. In version 0.2.0, using the second configuration is working, but now it's not.
是不是 leaf 对于windows来说没有tun模式?
leaf的json在哪里配置?写在conf里面吗
应用安装失败,错误消息: 从 (Maple.App_0.3.0.0_x64.appxbundle) 使用程序包 56263bdbai.Maple_0.3.0.0_neutral_~_5wvpqmt3a9dj6 中的目标卷 C: 执行的部署 Add 操作失败,错误为 0x8000FFFF。有关诊断应用部署问题的帮助,请参阅 http://go.microsoft.com/fwlink/?LinkId=235160。 (0x8000ffff)
I don't know if it's possible, but if it is, it will be better just hot reloading
the new configuration after a saving action happened.
For now, Maple just won't respect the new configuration, which requires reconnecting to the vpn to make the new configuration take effect.
It could be like:
Maple支持Trojan-Go协议吗?
Maple的日志文件目录在哪?
Currently the editor is somehow hard to use because of these reasons:
Can not provide my windows version for now but if it's helpful I'll post it later after work.
Importing unknown certificate into local machine trusted root authority is not acceptable for security reasons and in any way means opening door for MITM attack.
Microsoft Windows [版本 10.0.18363.1316]
在Issues里逛了一圈没人问这个问题,我就来问了
I am trying to use maple for connecting to a V2ray server. I really can't understand how to setup the config file from the documentations.
Can you tell me what should I use as a config file if my v2ray config looks like this?
Should I delete the default values for protocols I'm not using or not? When I open the app I encountered a huge config file and I had no Idea what to set It's really confusing.
{
"dns": {
"hosts": {
"domain:googleapis.cn": "googleapis.com"
},
"servers": [
"1.1.1.1"
]
},
"inbounds": [
{
"listen": "127.0.0.1",
"port": 10808,
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true,
"userLevel": 8
},
"sniffing": {
"destOverride": [
"http",
"tls"
],
"enabled": true
},
"tag": "socks"
},
{
"listen": "127.0.0.1",
"port": 10809,
"protocol": "http",
"settings": {
"userLevel": 8
},
"tag": "http"
}
],
"log": {
"loglevel": "warning"
},
"outbounds": [
{
"mux": {
"concurrency": 8,
"enabled": false
},
"protocol": "vmess",
"settings": {
"vnext": [
{
"address": "my_server_ip",
"port": my_server_port,
"users": [
{
"alterId": 0,
"encryption": "",
"flow": "",
"id": "my-uuid",
"level": 8,
"security": "auto"
}
]
}
]
},
"streamSettings": {
"network": "ws",
"security": "",
"wsSettings": {
"headers": {
"Host": ""
},
"path": "/websocket/"
}
},
"tag": "proxy"
},
{
"protocol": "freedom",
"settings": {
},
"tag": "direct"
},
{
"protocol": "blackhole",
"settings": {
"response": {
"type": "http"
}
},
"tag": "block"
}
],
"routing": {
"domainMatcher": "mph",
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"ip": [
"1.1.1.1"
],
"outboundTag": "proxy",
"port": "53",
"type": "field"
}
]
}
}
前面安装的过程正常,启动时闪退,没有警告或错误消息
When I use the top bar toggle switch to connect maple disappears instantly, is this normal?
I also can't connect to my V2ray server using Maple and was wondering this crash on connect could be a hint.
here is my v2ray json config:
{
"log": {
"level": "warning"
},
"dns": {
"servers": [
"1.1.1.1",
"8.8.8.8"
],
"hosts": {
"example.com": [
"192.168.0.1",
"192.168.0.2"
],
"server.com": [
"192.168.0.3"
]
}
},
"inbounds": [
{
"address": "127.0.0.1",
"port": 1087,
"protocol": "http"
},
{
"address": "127.0.0.1",
"port": 1086,
"protocol": "socks"
},
{
"protocol": "tun",
"settings": {
"name": "utun8",
"address": "10.10.0.2",
"netmask": "255.255.255.0",
"gateway": "10.10.0.1",
"mtu": 1500,
"fakeDnsInclude": [
"google"
]
},
"tag": "tun_in"
}
],
"outbounds": [
{
"protocol": "failover",
"settings": {
"actors": [
"vmess_out",
"trojan_out"
]
},
"tag": "failover_out"
},
{
"protocol": "chain",
"settings": {
"actors": [
"vmess_tls",
"vmess_ws",
"vmess"
]
},
"tag": "vmess_out"
},
{
"protocol": "tls",
"tag": "vmess_tls"
},
{
"protocol": "ws",
"settings": {
"path": "/websocket/"
},
"tag": "vmess_ws"
},
{
"protocol": "vmess",
"settings": {
"address": "myserver",
"port": 8080,
"uuid": "myuuid"
},
"tag": "vmess"
},
{
"protocol": "chain",
"settings": {
"actors": [
"trojan_tls",
"trojan"
]
},
"tag": "trojan_out"
},
{
"protocol": "tls",
"tag": "trojan_tls"
},
{
"protocol": "direct",
"tag": "direct_out"
},
{
"protocol": "drop",
"tag": "drop_out"
}
],
"rules": [
{
"ip": [
"8.8.8.8",
"8.8.4.4"
],
"target": "failover_out"
},
{
"domain": [
"www.google.com"
],
"target": "failover_out"
},
{
"domainSuffix": [
"google.com"
],
"target": "failover_out"
},
{
"domainKeyword": [
"google"
],
"target": "failover_out"
},
{
"external": [
"site:cn"
],
"target": "direct_out"
},
{
"external": [
"mmdb:cn"
],
"target": "direct_out"
}
]
}
我使用$$-windows作为本地socks服务器。【Windows的通用应用的loopback限制已使用Enable AppContainer Loopback解除】。
maple版本:0.5.0/0.4.0
在maple中,配置.conf文件,配置如下:
[General]
# Log are for debug only
loglevel = error
# Do not remove tun-fd option
tun-fd = 233
dns-server = 223.5.5.5, 114.114.114.114
[Proxy]
Direct = direct
Reject = reject
Sock_local_1080 = sock, 127.0.0.1, 1080
[Proxy Group]
# fallback 等效于 failover
Fallback = fallback, Sock_local_1080, interval=600, timeout=5
# url-test 等效于 failover=false 的 failover
UrlTest = url-test, Sock_local_1080, interval=600, timeout=5
Failover = failover, Sock_local_1080, health-check=true, check-interval=600, fail-timeout=5, failover=true
Tryall = tryall, Sock_local_1080, delay-base=0
Random = random, Sock_local_1080
[Rule]
# 代理服务器
DOMAIN-SUFFIX, my.proxy.server.domain, Direct
# 执行文件目录当中必需有 `site.dat` 文件
EXTERNAL, site:category-ads-all, Reject
# Arbitrary file access is forbidden within an app container.
# Make sure `geosite.dat` exists in the config folder.
# 也可以指定 `dat` 文件所在路径
EXTERNAL, site:geosite.dat:category-ads-all, Reject
IP-CIDR, 8.8.8.8/32, Fallback
DOMAIN, www.google.com, Fallback
DOMAIN-SUFFIX, google.com, Fallback
DOMAIN-KEYWORD, google, Fallback
# 等效于 EXTERNAL, mmdb:cn, Direct
GEOIP, cn, Direct
EXTERNAL, site:geolocation-cn, Direct
FINAL, Fallback
[Host]
# 对指定域名返回一个或多个静态 IP
example.com = 192.168.0.1, 192.168.0.2
也使用过json,但是似乎也无法使用。.json配置文件如下:
{
"log": {
"level": "error"
},
"dns": {
"servers": [
"223.5.5.5",
"8.8.8.8",
"8.8.4.4"
],
"hosts": {
"localhost": [
"127.0.0.1"
]
}
},
"inbounds": [
{
"protocol": "tun",
"settings": {
"name": "utun8",
"address": "10.10.0.2",
"netmask": "255.255.255.0",
"gateway": "10.10.0.1",
"mtu": 1500,
"fakeDnsInclude": [
"google"
]
},
"tag": "tun_in"
}
],
"outbounds": [
{
"protocol": "failover",
"settings": {
"actors": [
"my.proxy.server.domain:12345_out",
"localhost:1080_out"
],
"failTimeout": 4,
"healthCheck": true,
"checkInterval": 300,
"failover": true,
"fallbackCache": false,
"cacheSize": 256,
"cacheTimeout": 60
},
"tag": "failover_out"
},
{
"protocol": "chain",
"settings": {
"actors": [
"ss_tls",
"ss_ws",
"my.proxy.server.domain:12345"
]
},
"tag": "my.proxy.server.domain:123456_out"
},
{
"protocol": "tls",
"tag": "ss_tls"
},
{
"protocol": "ws",
"settings": {
"path": "/"
},
"tag": "ss_ws"
},
{
"protocol": "shadowsocks",
"settings": {
"address": "my.proxy.server.domain",
"method": "aes-128-gcm",
"password": "passwd",
"port": 12345
},
"tag": "my.proxy.server.domain:12345"
},
{
"protocol": "socks",
"settings": {
"address": "127.0.0.1",
"port": 1080
},
"tag": "localhost:1080_out"
},
{
"protocol": "direct",
"tag": "direct_out"
},
{
"protocol": "drop",
"tag": "drop_out"
}
],
"rules": [
{
"ip": [
"8.8.8.8",
"8.8.4.4"
],
"target": "failover_out"
},
{
"domain": [
"www.google.com"
],
"target": "failover_out"
},
{
"domainSuffix": [
"my.proxy.server.domain"
],
"target": "direct_out"
},
{
"domainSuffix": [
"google.com",
"goo.gl",
"goo.gle",
"cloudflare.com"
],
"target": "failover_out"
},
{
"domainKeyword": [
"metax"
],
"target": "direct_out"
},
{
"domainKeyword": [
"google",
"github"
],
"target": "failover_out"
},
{
"geoip": [
"cn"
],
"target": "direct_out"
},
{
"geoip": [
"us",
"jp"
],
"target": "failover_out"
},
{
"external": [
"site:cn"
],
"target": "direct_out"
},
{
"external": [
"site:us",
"site:jp"
],
"target": "failover_out"
},
{
"external": [
"mmdb:cn"
],
"target": "direct_out"
},
{
"external": [
"mmdb:us"
],
"target": "failover_out"
}
]
}
Is it possible to add Hysteria client support or rewrite a new gui client?
https://github.com/HyNetwork/hysteria
Thanks!
我的配置文件如下:
[General]
# Log are for debug only
loglevel = error
# Do not remove tun option
tun = auto
dns-server = 199.85.126.30, 199.85.127.30, 223.5.5.5, 8.8.8.8, 4.4.4.4
[Proxy]
Direct = direct
Reject = reject
Clash = socks, 127.0.0.1, 7890
# Shadowsocks
# SS = ss, 1.2.3.4, 8485, encrypt-method=chacha20-ietf-poly1305, password=123456
# VMess
# VMess = vmess, my.domain.com, 8001, username=0eb5486e-e1b5-49c5-aa75-d15e54dfac9d
# VMess over WebSocket over TLS (TLS + WebSocket + VMess)
# VMessWSS = vmess, my.domain.com, 443, username=0eb5486e-e1b5-49c5-aa75-d15e54dfac9d, ws=true, tls=true, ws-path=/v2
# Trojan (with TLS)
# Trojan = trojan, 4.3.2.1, 443, password=123456, sni=www.domain.com
# Trojan over WebSocket over TLS (TLS + WebSocket + Trojan)
# TrojanWS = trojan, 4.3.2.1, 443, password=123456, sni=www.domain.com, ws=true, ws-path=/abc
# Trojan over amux streams which use WebSocket over TLS as the underlying connection (TLS + WebSocket + amux + Trojan)
# tls-ws-amux-trojan = trojan, www.domain.com, 443, password=112358, tls=true, ws=true, ws-path=/amux, amux=true
# tls-ws-amux-trojan2 = trojan, 1.0.0.1, 443, password=123456, sni=www.domain.com, ws=true, ws-path=/amux, ws-host=www.domain.com, amux=true, amux-max=16, amux-con=1
[Proxy Group]
# fallback 等效于 failover
# Fallback = fallback, Trojan, VMessWSS, SS, check-interval=600, fail-timeout=5
# url-test 等效于 failover=false 的 failover
# UrlTest = url-test, Trojan, VMessWSS, SS, check-interval=600, fail-timeout=5
# Failover = failover, Trojan, VMessWSS, SS, health-check=true, check-interval=600, fail-timeout=5, failover=true
# Tryall = tryall, Trojan, VMessWSS, delay-base=0
# Random = static, Trojan, VMessWSS
[Rule]
IP-CIDR, 224.0.0.0/8, Direct
IP-CIDR, 239.0.0.0/8, Direct
GEOIP, cn, Direct
DOMAIN-SUFFIX, cm.chassvideo.xyz, Direct
DOMAIN-KEYWORD, chassvideo.xyz, Direct
IP-CIDR, 111.2.178.85/32, Direct
FINAL, Clash
# # 执行文件目录当中必需有 `site.dat` 文件
# EXTERNAL, site:category-ads-all, Reject
# # Arbitrary file access is forbidden within an app container.
# # Make sure `geosite.dat` exists in the config folder.
# # 也可以指定 `dat` 文件所在路径
# EXTERNAL, site:geosite.dat:category-ads-all, Reject
# IP-CIDR, 8.8.8.8/32, Fallback
# DOMAIN, www.google.com, Fallback
# DOMAIN-SUFFIX, google.com, Fallback
# DOMAIN-KEYWORD, google, Fallback
# # 等效于 EXTERNAL, mmdb:us, Fallback
# GEOIP, us, Fallback
# EXTERNAL, site:geolocation-!cn, Fallback
# # 执行文件目录当中必需有 `geo.mmdb` 文件
# EXTERNAL, mmdb:us, Fallback
# FINAL, Direct
[Host]
# 对指定域名返回一个或多个静态 IP
# example.com = 192.168.0.1, 192.168.0.2
其中cm.chassvideo.xyz是代理服务器的地址, 但一旦挂上maple就会直接断网(似乎还是会死循环)
Currently Maple does not support IPv6 address, please add IPv6 support, which is very useful in CERNET.
目前Maple不支持IPv6地址,请添加对IPv6的支持,这在教育网中很有用。
The way Leaf deals with DNS poisoning issues is the use of a combination of FakeDNS and DomainSniffing features.
For FakeDNS to function as expected, plain text UDP DNS traffic from the host must be routed through the TUN
interface, consequently handled by Leaf to make a fake DNS response. But on Windows, DNS queries could easily bypass the TUN
interface, thus disabling FakeDNS.
It's unclear to me what's the difference between UWP VPN plugin and a third-party TUN/TAP driver such as tap-windows6
, I don't observe a change in the routing table when starting Maple, but FakeDNS is not working when some of my network adapters have DNS servers pointed to the default gateway
, DNS queries are bypassing FakeDNS.
As a note, here's how Mellow deals with this kind of issues, and the code.
尝试用Maple的vmess协议连接节点出现问题,查看节点的log显示如下信息
2023/02/24 22:22:49 ****(ip)**** rejected common/drain: common/drain: drained connection > proxy/vmess/encoding: invalid user: VMessAEAD is enforced and a non VMessAEAD connection is received. You can still disable this security feature with environment variable v2ray.vmess.aead.forced = false . You will not be able to enable legacy header workaround in the future.
原因应该是较新的vmess由于“禁用对于 MD5 认证信息 的兼容”要将AlterId设为0,但是似乎没有办法在Maple中进行这样的设置,可以添加对新版本vmess协议的支持吗
Hi,
I am using Mellow previously and was used to use syntax PROCESS-NAME
like
PROCESS-NAME, trojan.exe, Direct
PROCESS-NAME, putty.exe, Direct
Just want to confirm whether it is supported in Maple as well.
Thanks
When Maple is enabled the Windows Store loses connection to internet. If I create the VPN connection profile manually (not using "Generate Profile" in the app) it works, and connection is working for UWP store.
What is the difference? Any workarounds to make Generate profile work within the app?
有效期只到2021.8.25
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.