Hermes-1
e20f15d70b
revert: DNS_SERVER default back to udp://1.1.1.1
...
10.35.99.172 is a local-environment resolver, not suitable as a
public default. On networks where public UDP DNS is unreachable,
pass DNS_SERVER explicitly at runtime.
2026-09-09 11:01:00 +03:00
Hermes-1
56f28099c8
feat: mihomo YAML subscription support + flow/fingerprint passthrough
...
- fetcher: parse mihomo/clash.meta YAML subscriptions (proxies: list),
auto-detect format (mihomo YAML vs plain vless:// lines)
- config_builder: forward VLESS flow (xtls-rprx-vision) and per-node
uTLS fingerprint to sing-box (required for Reality+Vision nodes)
- default DNS upstream: udp://10.35.99.172 (public UDP resolvers
unreachable on this network; old-sub nodes are hostnames)
- Dockerfile: install PyYAML
Verified: 50-node reality+vision subscription works end-to-end
(sing-box check + live SOCKS tunnel); legacy vless:// subs unaffected.
2026-09-09 10:56:11 +03:00
Hermes-1
1beb97e367
[test] remove probe files
2026-09-07 13:40:34 +03:00
Hermes-1
b8590c3aef
[test] remove probe files
2026-09-07 13:40:34 +03:00
Hermes-1
bae4044253
[test] probe ctype
2026-09-07 13:32:51 +03:00
Hermes-1
e5bdf33c43
[test] probe ctype
2026-09-07 13:32:49 +03:00
Hermes-1
467ab7edf1
fix: default to udp://1.1.1.1 DNS (DoT fails silently, breaks all proxy connections)
2026-07-19 01:22:08 +03:00
Hermes-1
5addc6471e
refactor: update entrypoint.py to thin shim re-exporting from main module
2026-07-09 08:14:30 +00:00
Hermes-1
ed52257dbe
refactor: split monolith into typed modules with retry logic
...
- models.py: ProxyInfo and DNSServerConfig dataclasses with type hints
- fetcher.py: subscription fetcher with exponential backoff retries (3 attempts) plus VLESS URL parser
- config_builder.py: sing-box config builder decomposed into focused helpers
- main.py: orchestrator with setup_logging(), print_banner(), pick_node()
2026-07-09 08:14:23 +00:00
Hermes-1
d74ea6cc69
feat: migrate to sing-box v1.13+ native DNS config
...
- Replace deprecated dns.servers[] with new format (type + server + server_port)
- Add _make_dns_server() to parse udp://, tls://, https:// and bare IP addresses
- Drop ENABLE_DEPRECATED_* environment variable shims — fully v1.14-ready
- Fix transport block: omit for plain TCP (sing-box default), add httpupgrade support
- Add dns.final fallback and route.default_domain_resolver
- Config file renamed to hidden /tmp/.sub2socks.json (matches README)
- Include test_proxy.py live proxy CONNECT test suite
2026-07-03 19:52:43 +00:00
Hermes-1
5cbb3b15ae
fix(README): typo selction -> selection
2026-06-19 09:42:29 +00:00
Hermes-1
77d8066f85
Initial: minimal sub-to-SOCKS container
...
- Python entrypoint fetches subscription URL, picks VLESS node,
generates sing-box JSON config on the fly, then execs sing-box.
Required env var: SUB_URL
Optional: SOCKS_PORT, SOCKS_USER/PASS, DNS_SERVER, PICK_STRATEGY, LOG_LEVEL
2026-06-19 07:41:51 +00:00