What is SG?
- A cross-network-segment remote port mapping tool
- Supports intranet-to-intranet and intranet-to-extranet mapping
- A portable, flexibly-controlled access gateway
- All configuration is done on the app client — full visibility, highly secure and controllable
- Access entries can be configured on the mobile phone running the app, or on any SG server computer
- A simple remote file management tool
- Perform file management operations on both the mobile device and server endpoints
- A simple SOCKS proxy tool
- A simple HTTP(S) proxy tool
- ......
Key Features
- All mappings are configured through the app client; the server requires zero configuration at runtime
- Supports server-to-app and server-to-server port mapping
- Map any port of any machine on the server's LAN to the app's mobile phone, enabling penetration access via the phone's local port
- Through app client configuration, map any host/port on Server A's LAN to Server B's host
- Supports chained proxy
- Supports multi-user isolation
- Supports IPv4/IPv6 with TCP-based P2P tunneling
- Supports self-hosted proxy for data forwarding
- Supports encrypted data tunnels (TLS)
- Supports automatic tunnel selection
- Priority: P2P → custom proxy → official proxy (fallback)
- Supports automatic version upgrades and one-click upgrade from the app client
- SOCKS and HTTP(S) proxy support custom IP whitelists and domain whitelists, including CIDR IP ranges and domain wildcards
- Supports both TCP and UDP protocols
- UDP uses UDP-over-TCP mode
- ......
What Problems Does SG Solve?
- Secure access to intranet resources regardless of network boundaries
- High-bandwidth secure data transfer via P2P
- Exposing intranet services when you have a public IP
- ......
SG Version Guide
Android provides two build variants (Product Flavors), Base and Advance, sharing the same codebase and
differentiated through compile-time feature toggles + R8 dead code elimination:
| Feature | Base | Advance |
|---|---|---|
| Proxy Tunnel | ✓ | ✓ |
| File Management | ✓ | ✓ |
| Audio Capture/Transmission | ✗ | ✓ |
| GPS Location Tracking | ✗ | ✓ |
| App Upgrade | ✗ | ✓ |
| Screen/Camera Monitoring | ✗ | ✗ |
- Base — Lightweight edition. Retains only core proxy tunneling and file management, stripping out
high-permission/high-risk modules such as audio, location, upgrade, and monitoring. Smaller APK size with fewer
permissions, ideal for users who only need basic proxy and file access. - Advance — Full-featured edition. Includes all feature modules except monitoring, supporting remote audio,
location tracking, app upgrade, and other advanced capabilities. Suitable for users who require complete remote
management functionality.- Huawei phones may flag the Advance version as a "fraud app" by default. To install, first disable Pure Mode,
then enable Airplane Mode on the phone before installing. For similar issues on other phone brands, search for
solutions online.
- Huawei phones may flag the Advance version as a "fraud app" by default. To install, first disable Pure Mode,
How to Use SG?
- Download the app and register
- Download the appropriate server version, configure it with your User ID, and run it
- Log into the app and configure port mapping rules
- Use the configured mappings to access your services
Want to Dive Deeper?
View Details
Quick Overview [Quick Start Guide] [Video Tutorial - Bilibili]
- Platform support: Linux, Windows, macOS, Android (enterprise: HP-UX, Solaris, AIX)
- CPU architectures: x86, ARM, MIPS, RISC-V, LoongArch64 (enterprise: Alpha, PowerPC, SPARC)
- Security-first: "Intranet-to-intranet" tunneling — no ports exposed to the public internet, no firewall configuration changes
- Bandwidth-focused: P2P access to intranet services with "4G phone + IPv6 broadband" (TCP-based, NAT1-3 traversal for IPv4)
- Cost-effective: No VPS required, no public IP needed; repurpose old Android phones as servers
- Reliable: Available on demand, supports 24/7 uninterrupted service, free from UDP QoS throttling
- Controllable: Single-point configuration on the client, with the ability to start/stop services anytime, anywhere
- Lightweight: No installation required, compact footprint (mini version ~1MB), all-in-one, high performance with minimal resource usage
- Portable: Whether working or on vacation, as long as your phone has a network connection, everything is under control
- ......If all this sounds like what you need, keep reading; if you want more, please submit an issue — the [Changelog] is worth checking out too
- Free. Considering open-sourcing after stability testing.
- Includes an Android client and a server component to be installed within the intranet.
App Configuration (Required) — Common Misconfiguration Issues
- Must grant "Allow background execution" permission, otherwise the system will disconnect when switching to background
- Must enable "Keep network connection during sleep", otherwise the system will disconnect when entering sleep mode
- Recommended to grant "Allow auto-start" permission, otherwise the Android server mode cannot auto-start on boot (v0.30+)
- Recommended to grant "Microphone" permission, otherwise the Android server cannot provide audio monitoring (v0.30+)
- Note: SG's official proxy does not forward data to IPs in Hong Kong, Macau, Taiwan, or overseas
What is smarGate?
Officially named "Mobile Gateway" — exposes intranet server networks on demand through a mobile client, with the core engine implemented in C++.
The "Mobile Gateway" is a user-private gateway. All shared access entries reside on the client, unlike other tunneling tools that primarily promote domain-oriented public access entries. Analogy: smarGate is like carrying your security door with you; other tunneling products are like placing your security door in a public space — sure, it needs a key, but there's a profession called locksmithing...
Technical Highlights:
- Security
- The mobile client serves as the primary access gateway — open on demand, close promptly.
- Supports server-to-server port mapping networking (v0.31+).
- Computers can connect to the phone's hotspot or WiFi to access intranet services through ports exposed by the phone (the client displays the phone's IP).
- Mobile networks are generally private network segments inaccessible to others.
- User isolation.
- The mobile client serves as the primary access gateway — open on demand, close promptly.
- Extensibility
- Based on intranet segment proxying, can work with numerous tools to enable various network services (Telnet, SSH, HTTP services, intranet cameras, remote desktop, etc.)
- Geek-oriented: can access custom intranet services (RPC)
- Based on intranet segment proxying, can work with numerous tools to enable various network services (Telnet, SSH, HTTP services, intranet cameras, remote desktop, etc.)
- Convenience
- Single-point configuration on the mobile client
- Dynamic addition/removal of service capabilities
- Single-point configuration on the mobile client
- High Performance
- Since v0.1.1, uses a self-developed network engine with high performance — a budget phone client can support 1,000+ concurrent shared accesses
- High-performance design:
- Cross-platform socket multiplexing supporting poll, epoll, kqueue, port, select, IOCP models
- Lock-free algorithms
- Thread pool design
- Socket connection pool
- Multi-level task queues
- ...
- Cross-platform socket multiplexing supporting poll, epoll, kqueue, port, select, IOCP models
- Since v0.1.1, uses a self-developed network engine with high performance — a budget phone client can support 1,000+ concurrent shared accesses
What Are the Main Features of smarGate?
- Proxy tunneling support
- Official free proxy servers are provided (shared bandwidth, slower with multiple users — best practice is to set up your own proxy server)
- If you have your own cloud server (with a public IP), you can configure a custom proxy server by installing proxy_server on it. All data will be forwarded through your configured proxy server (the proxy server requires certificates, which can be auto-generated or you can use existing ones).
- Official free proxy servers are provided (shared bandwidth, slower with multiple users — best practice is to set up your own proxy server)
1. Proxy server configuration (the proxy server must allow inbound connections on any port):
<?xml version="1.0" encoding="GBK"?>
<app-config code="PROXY" name="proxy-server">
<app-parameter>
<proxy-service-port value="9001"/><!-- Custom proxy port -->
<owner-id value="xxxx" /><!-- xxxx is the User ID returned after successful registration -->
<access-token value="nnnnn"/><!-- Access token, must be numeric [Optional] -->
<ssl-create-certfile value="true" /><!-- If no certificate is specified below, auto-generate one [requires openssl installed]. Default is false (no auto-generation) -->
<!-- If you have your own certificate and private key, configure them below to enable secure SSL channels. Filenames must be correct. If you don't have certificates, you can use the auto-generation option above.
<ssl-cacert-file value="xxx.crt"/>
<ssl-privatekey-file value="xxx.key"/>
-->
</app-parameter>
<moudle-parameter>
<log-level value="LOG_ERROR"/>
<log-write-mode value="CONSOLE_ONLY"/>
</moudle-parameter>
</app-config>
2. Add the following configuration on the server side:
......
<app-parameter>
<ssl-create-certfile value="true" />
<!-- If the proxy server has SSL enabled, certificates and private key must be configured here
<ssl-cacert-file value="xxx.crt"/>
<ssl-privatekey-file value="xxx.key"/>
-->
</app-parameter>
<moudle-parameter>
......
</moudle-parameter>
<!-- Configure the proxy server IP or domain + port above. Note: the IP must be a public IP. The ssl option must be correctly configured — set to true if the proxy server has certificates (including auto-generated ones) and they are active, otherwise false -->
<channel address="xxx.xxx.xxx.xxx:9001" ssl="true" token="nnnnn" /><!-- Access token, must match the proxy server; omit if not configured -->
-
P2P channel support
- Uses TCP protocol for P2P tunneling, enhancing security
- Not all networks support P2P — depends on the NAT types at both ends
- v0.14+ directly supports IPv6 with firewall traversal capability
- P2P test conclusion: P2P fails when one end is NAT4 and the other is NAT3 or NAT4
Note: NAT1 → Full Cone, NAT2 → Restricted Cone, NAT3 → Port Restricted Cone, NAT4 → Symmetric
Server NAT Client NAT P2P Success NAT1-3 NAT1-3 YES NAT1-2 NAT4 YES NAT4 NAT1-2 YES NAT4 NAT3-4 NO NAT3-4 NAT4 NO - Uses TCP protocol for P2P tunneling, enhancing security
-
Public exposure support (contrary to the security-first design philosophy, opened in v0.31)
- The primary mode promoted by other intranet tunneling tools — directly mapping intranet services to public-facing ports
- The primary mode promoted by other intranet tunneling tools — directly mapping intranet services to public-facing ports
-
Server-to-server P2P port mapping (v0.31+)
- Configuration primarily via the ip@index format
- Configuration primarily via the ip@index format
Attachment: Key Feature Summary
1. TCP-based P2P connection tunnels
— Secure and reliable, avoids QoS throttling
2. Transparent proxying for all TCP-based protocols
— Can proxy all intranet TCP services (SSH, RDP, SMB, VNC, cameras, databases, etc.)
3. HTTP and HTTPS-to-HTTP support
— HTTP header rewriting, proxying HTTPS services as HTTP
4. UDP-over-TCP
— Proxy support for UDP-based services
5. Transparent IPv6 tunneling (no need to manage IPv6 addresses)
— Automatic IPv6 tunnel establishment, always use IPv4 addresses for access
6. Custom proxy support (requires a public IP) — handles all data forwarding
— Automatically connects to the custom proxy when P2P is unavailable
7. Custom proxy supports token and whitelist configuration
— Security mechanisms included
8. Multi-level cascading proxy
— Chained proxy support, multi-level loop-free proxy
9. Mobile phone as the sole access gateway — security + mobile convenience
— Phone in hand, access on demand
10. Fully dynamic port mapping configuration with hot-plug support
— Proxy additions and deletions take effect immediately, no restart required
11. All features configurable from the app — single-point configuration
— Client-side one-click configuration, server requires zero config at runtime
12. Automatic P2P tunnel and custom proxy tunnel detection and connection
— No manual intervention; the app auto-connects and auto-retries
13. Dynamic and designated negotiation port support
— Default dynamic port negotiation; supports designated negotiation ports for firewall configuration
14. Tunnel connection priority (P2P → Custom Proxy → Official Proxy)
— Priority-based tunnel selection during data transfer
15. SSL-encrypted tunnels
— SSL encryption for both P2P and proxy tunnels, ensuring data confidentiality
16. Traffic throttling support
— Network bandwidth limiting, unlimited by default
17. Automatic network switch detection (e.g., Mobile ↔ WiFi) with auto-reconnection
— Intelligent app-side reconnection, always ensuring service availability
18. Cross-LAN host port mapping — direct public access if one host has a public IP (v0.31+)
— Server-to-server mesh mapping, traffic does not pass through the mobile app (traditional tunneling mode)
19. App supports server mode — can configure the phone as a server
— Android phones can act as servers
20. Remote file management: browse, upload, download, delete, with resume support (v0.31.6+)
— File management features activate when P2P or custom proxy connections are available; basic file operations on both phone and server
21. Built-in SOCKS5 and HTTP proxy (v0.32.1+)
— Since professional third-party tools like SS5 and Squid exist, SOCKS5 and HTTP proxy are optional features
22. SOCKS5 and HTTP proxy support domain and IP whitelists (v0.32.1+)
— Domain whitelist supports four match modes (exact, prefix, suffix, substring), default config file: .white_list
— IP whitelist supports CIDR-format IP range configuration, default config file: .ipchecks
...to be continued
Usage Guide:
Video Tutorial - Bilibili
Usage Examples - Baidu
Usage Examples - Google
1. Download the App & Register a New User
- Download the Android app (app-release.apk includes both client and server) — supports armv7 and arm64 CPU architectures
- Register a new user (invitation code is required, must be numeric, can be anything. Note: if required fields are incomplete or contain Chinese characters, registration will fail)
- After successful registration, be sure to remember the returned Service ID (N). [Important]: You must complete your first login within 1 hour of registration
2. Download the Server & Configure
- Download the appropriate server version for your intranet environment (currently supporting Linux x86-32/64, Windows, and Linux-ARM [Raspberry Pi, Synology]; also: Android app has built-in server mode)
- Extract the server archive and modify the configuration file (conf-proxy.xml):
Configuration Example
<?xml version="1.0" encoding="GBK"?>
<app-config code="PROXY" name="proxy-server">
<app-parameter>
<!-- [ none | first | only ], none is default. Enable SSL encryption for P2P connections; "only" means only encrypted connections are accepted -->
<ssl-tunnel-required value="first" />
<!-- If no certificate is specified below, auto-generate one [requires openssl installed]. Default is false (no auto-generation) -->
<ssl-create-certfile value="true" />
<!-- The following options apply only to the mini version under dynamic. Specify the actual paths of the SSL and crypto libraries. On Linux, obtain via: ldd $(which openssl)|grep -E "libssl|libcrypto"|awk '{print $1}'
<libssl value="libssl.so" />
<libcrypto value="libcrypto.so" />
-->
</app-parameter>
<moudle-parameter>
<log-level value="LOG_ERROR"/>
<log-write-mode value="CONSOLE_ONLY"/>
<app-name value="xxxxx [name of service points]." /><!-- need modify -->
<app-description value="yyyyy [description of service points]" /><!-- need modify -->
<!-- user-audit need modify (N is the Service ID returned after successful registration; index is a custom server instance number, recommended starting from 1, must not duplicate. e.g., [12345:1])-->
<user-audit value="N:index"/>
</moudle-parameter>
</app-config>
3. Run the Intranet Server (command parameters: i = max inbound connections, o = max outbound connections, w = max threads)
- Linux:
chmod +x proxy_server && nohup ./proxy_server -i1000 -o1000 -w8 >/dev/null & - Windows:
proxy_server.exe -i1000 -o1000 -w8 - Android phone/device: Run the app → in edit mode, configure server info → toggle "Server" switch on → restart the app
- OpenWrt MIPS devices: see [Correct usage on MIPS Linux]
4. Log into the Mobile App & Configure Port Mappings [Common Service Configurations]
- In the client, you can see the online servers ("Access Points") and define port mapping rules on the client
Expand Screenshots

