Proxy protocols
Note: dae currently supports the following proxy protocols
| Protocol | Support details | URI format |
|---|---|---|
| HTTP(S), naiveproxy | — | HTTP(S) |
| Socks | Version: Socks4 / Socks4a / Socks5 | Socks |
| VMess / VLESS | VMess: AEAD, alterID=0 Transport: TCP / WS / gRPC / Meek / HTTPUpgrade TLS: Reality | v2rayN DuckSoft |
| Shadowsocks | Ciphers: AEAD / Stream Ciphers Plugins: simple-obfs / shadow-tls (SIP003) Plugin notes | SIP002 SIP008 |
| ShadowsocksR | — | — |
| Trojan | Trojan-gfw / Trojan-go | trojan/trojan-go |
| Tuic | Version: v5 | Tuic |
| Juicity | — | Juicity |
| Hysteria2 | — | Hysteria2 |
| AnyTLS | — | AnyTLS |
| Proxy chain (flexible protocol) | — | Proxy chain |
All protocols listed above are supported. “—” means the source lists no further details or URI reference.
URI examples
HTTP(S)
https://[[user:]pass@]hostname:port/Socks
socks4://[[user:]pass@]hostname:port/
socks5://[[user:]pass@]hostname:port/ShadowTLS and Shadowsocks plugins
The source leaves v2ray-plugin unchecked while checking its Websocket (+TLS) sub-item. These two statuses are preserved here.
ShadowTLS v3 links can also be used directly with shadowtls://. For nodes that require a browser-like TLS fingerprint, set global.tls_implementation: utls and keep global.utls_imitate at the default chrome_auto, or append tlsImplementation=utls&utlsImitate=chrome in the link query. If the provider expects no custom SNI, omit sni or keep it explicitly empty.
External proxy programs
For other requirements, one way to expand protocol support is by using external proxy programs. Below is an example of using the external naiveproxy.
Although dae and other proxy programs support the HTTPS protocol, using them does not utilize the chromium networking stack, which weakens the camouflage effect of naiveproxy. Therefore, using an external naiveproxy program is recommended.
Start naiveproxy:
The example uses naiveproxy to open an HTTP listening port. Note that HTTP proxy does not support proxying UDP traffic, so if you are using an external proxy program, it is advisable to prioritize using the socks5 port.
bashnaiveproxy --listen=http://127.0.0.1:1090 --proxy=https://yourlinkIn the section of dae's configuration related to nodes, add the following line:
http://127.0.0.1:1090, and remember to use this node in the group you are using.If you have bound the WAN interface, meaning you have filled in the
global.wan_interfacefield, make sure to add the following line near the top in the routing section to prevent traffic from flowing back to dae after passing through naiveproxy, causing a loop:shellpname(naiveproxy) -> must_directHere,
pnamerefers to the process name. You can determine the process name of naiveproxy by examining the command used to start it, running theps -efcommand at runtime, or observing the dae logs. The meaning ofmust_directis to allow all traffic, including DNS queries, to pass through directly without redirecting to dae.Users who only bind the LAN interface do not need to perform this step.
Source: dae upstream · AGPL-3.0 license.
