A step-by-step guide to installing and configuring the most popular VPS control panels — aaPanel, BT.cn (BaoTa), and 1Panel — with one-click scripts, security hardening, and common optimizations.
Continuously updated | Last updated: 2026-03-31
中文 | English
- Why Use a Control Panel?
- aaPanel Installation
- BT.cn (BaoTa) Installation
- 1Panel Installation
- Panel Security Hardening
- Common Configuration
- FAQ
A web hosting control panel turns a bare Linux server into a managed environment with a graphical interface. Instead of memorizing dozens of terminal commands, you get a browser-based dashboard for websites, databases, SSL, and files.
| Task | Manual setup | Using a panel |
|---|---|---|
| Deploy a website | 30+ min | ~1 min |
| Configure SSL | ~10 min | ~30 sec |
| FTP management | Manual config | Built-in |
| Database management | Command line | Visual GUI |
| File management | Command line | Visual GUI |
| Panel | Highlights | Recommended |
|---|---|---|
| aaPanel | Free, full-featured, international edition | ⭐⭐⭐⭐⭐ |
| BT.cn (BaoTa) | Chinese UI, large domestic user base | ⭐⭐⭐⭐ |
| 1Panel | Next-gen, open-source, Docker-native | ⭐⭐⭐⭐⭐ |
How to choose:
- aaPanel — best if you prefer an English interface and an internationally hosted control panel.
- BT.cn (BaoTa) — best if you are a Chinese-speaking user who wants the largest community and tutorials.
- 1Panel — best if you love modern UI and container-based workflows (Docker / coolify-style apps).
# CentOS
yum install -y wget && wget -O install.sh http://www.aapanel.com/install/install.sh && echo "y" | bash install.sh
# Ubuntu / Debian
wget -O install.sh http://www.aapanel.com/install/install.sh && sudo bash install.shSelect installation directory (default /www):
/www
Select panel port (default 8888):
8888
Set admin username:
admin
Set admin password:
your_password
After installation, visit:
http://your_vps_ip:8888
After logging in, open the App Store and install:
- Nginx — web server
- MySQL / MariaDB — database
- PHP — runtime
- phpMyAdmin — database management
1. Log into aaPanel
2. Click "Website" -> "Add site"
3. Fill in domain and FTP info
4. Choose a PHP version
5. Click "Submit"
1. Open the site -> "SSL"
2. Choose "Let's Encrypt"
3. Fill in your email
4. Click "Apply"
5. Enable "Force HTTPS"
# CentOS
yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh
# Ubuntu / Debian
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh⚠️ Make sure:
- The system is clean (fresh OS install)
- Ports 8888, 888, 80, 443 are open
- At least 2 GB RAM is recommended
# After installation you will see:
Bt-Panel: http://your_vps_ip:8888
Username: admin
Password: your_password
# First login steps:
1. Bind a BT account (can be skipped)
2. Select a software suite (LNMP / BT fast install)
3. Wait for the installation to finish| Feature | Description |
|---|---|
| Website management | Create & manage sites in one click |
| FTP | Create FTP accounts |
| Database | MySQL management |
| File manager | Visual file operations |
| SSL | Free HTTPS certificates |
| Cron jobs | Backups / scheduled tasks |
| Feature | Description |
|---|---|
| Open source & free | Available on GitHub |
| Modern UI | Clean, beautiful interface |
| Docker support | Container management built in |
| CLI tool | 1pctl command provided |
# CentOS
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh
# Ubuntu
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sudo bash quick_start.shSelect installation directory (/opt/1panel):
/opt/1panel
Set panel port (random):
(random — please note it down)
Set admin username:
admin
Set admin password:
your_password
After installation:
1Panel control panel: http://your_vps_ip:random_port
# Manage from the command line
1pctl user-info # show user info
1pctl restart # restart the panel
1pctl stop # stop the panel
1pctl update # update the panel
# Web UI sections
- App Store : one-click app installs
- Website : create & manage sites
- Database : MySQL / PostgreSQL
- Container : Docker management
- Backup : scheduled backups# aaPanel: Panel Settings -> Change Panel Port
# BT.cn: Panel Settings -> Change Panel Port
# 1Panel:
1pctl reset panel-port 22222# Recommended: only allow access via a domain
# BT.cn: Panel Settings -> Domain Binding
# aaPanel: Panel Settings -> Domain Binding# BT.cn: Panel Settings -> Panel SSL -> Let's Encrypt
# aaPanel: Panel Settings -> Panel SSL
# 1Panel: Panel Settings -> SSL Certificate# BT.cn: Panel Settings -> IP Whitelist
# aaPanel: Panel Settings -> IP Whitelist# BT.cn: Panel Settings -> SSH Management -> Disable password login# Increase upload limit
# BT.cn / aaPanel: PHP Management -> Upload Limit -> 100MB
# Increase memory limit
# PHP Management -> memory_limit -> 256M
# Enable PHP extensions
# PHP Management -> Extensions -> check what you need# BT.cn / aaPanel: Config File -> add the following for performance
# Gzip compression
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
# Buffers
client_body_buffer_size 10k;
client_header_buffer_size 1k;
client_max_body_size 100m;
large_client_header_buffers 4 16k;-- Optimize MySQL (BT.cn / aaPanel: Database -> phpMyAdmin -> my.ini)
[mysqld]
max_connections = 200
key_buffer_size = 64M
max_allowed_packet = 64M
table_open_cache = 256
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 32M# BT.cn / aaPanel: Cron Jobs
# Backup website (daily at 3:00)
Task type: Backup website
Schedule: Every day 3:00
Keep: 3 copies
# Backup database (daily at 4:00)
Task type: Backup database
Schedule: Every day 4:00
Keep: 7 copies
| Cause | Solution |
|---|---|
| Port not open | Check the firewall |
| Service not running | Restart the panel service |
| Insufficient memory | Add swap or upgrade the plan |
# Restart panel services
# BT.cn
bt restart
# aaPanel
btnginx restart
# 1Panel
1pctl restart# BT.cn
bt 5
# aaPanel
btapi
# 1Panel
1pctl reset panel-password1. Package the original website files
2. Export the database
3. Upload to the new server
4. Import the database
5. Update website config
6. Point the domain DNS to the new server
| Name | Highlights | Price | Link |
|---|---|---|---|
| VPSVIP | VPS reviews & buying guides | Server benchmarks & recommendations | Website |
| Vultr | Hourly billing, global locations | From $3.5/mo | Website |
| BandwagonHost | Great price/performance | $49.99/yr | Website |
CC BY-NC-SA 4.0 - 2026
For more VPS & Clash tools, check out Awesome VPS & Clash Tools.