For server-to-server port mapping, append the server index number to the IP in the format: ip@idx

5. Computers or Phones Can Access Services Configured on the Mobile Client (e.g., SSH, HTTP, etc.)
Additional Notes:
- All versions are self-contained with bundled dependencies — ready to use out of the box.
- The system will automatically purge "zombie accounts" that have been unused for 30+ days.
- Android client required permissions:
- Background execution permission (the app will disconnect when backgrounded if not granted)
- Network access permission (basic permission)
- Phone settings (Android):
- Settings → Wireless & Networks → WLAN → Keep connection during sleep → "Always" (otherwise the system will disconnect during sleep)
- Settings → Wireless & Networks → Mobile Network → Advanced → Always keep data connection → "Enabled"
FAQ
- Q: How to download and install the Android app?
- Open https://github.com/lazy-luo/smarGate/raw/master/app-release.apk in an Android browser
- Download and install from the popup dialog
The GitHub release may lag slightly behind the latest test version.
Baidu Disk download link: https://pan.baidu.com/s/14Iq60kxHW711NVoCVKWySg
Gitee mirror (faster access, no image display issues): https://gitee.com/lazy-luo/smarGate
If needed, add WeChat: ws_lzy008 with the note "smarGate" — a technical discussion group may be formed based on interest.
- Open https://github.com/lazy-luo/smarGate/raw/master/app-release.apk in an Android browser
- Q: To access multiple devices on the home LAN, does each device need the server installed?
A: No. Just install the server on any one device.
- Q: Why does the connection sometimes fail?
A: The server will automatically disconnect after 2-3 minutes of idle time. Wait about 10 seconds for automatic reconnection.
- Q: Why can't IPv6 P2P work?
A: Update both client and server to the latest version; ensure both the phone and intranet computer can obtain a global IPv6 address; ensure the firewall is not blocking (Windows); verify that both IPv6 addresses are routable; check the hosts file to ensure hostnames resolve to IPv6 addresses.
- Q: Why are there no UDP ports for IPv4 and IPv6 P2P connections?
A: smarGate uses TCP protocol for P2P tunneling, providing better security and connection reliability.
- Q: Why can't the mobile NAS client log in?
A: Ensure that localhost (127.0.0.1) is not in the mobile NAS client's IP blacklist.
- Q: How to share a remote office's intranet machines with multiple teams?
A: Connect the phone to WiFi and have team members' computers connect to the phone's IP:PORT, directly accessing through the phone proxy. In practice, a phone priced above 2,000 yuan can support sharing among approximately 100 team members.
- Q: Why is there no console window for the Windows server?
A: To prevent accidental closure, the new version of the Windows server runs in the background. If you need to close it, use Task Manager.
- Q: Does P2P traffic still go through the intermediary proxy?
A: No. It's a direct peer-to-peer connection. The speed depends on the networks where your client and server are located.
- Q: Is smarGate's background operation power-hungry?
A: After extensive testing, for occasional usage, power consumption is extremely low — comparable to any system process. For frequent background usage, overall power consumption is similar to occasional WeChat usage. Power management warnings about "frequent background refresh..." can be ignored — any background data transfer triggers these alerts; the key metric is the power consumption ranking.
- Q: What are smarGate's connection priority rules?
A: P2P connection is preferred. When P2P is unavailable, a custom proxy connection is used. When neither is available, the official proxy connection is used.
- Q: Can the same user log in from multiple locations?
A: Yes, multi-point login is supported, but only one client can establish P2P connections at a time. Only one server instance can run on a single machine; ensure server instance indices do not duplicate, otherwise normal operation will be affected.
- Q: Can the server run on an Android phone?
A: Starting from v0.27, the Android app has added "Server Mode" support.
- Q: What do the different colors on the client mean?
A: IPv4 P2P indicator:

