SIMORGH VPN is a multi-engine Android VPN client designed for normal connectivity, restricted networks, Iran national intranet conditions, international internet outages RKh-MSP Engine, XRAY configs, and NipoVPN profiles.
USDT BEP20:
0x304B5D9e118732C98FA60c473A763aD5076FFfb0
This README is based on the latest provided project version:
Version Name: 1.1.23.44
Version Code: 12344
Application ID: com.rkh.simorgh
Minimum SDK: 29
Target SDK: 35
โ ๏ธ Important: if there is no active network at all, no app can connect. However, when Iran's national intranet / local network / domestic routes are still available while international internet access is blocked or heavily restricted, the Advance page is designed to scan routes, find clean IPs, and provide a method for accessing websites.
SIMORGH has three main pages:
| Page | Main Purpose |
|---|---|
| ๐ Simple | Fast one-click XRAY config connection |
| ๐ง Advance | RKh-MSP Engine ,Iran national intranet, international outage conditions, IP scanning, Proxy/VPN, and CF Config |
| ๐งฉ NipoVPN | nipovpn:// profile support powered by the NipoVPN core |
- ๐ Fast connection through the Simple page
- ๐ง Advance mode for Iran national intranet and international internet outage conditions
- ๐งฉ Full NipoVPN support
- ๐ฅ
nipovpn://profile import - ๐งพ Save, select, edit, delete, and export NipoVPN profiles
- ๐ก Real Xray ping for Simple configs
- ๐งช Stable 3x Xray Ping validation
- ๐งฏ Crash Guard for Ping All, background ping scan, and Connect Scan
- ๐ Next Healthy button to switch to the next healthy config
- ๐งน Clear Cache without deleting configs
- ๐ Simple config list shown as
Config 1,Config 2, ... - ๐ถ Ping All for Simple configs
- ๐ฎ๐ท ServerLess (Patterniha)๐ฎ๐ท / IRAN IPS mode
- ๐ Google DNS for Simple Normal mode
- ๐ง Health and latency cache
- ๐ถ Background ping refresh after connection
- ๐ฐ๏ธ RKh-MSP engine in Advance
- ๐ ISP and SNI based IP scanning
- ๐งฑ Proxy Mode and VPN Mode
- ๐ Local SOCKS5 and HTTP proxy support
- โ๏ธ CF Config for VLESS WS TLS with IP Memory
- ๐พ IP Memory for saving clean IPs
- ๐งญ Routing Strategy selection
- ๐ Live download/upload speed
- ๐ก๏ธ SIMORGH app is excluded from its own VPN tunnel to prevent loops and improve scanning
The Simple page is designed for fast connection using XRAY configs.
The user does not need to manage complex settings. The app downloads configs from the internal subscription, tests them, and connects to a reachable healthy config.
- One-click connection
- Internal subscription source
- Update button
- Next Healthy button
- Clear Cache button
- Config count display
- Selected config display
- Ping display
- Connection timer
- Config list opens by tapping the Config area
- Original config names are hidden and shown as
Config 1,Config 2, ... - Ping All button
- Connect to a specific config from the list
- ServerLess support
- Stable real Xray Ping scan
In the Simple page, XRAY configs are received and managed through the app's internal system.
In Normal mode, Simple uses XRAY configs from the subscription.
Normal mode features:
- Downloads configs from the subscription
- Tests configs using Xray Ping
- Connects to the first reachable config
- Continues scanning after connecting
- Prepares cache for Next Healthy
- Uses Google DNS:
8.8.8.8
8.8.4.4
Simple includes a dropdown for ServerLess.
Display name:
ServerLess(Patterniha) ๐ฎ๐ท
IRAN IPS
ServerLess usage:
- Designed for special Iran-related routes
- Uses the bundled internal ServerLess config
- Runs Xray with a TUN/tun2socks compatible structure
- Useful when the ServerLess config works better than normal subscription configs
ServerLess usually has only one config, so Next Healthy is disabled for ServerLess and is intended for Simple Normal mode.
The Advance page is the key section for special Iran network conditions.
It is designed for cases where international internet access is blocked, heavily restricted, or unstable, while Iran's national intranet / domestic network / local routes are still available. In such cases, Advance uses the RKh-MSP engine, IP scanning, SNI selection, and route building to provide a method for accessing websites.
โ Advance is suitable for Iran national intranet conditions, full international internet outages, and severe internet restrictions, as long as the local network or required route is still available.
- RKh-MSP engine
- ISP selection
- SNI selection
- IP scan on port 443
- Manual IP support
- Scan speed selection
- Max IP count selection
- Proxy Mode
- VPN Mode
- Internal SOCKS5 proxy
- Internal HTTP proxy
- IP Memory
- Next IP
- Ping All for clean IPs
- Copy and Clear for IP Memory
- Routing Strategy
- CF Config for VLESS
- Active route display
- Scanned / Clean / Saved counters
- Live speed display
- Background scanning
- SIMORGH is excluded from its own VPN tunnel for more accurate scanning
In Proxy Mode, the app only starts the local proxy.
Ports:
SOCKS5: 127.0.0.1:9990
HTTP: 127.0.0.1:9991
Proxy Mode is useful for:
- Using SIMORGH with apps like v2rayNG
- Testing the RKh-MSP route without starting a full Android VPN
- Debugging
- Cases where only a local proxy is needed
In VPN Mode, all Android traffic is routed through SIMORGH.
General flow:
Android TUN
โ
tun2socks
โ
Xray
โ
Local RKh-MSP Proxy
โ
Clean IP Pool
VPN Mode is useful for:
- Full-device tunneling
- Connecting directly from SIMORGH
- Using discovered clean IPs
- Easier usage compared to Proxy Mode
Settings are available from the Settings icon.
Select the ISP used for IP scanning.
Default:
AbrArvan CDN and IaaS
Select SNI values for TLS testing.
Default:
chatgpt.com
You can manually paste IPs, CIDR ranges, or IP ranges.
When Manual IP mode is enabled:
- ISP range scanning is skipped
- Manual IPs are merged into IP Memory
- The app tests only the provided manual IPs
Scan options:
- Slow
- Normal
- Fast
- Max IPs
Default maximum:
33000
Choose the local proxy protocol:
- SOCKS5
- HTTP
Available routing strategies:
| Option | Description |
|---|---|
| Default | Tries clean/saved IPs for the requested host and keeps the working route |
| Random | Random selection from healthy IPs |
| Round Robin | Rotates through healthy IPs |
| Least Loss | Chooses the route with lower failure rate |
| Lowest Latency | Chooses the route with the lowest latency |
| Hybrid Score | Combines quality, latency, and failures for better route selection |
The NipoVPN page is one of the most important additions in the latest SIMORGH version.
It supports nipovpn:// profiles and uses the native NipoVPN core.
The NipoVPN core is bundled internally with the app, and its default config is managed inside SIMORGH.
Android VPN TUN
โ
tun2socks
โ
Xray local SOCKS inbound
โ
Xray SOCKS outbound
โ
NipoVPN SOCKS5 Agent
Internal NipoVPN port:
127.0.0.1:9992
Displayed in the UI as:
SOCKS5 9992 โ XRAY
- Dedicated NipoVPN tab
- NipoVPN Agent connection
nipovpn://link import- Add Profile button
- Profile list
- Profile selection
- Profile editing with the pencil icon
- Profile export/copy with the copy icon
- Profile delete
- Profile save
- NipoVPN server test
- Config reset
- Ping display
- Nipo Server display
- Local SOCKS5 display
NipoVPN connectedstatus- Google DNS
- App excluded from VPN loop
After importing a profile, these fields can be edited:
- Name
- Token
- Protocol
- Fake URLs
- Methods
- Endpoints
- Timeout
- Pull Timeout
- Tunnel Enable
- Connection Reuse
- TLS Enable
- TLS Verify Peer
- TLS Cert File
- TLS Key File
- TLS CA File
- Log Level
- Server IP
- Server Port
- HTTP Version
- User Agent
CF Config is available inside the Advance page.
It is designed for Cloudflare VLESS WS TLS configs.
Displayed title:
CF Config
Clouflare Vless Ws TLS Config
- Enable/disable CF Config
- Paste VLESS config
- Use clean IPs from IP Memory
- Test latency for IPs
- Latency All button
- Connect button
- Sort by Latency
- Replace only the VLESS address with the selected clean IP
In CF Config, only the VLESS address is replaced by the clean IP. SNI, Host, and Path remain from the original config.
IP Memory stores and manages clean IPs.
- Displays number of clean IPs
- Shows latency when available
- Show / Hide button
- Ping All button
- Copy button
- Clear button
- Used by Advance
- Used by CF Config
- Keeps clean IPs for later connections
SIMORGH displays live traffic speed:
โ Download
โ Upload
This is used in:
- Simple XRAY
- Advance VPN / Proxy
- NipoVPN
For better Simple stability, this README includes the following improvements:
- Crash guards around Ping All
- Crash guards around background ping scan
- Crash guards around shuffled Connect Scan
- Reduced strict 3x Xray ping concurrency to avoid native process/OOM restarts
- Timeout around each 3x Xray ping validation
- Cancels the previous Simple background ping scan before starting a new Connect scan
- Guards latency-cache writes
- Guards worker channel sends
- Open the app.
- Go to the Simple tab.
- If this is your first run, tap Update.
- Tap the Config area to open the config list.
- Tap Ping All to test all configs.
- Tap the big Connect button.
- The app tests configs using real Xray Ping.
- The first reachable config is selected.
- After connection, background scanning continues.
- If the connection becomes weak, tap Next Healthy.
When ping results look wrong or a config has ping but does not connect:
- Tap Clear Cache.
- Only health and ping memory are cleared.
- Configs are not deleted.
- Run Ping All or Connect again.
- Open the Simple tab.
- Turn ServerLess ON.
IRAN IPSis displayed.- Tap Connect.
- The app runs the bundled internal ServerLess config.
ServerLess usually has one config, so Next Healthy is not useful for this mode.
Use this method when international internet access is blocked or heavily restricted, but Iran national intranet / local network is still available.
- Open the Advance tab.
- Open Settings.
- Choose an ISP from the ISP section.
- Choose one or more SNI values from the SNI section.
- If needed, add manual IPs in the Manual section.
- Choose scan speed from the Scan section.
- Choose the proxy protocol from the Proxy section:
- SOCKS5 for
127.0.0.1:9990 - HTTP for
127.0.0.1:9991
- SOCKS5 for
- Select Proxy Mode if you only need a local proxy.
- Select VPN Mode if you want the whole phone to be tunneled.
- Tap the big Connect button.
- The app starts scanning.
- The first clean IP is added to the route.
- Scanning continues in the background.
- Use Next IP to switch routes.
- Open Advance in SIMORGH.
- Select Proxy mode.
- Go to Settings > Proxy and choose:
- SOCKS5
- HTTP
- Tap Connect.
- In v2rayNG, create a local proxy:
SOCKS5: 127.0.0.1:9990
HTTP: 127.0.0.1:9991
- If v2rayNG works with this proxy, the RKh-MSP route and IP pool are working.
- Open the NipoVPN tab.
- Paste your profile link into the field:
nipovpn://
- Tap Add Profile.
- Tap Show Profiles.
- Select the profile you want.
- Tap the pencil icon
โto edit. - Tap the copy icon
โงto export/copy the profile. - Tap Test if you want to test the server.
- If you changed fields, tap Save Profile.
- Tap Connect.
- The status should become:
NipoVPN connected
- First run Advance scanning so IP Memory is filled.
- Open CF Config.
- Enable CF Config.
- Paste your VLESS WS TLS config.
- Tap Latency All.
- Choose the IP with better latency.
- Tap Connect.
Only the VLESS address is replaced with the clean IP. SNI, Host, and Path remain unchanged.
- Tap Update
- Tap Ping All
- Tap Clear Cache
- Try Connect again
- Use Next Healthy if you have cached healthy configs
- Test ServerLess ON/OFF
- Next Healthy is only for Simple Normal
- Run Ping All first
- If healthy cache is empty, the app will ask you to run Ping All
- Toggle ServerLess OFF and ON
- Clear Cache
- Run Connect again
- Remember that ServerLess usually has only one config
- Change ISP
- Change SNI
- Try Manual IPs
- Change Scan Speed
- Test Proxy Mode separately with v2rayNG
- Change Route Strategy
- Clear IP Memory and scan again
- Make sure the link starts with
nipovpn:// - Tap Add Profile
- Select the profile
- Check Server IP and Server Port
- Run Test
- Tap Save Profile
- Connect again
- Fill IP Memory through Advance first
- Make sure the config starts with
vless:// - Tap Latency All
- Choose a healthier IP
- Check SNI / Host / Path in the original config
SIMORGH manages the required IP scan, SNI, ServerLess, and NipoVPN data internally, so source file paths are not exposed in this README.
Android TUN
โ
tun2socks
โ
Xray SOCKS
โ
Selected XRAY Config
Android TUN
โ
tun2socks
โ
Xray mixed inbound
โ
ServerLess routing
Android TUN
โ
tun2socks
โ
Xray
โ
RKh-MSP Local Proxy
โ
Clean IP Pool
Local App / v2rayNG
โ
127.0.0.1:9990 SOCKS5
or
127.0.0.1:9991 HTTP
โ
RKh-MSP Clean IP Pool
Android TUN
โ
tun2socks
โ
Xray 127.0.0.1:10808
โ
NipoVPN SOCKS5 127.0.0.1:9992
โ
NipoVPN Agent
- Install the APK.
- Grant VPN permission.
- Use Simple for fast XRAY connection.
- Use Advance for Iran national intranet and international internet outage conditions.
- Use NipoVPN for
nipovpn://profiles.
- Internet access
- VPN permission
- Network state access
- Foreground Service for stable connection
Made By RKh!
Telegram: @pingplas_channel
This project is provided for educational, research, and legal use only. Users are responsible for how they use the app. Please use this tool according to the laws of your region.
If SIMORGH is useful to you, please give the project a โญ on GitHub.
SIMORGH VPN
Fast. Smart. Advanced. NipoVPN Ready.