- JavaScript 76.6%
- CSS 14%
- HTML 9.4%
| css | ||
| img | ||
| js | ||
| tests | ||
| .codex | ||
| index.html | ||
| LICENSE | ||
| README.md | ||
| site.webmanifest | ||
Proxy to Sing-box Converter
🚀 Project Overview
Proxy to Sing-box Converter is a web-based tool designed to simplify the process of converting various proxy configurations to the Sing-box format and vice versa. This intuitive web application supports multiple proxy protocols and can handle plain configurations, Sing-box JSON configurations, links (including ssconf://), and Base64-encoded data, making it easy for users to generate and manage configurations.
https://4n0nymou3.github.io/proxy-to-singbox-converter/
✨ Features
-
Supports multiple proxy protocols:
- VMess
- VLESS
- Trojan
- Hysteria2
- Shadowsocks (ss)
-
Accepts various input types:
- Plain proxy configurations
- Sing-box JSON configurations
- Links (http, https, ssconf)
- Base64-encoded configurations
-
User-friendly web interface
-
Real-time configuration conversion (both to Sing-box and from Sing-box to proxy configs)
-
Terminal-like aesthetic design
-
Clipboard copy functionality
-
Animated JSON configuration display
🛠️ Supported Protocols
The converter currently supports the following proxy protocols:
- VMess
- VLESS
- Trojan
- Hysteria2
- Shadowsocks (ss)
🖥️ Technologies Used
- HTML5
- CSS3
- JavaScript
- Ace Editor
- Modern web technologies
📦 Installation
Cloning and Running Locally
If you want to run this project locally on your device (e.g., Linux, macOS, Windows, Termux, or iSH), follow these steps:
-
Clone the repository:
git clone https://github.com/4n0nymou3/proxy-to-singbox-converter.git -
Navigate to the project directory:
cd proxy-to-singbox-converter -
Start a local HTTP server:
-
For Python 3.x Users:
python -m http.server 8080 -
For Python 2.x Users:
python -m SimpleHTTPServer 8080 -
For Termux (Android) Users: (Ensure Python is installed using
pkg install python)python -m http.server 8080 -
For iSH (iOS) Users: (Ensure Python is installed in Alpine Linux via
apk add python3)python3 -m http.server 8080
-
-
Open your web browser and go to:
http://localhost:8080This will load the web application in your default browser, where you can use it normally.
Stopping the Local Server
If you need to stop the local server without closing the terminal, use one of the following methods:
- Press
Ctrl + Cin the terminal where the server is running. - If the terminal session is lost, find the server process with:
Then stop it using:lsof -i :8080
(Replacekill -9 PIDPIDwith the actual process ID from the previous command.)
🚀 How to Use
- Navigate to the web application
- Paste your proxy configs, Sing-box JSON, links, or Base64-encoded data
- Optionally enter domains in
Domains Via VLESSif those domains should use VLESS while all other traffic goes direct - Click "Convert to Sing-box" or "Convert to Proxy Configs" based on the input type
- Copy or download the generated configuration
Domain Routing
You can enter a list of domains separated by commas, spaces, or new lines in Domains Via VLESS.
- Those domains will be routed through a generated VLESS outbound.
- All other traffic will use
direct. - If multiple VLESS outbounds are present, the converter creates a dedicated selector for those domain routes.
- If no VLESS outbound exists, domain routing is rejected with an explicit error.
Example:
openai.com
chatgpt.com
api.example.org
Generated route shape:
{
"route": {
"rules": [
{
"domain_suffix": ["openai.com", "chatgpt.com", "api.example.org"],
"outbound": "vless-a"
}
],
"final": "direct"
}
}
DNS Compatibility
For sing-box 1.11.x, the converter can generate the legacy DNS server format that uses address inside dns.servers[] instead of the newer type/server/path structure introduced in 1.12+.
- In the UI, choose
Sing-box Target Version->1.11.x (legacy DNS format). - You can also preselect it with the query parameter
?target_version=1.11. - In this mode, FakeIP is also converted to the old shape:
dns.servers[].address = "fakeip"plus top-leveldns.fakeip. - In this mode, remote
route.rule_setdownloads are disabled too, so the profile can start without fetching.srsfiles from GitHub.
Example for 1.11.x:
{
"dns": {
"servers": [
{
"address": "local",
"tag": "dns-local"
},
{
"address": "https://8.8.8.8/dns-query",
"detour": "🌐 Anonymous Multi",
"tag": "dns-remote"
},
{
"address": "8.8.8.8",
"tag": "dns-direct"
},
{
"address": "fakeip",
"tag": "dns-fake"
}
],
"fakeip": {
"enabled": true,
"inet4_range": "198.18.0.0/15",
"inet6_range": "fc00::/18"
}
}
}
👨💻 Author
Developed by Anonymous
- Twitter: @4n0nymou3
🛡️ Disclaimer
This tool is for educational and testing purposes. Always ensure you're complying with local laws and regulations.