Public Network Access Guide
Access cloud machines (ADB, display, control, audio) in your LAN from the public internet via your own server
What It Does
Use a public server as a relay to remotely connect to cloud machines in your office or data center from anywhere:
- Remote ADB debugging over the internet
- Stream display, audio, and remote control over the internet
- Multi-user collaboration through a shared server
Prerequisites
1. Prepare a Linux Server
The most common choice is an entry-level cloud server from providers like AWS, Azure, GCP, or similar.
Minimum system requirements:
- Debian 11+, or Ubuntu 20.04+, or CentOS 8+ / Rocky / Alma
- A static public IP address, or a resolved domain name
2. Prepare SSH Login Credentials
You will need the following for deployment:
- Server IP or domain (e.g.,
frp.example.com) - SSH port (default 22, some providers use a different port)
- SSH username and password
Permissions: It is recommended to log in as the
rootuser.
3. Open Ports in Cloud Console (TCP)
Open the following ports in your cloud provider's security group or firewall:
| Port | Default | Purpose |
|---|---|---|
| Communication port | 7000 | Client-to-server connection entry |
| Console port | 7500 | Server management panel |
| Mapping port range | 30000 - 31000 | Port range allocated for cloud machines |
The default values above can be customized during deployment. Regardless of whether you use defaults or custom values, they must be opened in your cloud console.
Deployment Steps
Step 1: Open the "Public Network Mapping" Page
Click Public Network Mapping in the left menu of the desktop client.
Step 2: Select Deployment Mode
| Mode | Use Case |
|---|---|
| Public Server (Recommended) | Cloud provider server — choose this 99% of the time |
| NAT Traversal | Server is on an internal network, requires additional port forwarding on the router |
NAT mode additional requirement: Forward the communication port / console port / mapping port range on your router to the internal server.
Step 3: Enter Server Connection Info
| Field | Description |
|---|---|
| Server IP / Domain | Your server address |
| SSH Port | Default 22, fill in actual value |
| SSH Username | Server login account |
| SSH Password | Server login password |
Step 4: Set Two Passwords
The deployment form requires two passwords:
| Password | Purpose |
|---|---|
| Console Password (server-side) | Used to log into the server management panel |
| Client Password (client-side) | Communication credential between client and server |
Both passwords must be at least 8 characters, containing uppercase, lowercase letters and special symbols.
Step 5: (Optional) Adjust Ports
Default values are usually sufficient. Only change for special requirements:
- Communication port, console port, mapping port range (same meaning as in Step 2 table)
Step 6: (Optional) Enable "Hide Mapping Ports"
Leave disabled by default. Only enable for special security requirements.
Step 7: Click "Deploy and Start"
The interface will show deployment progress. On failure, specific reasons are displayed:
- SSH connection failed: Check IP, port, username, and password
- Port occupied: Try a different port
- System not supported: Server OS version too old (not in supported range)
Adding Cloud Machines to Mapping
After successful deployment, the main interface lists all discovered cloud machines.
Host Level
Each host has an "Enable Mapping" toggle on the right. When enabled, the host itself becomes accessible via public network.
Each host also has "Enable All / Disable All" buttons to toggle mapping for all cloud machines under that host at once.
Individual Cloud Machine Mapping
Each cloud machine has its own toggle. When enabled, it automatically establishes port mappings for ADB, display, control, and audio. When toggling, you can choose to map only specific port types.
Disabling Mapping
Turn off the corresponding toggle and the port is released immediately. If there are active connections on that port, the system will automatically attempt to disconnect them.
In rare cases where stubborn connections cannot be disconnected, a "Port could not be fully disconnected" prompt appears. You can then choose to shut down the entire mapping service to force-disconnect all connections.
How to Use After Configuration
After successful deployment, each mapped cloud machine is automatically assigned a public port. You can see the port number for each cloud machine in the mapping list.
Remote ADB Debugging
adb connect your-server-IP:assigned-ADB-portFor example, if cloud machine A's ADB port is assigned as 30001:
adb connect frp.example.com:30001
adb -s frp.example.com:30001 shellDisplay / Control / Audio
Provide the corresponding port to your client tool (e.g., scrcpy-based tools).
Daily Management
| Action | Effect |
|---|---|
| Start Mapping | Restart after service was stopped |
| Stop Mapping | Stop all mappings but retain configuration (can restart directly next time) |
| Settings | Modify server config, client config, SSH info |
| Release Unused Ports | Clean up port allocations from deleted cloud machines |
| Reset Service | Uninstall all related services on the server and clear all local configuration (irreversible) |
Configuration Change Notes
- After modifying server configuration (e.g., ports, passwords), you'll be prompted to "update remote server" — confirm to reconfigure and restart via SSH
- After modifying client management port or public address, you'll be prompted to "restart mapping service" — confirm to restart
- Changing only mapping toggles / port types → takes effect immediately, no restart needed
Changing SSH Password
If the server SSH password changes, go to "Settings → SSH Configuration" to update the new password. The system will automatically reconnect.
FAQ
Q1: Deployment failed with "port already occupied"
Another program on the server is using the same port (most commonly nginx on port 80).
Solution: Change the "service port" to an unoccupied port (e.g., 8080, 7001).
Q2: Client can still connect after disabling mapping
Normally, connections are force-disconnected within 5-15 seconds after disabling. If connections persist:
- The client may be continuously reconnecting — shut down the entire mapping service to fully cut off
- If using CentOS 7 or other old systems, upgrade to a recommended version
Q3: Popup says "Port could not be fully disconnected"
The system has attempted to disconnect multiple times but stubborn connections remain. To take immediate effect, shut down the entire mapping service.
Q4: Deployment succeeded but cannot access from public network
Check in this order:
- Cloud console security group / firewall: Are the relevant ports opened (TCP protocol)?
- In NAT mode: Is the router forwarding the corresponding ports to the internal server?
- Local network: Is your network's outbound traffic restricted by a firewall?
Q5: How to completely uninstall
Click "Reset Service". Note: this operation is irreversible — it will clean up related programs on the remote server and all local configuration.
Security Recommendations
- Use strong passwords: Both server console password and client communication password should be strong (minimum complexity is enforced)
- Disable unused mappings promptly: Reduce exposure surface
- Choose a geographically close server: Reduce latency, improve experience