A: IPv6 P2P indicator:

A: Custom route indicator:

Best Practices
- Recommended best practices for reference:
- Set the Android client to "Auto Login" to avoid the hassle of entering username/password each time;
- After configuration, let the Android client run in the background. Keeping it in the foreground causes periodic refreshes and the WebView control consumes power unnecessarily;
- Keep the server running in the background — it's safe and secure, only you can access it;
...Usage scenarios...
[Home Camera P2P Direct Connection]
- Set the Android client to "Auto Login" to avoid the hassle of entering username/password each time;
Disclaimer
- Please read the following disclaimer carefully. By using the smarGate software tool, you indicate your acceptance of the following:
- It is strictly prohibited to use this software for computer hacking or any other activities that compromise computer network security;
- This software is a legitimate network access tool. Please use it reasonably and lawfully; do not use it for activities that violate laws, ethics, or the interests of others. If used for illegal purposes, the resulting adverse consequences shall be borne by the user; the developer of this software assumes no responsibility or liability for any losses.
- It is strictly prohibited to use this software for computer hacking or any other activities that compromise computer network security;
Donation
If you find smarGate helpful, donations are welcome to support the long-term development of the project!
PS: It is recommended to include your registered username with the donation.
Appendix
Changelog
2026-07-24 — Updated to v0.41.1
- Added three new service display layouts, switchable via the top toolbar with one click:
- Card Mode: Classic card view — service information at a glance
- Tab Mode: Horizontal scrolling tab bar at the top, grouped by access point, with scroll position auto-memorized
- Compact Mode: Compressed list view, click to expand details — ideal for managing large numbers of services
- Theme selection support; layout preference automatically persisted (localStorage), restored on next launch
- Network engine optimization — improved performance and stability
- Added multi-language support for Persian, Korean, and Russian
- Version updated to v0.41.1
2026-03-03 — Updated to v0.40.6
- Fixed TCP connection delayed disconnect issue
- Tuned the network engine for improved performance
- Version updated to v0.40.6
2025-09-26 — Updated to v0.40.5
- Fixed a bug where connections would intermittently drop in proxy mode
- Enhanced stability and improved performance
- Added auto-start scripts. Usage:
- Windows
On Windows, ensure enable_autostart.bat and enable_autostart.ps1 are in the same directory as the server executable.
Open a cmd window and run:
enable_autostart.bat on → enable auto-start
enable_autostart.bat off → disable auto-start
The script requires administrator privileges.
- Linux/macOS
Ensure enable_autostart.sh is in the same directory as the server executable.
enable_autostart.sh on → enable auto-start
enable_autostart.sh off → disable auto-start
- Version updated to v0.40.5
2025-03-25
- File management now supports deleting empty directories
- Server-to-server connections now connect on demand (retry once within 20 seconds)
- Enhanced stability — fixed unexpected exit issues
2024-10-12 — Updated to v0.40.4:
- Added PROXY protocol — single port supports both SOCKS5 and HTTP proxy
- Added HTTP proxy username/password authentication
<app-parameter>
...
<httpx-user value="user" />
<httpx-passwd value="pwd" />
<socks-user value="user" />
<socks-passwd value="pwd" />
...
</app-parameter>
- Other optimizations
2024-08-20
- Improved file transfer speed
- Other optimizations
2024-08-17
- Fixed a bug where the server would be lost for extended periods when the network egress changed
- Improved P2P connection mechanism — increased P2P connection success rate
2024-08-06 — Updated to v0.40.3
- Fixed an intermittent proxy connection drop bug on Windows
- Fixed a high CPU usage bug on Windows under low bandwidth
- Server now supports dynamic resource reclamation — suitable for memory-constrained devices
- Added build package supporting LoongArch64 architecture
- Version updated to v0.40.3
2024-07-11
- Fixed a bug where the proxy address was incorrectly displayed as localhost
- Fixed an intermittent coredump bug on Windows
2024-05-11
- Enabled asynchronous connections to prevent slow connections from blocking normal connections
- Fixed a bug where chained proxy, SOCKS5, and HTTP proxy connections could not be released under certain conditions
2024-04-27 — Updated to v0.40.2:
- Improved P2P connection success rate
- Fixed some known bugs
- Version updated to v0.40.2
2024-04-18:
- Fixed favorites bug
- Added service memo/note feature for easier service identification and tagging
2024-04-10:
- VIP users now support Baidu Maps location tracking
- App server supports GPS positioning
- Register on Baidu Maps Open Platform, apply for a "Browser" AK, then configure the AK in the SG client to use the map positioning feature
- Version updated to v0.40.1
2024-02-02:
- App usability update — future versions will adopt an entirely new interface
- Fixed a bug where IPv6 tunnels could not be created under certain conditions
- App now includes a Favorites feature for a clear overview of frequently used connections
- Version updated to v0.32.3
2023-11-28:
- Safety protection for children and elderly — GPS positioning support to track the location of care recipients (manual authorization required)
- This feature only supports Android server
- Once coordinates are successfully obtained, latitude and longitude are automatically copied to the clipboard
- Other optimizations
2023-11-17 — Updated to v0.32.2:
- SOCKS protocol now supports username/password authentication
- Audio recording save and playback support (VIP)
- Version updated to v0.32.2
2023-10-25 — Updated to v0.32.1:
- Bug fixes
- Improved SOCKS protocol support (IPv4 TCP only)
- Improved HTTP proxy protocol support
- App now supports VIP feature licensing
- Version updated to v0.32.1
2023-09-08 — Updated to v0.31.12:
- Bug fixes
- Experimental SOCKS protocol support (IPv4 TCP only)
- Added built-in HTTP proxy protocol support
- Memory reclamation (suitable for memory-constrained devices)
- Fully asynchronous approach for improved responsiveness
- Version updated to v0.31.12
2023-08-29 — Updated to v0.31.11:
- File management now supports default sorting by time
- Added macOS M1/M2 support
- Version updated to v0.31.11
2023-06-03 — Updated to v0.31.10:
- Network reliability optimization
- Optimized network transmission efficiency
- Version updated to v0.31.10
2023-03-04 — Updated to v0.31.9:
- App server mode now includes an "Accessibility" service — users can enable it to achieve automatic restart
- App operation optimization: added auto-fill on click for easier configuration of new entries
- Fixed a bug where custom proxy services could not be provided when installed on MIPS routers
- Added periodic IP refresh for custom proxy domain names on the server side (dynamic DNS)
- Other optimizations
2022-12-14 — Updated to v0.31.8:
- App server mode now supports custom proxy configuration and SSL encryption
- Custom proxy server supports SSL self-signed certificate distribution
- Other optimizations
2022-11-04 — Updated to v0.31.7:
- Added one-click version upgrade — no manual update required
- This feature sources versions from GitHub; if updates fail, check GitHub connectivity
- Service typically restores within 10-20 seconds after updating
- Server provides an auto-update option (checks once daily), disabled by default
<auto-update value="true" />
2022-10-20 — Updated to v0.31.6:
- File management now supports file deletion
- File management now supports resumable transfer (breakpoint resume)
- File management now displays file timestamps
- File management now supports disk switching on Windows
- This feature activates only when P2P or custom proxy connections are available
- Upload and download via drag-and-drop
- Double-click to open the file deletion confirmation dialog
2022-10-14 — Updated to v0.31.5:
- Fixed a bug where custom proxy connections would fail after short-interval reconnection attempts
- Added basic file upload/download functionality for convenient cross-location document synchronization
- This feature activates only when P2P or custom proxy connections are available
- Upload and download via drag-and-drop
- Version updated to v0.31.5
2022-09-05:
- Fixed a bug where custom proxy connections would disconnect abnormally
- Version unchanged
2022-08-30 — Updated to v0.31.4:
- Reduced runtime virtual memory usage
- Routine optimizations
- Version updated to v0.31.4
2022-08-14 — Updated to v0.31.3:
- Fixed a bug where MIPS architecture systems could not connect to custom proxies
- Fixed an issue with long HTTP protocol loading times
- Version updated to v0.31.3
2022-08-06 — Updated to v0.31.2:
- Fixed an intermittent crash bug on Windows — enhanced stability
- Added keep-alive for P2P and custom proxy connections to minimize reconnection time windows and improve availability
- Other usability optimizations — reduced app power consumption
- Version updated to v0.31.2
2022-07-28 — Updated to v0.31.1:
- Fixed a bug where server restarts under certain conditions caused mesh network configuration to become ineffective
- Fixed a P2P negotiation bug for NAT1 servers
- Version updated to v0.31.1
2022-07-22 — Updated to v0.31:
- Added server-to-server port mapping — servers with public IPs can be directly accessed from the public internet (configuration via app only)
- Configuration: In the existing mapping "Remote IP" field, use the format ip@idx (where idx is the access point index)
- The "local port" configured this way is actually on the host of the current access point (note: NOT on the app phone)
- The mapping takes effect only if P2P (or custom proxy) between the servers succeeds
- Server-to-server proxy status is refreshed on the app only during P2P connections
- After configuration, wait about 10 seconds for the actual status to appear on the app
- Version updated to v0.31
2022-06-30:
- Fixed a bug where 32-bit big-endian machines could not proxy correctly when running the server
- Version unchanged
2022-05-17:
- Server now supports auto-generation of self-signed certificates (default filename: server.xxx)
a. Configure the ssl-create-certfile option
<app-parameter>
<ssl-create-certfile value="true" />
...
</app-parameter>
b. Ensure openssl is installed
c. Do not specify certificate files (do not configure ssl-cacert-file or ssl-privatekey-file)
2022-05-04:
- Added RISC-V 32/64 architecture support — compiled with musl library (same as MIPS architecture)
- Optimized network transport layer
- Version unchanged
2022-02-07 — Updated to v0.30.4:
- Added MIPS64el support
- Added system icon display on the app side
- Other optimizations
2021-11-06 — Updated to v0.30.3:
- Fixed a bug where the app's memory usage display only showed JVM memory, excluding native memory
- Optimized the network engine — improved stability and fairness under high concurrency
2021-10-17 — Updated to v0.30.2:
- Custom proxy now supports SSL verification
- P2P connections can now be configured as SSL tunnels ( server must have certificates configured )
<app-parameter>
<ssl-tunnel-required value="first" /><!-- 3 values: none, first, only -->
...
</app-parameter>
- Other optimizations
2021-09-24 — Updated to v0.30:
- Added Android server auto-start on boot support (server mode only, requires manual authorization)
- Android server in P2P mode now supports real-time audio (microphone permission requires manual authorization; the SG app must be open to record)
- Other optimizations
2021-05-03 — Updated to v0.29.2:
- Fixed an issue where the app could not exit on newer Android versions
- Network optimization: fixed a bug that could cause network latency, further improved network transfer speed
- Added version number display for easier client and server version management
- Optimized app CPU usage — reduced power consumption
2021-03-05 — Updated to v0.29:
- Fixed a server core dump issue when switching between IPv6 and IPv4 networks
- Client now includes an "IPv4-only" network mode option — for scenarios where IPv4 P2P connection is required in an IPv6 network environment (forces P2P via IPv4)
- Other bug fixes
Note: Due to a critical core dump issue in certain scenarios, v0.29 requires simultaneous update of both client and server.
2020-12-13 — Updated to v0.28:
- Custom proxy now supports token-based access control to prevent unauthorized access. Also supports access restriction list configuration (access-token must be numeric; access-restricting accepts allowed SIDs, multiple SIDs separated by ":"; access-restricting is optional).
A. Proxy server configuration:
<app-parameter>
<proxy-service-port value="9001"/>
<access-token value="nnnnn"/>
<access-restricting value="xxxxx"/>
...
</app-parameter>
B. Server configuration (token must match the proxy server):
<channel address="x.x.x.x:9001" ssl="true" token="nnnnn" />
- Optimized tunnel timeout disconnect mechanism (P2P tunnels and user proxy tunnels only): When connections are active and in normal condition, the client sends heartbeats at random intervals to prevent timeout disconnection.
Scenario: During SSH sessions, the connection stays alive even with extended periods of inactivity — no more disconnection after 1-2 minutes of idling.
2020-05-23 — Updated to v0.27:
- Removed root permission acquisition — maintaining minimal permission requirements. Support for configuring ports below 1024 is currently not planned.
- Since my personal Raspberry Pi was broken by my child, I had to maximize the remaining value of old phones — Android app now supports "Server Mode", allowing old phones to serve as home servers.
2020-04-30 — Updated to v0.26:
- Fixed an issue where configured HTTP services might become unavailable when the IP changed
2. For rooted phones, attempted to acquire root privileges to support configuring reserved ports below 1024 - Fixed an issue where absolute path execution (common in startup scripts) without the -f parameter could not locate the default configuration file
- Server now includes an HTTP content replacement option (affects efficiency, ignores compressed data. For non-standard intranet web applications that embed IP:port in JS and return it to the browser). Default: no content filtering.
...
<moudle-parameter>
<http-content-type-filter value="application/javascript" />
...
<moudle-parameter/>
...
- Server now includes a designated P2P negotiation port option — default is random port
...
<moudle-parameter>
<negotiation-port value="xxxxx" />
...
<moudle-parameter/>
...
- Added an "Official Proxy" toggle — enabled by default. When disabled, data will never be forwarded through the official proxy.
2020-03-13:
- Fixed a TCP-CORK bug where writable-event loss caused network latency under certain conditions
- Improved memory pool runtime performance
- Added -f command line parameter to specify the full path of the configuration file
- Other optimizations — version unchanged
2020-01-18 — Updated to v0.25:
- Fixed an HTTP proxy failure bug
- App now displays IPv6 addresses
- Version updated to v0.25
2019-11-30 — Updated to v0.24:
- PeanutShell now supports UDP? Alright then — UDP port forwarding is now supported. Game streaming users can give it a try.
- UDP over TCP mode supported
- Other minor optimizations
2019-11-03:
- Fixed a memory leak bug
- Other minor optimizations — version unchanged
- Improved P2P reconnection reliability
2019-09-30 — Updated to v0.23:
- Fixed a high CPU usage bug on the Windows server under weak network conditions
- Overall network transfer speed improvement
2019-09-20 — Updated to v0.22:
- Improved P2P detection reliability
- Fixed a Windows bug where P2P connections could not be established under certain conditions
- Client now provides manual P2P reconnection (automatic reconnection may fail in weak network conditions; manual retry is available)
2019-09-15:
- Further reduced server CPU usage at low transfer rates
- Routine optimization — version unchanged
2019-09-10 — Updated to v0.21:
- Network performance optimization
- Client now displays real-time network speed
2019-09-05:
- Fixed a bug where auto-login would fail after changing the password on the client
- Added auto-login timeout control
2019-09-01 — Updated to v0.20:
- Optimized connection check performance (parallel asynchronous detection)
- HTTPS-to-HTTP proxying support (client accesses via HTTP, server connects via HTTPS)
2019-08-18 — Updated to v0.19:
- Performance optimization
- Fixed a bug where server connections could not be reliably disconnected under certain conditions (custom routes)
- Static compilation — no longer depends on Linux system GCC dynamic libraries; can run directly on Alpine (requires symlink creation)
- Added mini version build support — no longer statically compiles OpenSSL; dynamically compatible with OpenSSL library versions from 0.9.8 to 1.1.1. Binary package reduced to ~1MB (placed in the dynamic directory; requires SSL library configuration).
2019-05-27 — Updated to v0.18:
- Performance optimization
- Added IPv6 P2P toggle mechanism:
<ipv4-tunnel-first value="false"/>— set to "true" to disable IPv6 P2P. Default is "false" - Added IPv6 indicator and connection status prompts on the client
2019-05-21:
- Fixed a bug where IPv6 could not be detected on Raspbian Jessie
2019-05-16 — Updated to v0.17:
- Performance optimization
- Added P2P disconnection and reconnection mechanism
2019-05-04:
- Fixed an intermittent high CPU usage bug on the server when running with fewer than 4 threads and a private route was mounted — version unchanged
2019-04-23 — Updated to v0.16:
- Fixed an intermittent core dump bug on the server when a private route was mounted
2019-04-16 — Updated to v0.15:
- Fixed a bug where P2P would fail when switching between IPv4 and IPv6 networks
2019-04-15 — Updated to v0.14:
- Fixed network switch reconnection failures
- Engine performance optimization
- Added IPv6 firewall traversal support (requires IPv6 support on the mobile device and the intranet server)
[Important Notice] v0.14 is incompatible with previous versions. Please update all components!



