97 lines
3.0 KiB
Markdown
97 lines
3.0 KiB
Markdown
# DNS Migration Guide: Namecheap to External Providers
|
|
|
|
When managing 30+ records with frequent changes, Namecheap's overwrite-only API becomes a liability. This guide covers migrating DNS resolution to a better API provider while keeping domain registration at Namecheap.
|
|
|
|
## Why Migrate DNS Away from Namecheap?
|
|
|
|
| Issue | Impact |
|
|
|---|---|
|
|
| `setHosts` overwrites all records | Risk of accidental deletion |
|
|
| No single-record CRUD | Every change requires full read-write cycle |
|
|
| No SRV support via API | Manual work for some services |
|
|
| XML responses | More complex parsing than JSON |
|
|
| IPv4-only whitelist | Limits deployment environments |
|
|
|
|
## Recommended Alternatives
|
|
|
|
### Option 1: Cloudflare DNS (Recommended for most cases)
|
|
|
|
- **Free plan** includes DNS management
|
|
- RESTful JSON API with per-record CRUD
|
|
- Official SDKs in Python, Go, Node.js, etc.
|
|
- Terraform provider available
|
|
- Built-in DDoS protection and CDN
|
|
- API Token authentication (scoped permissions)
|
|
|
|
### Option 2: Alibaba Cloud DNS (Recommended for China-focused services)
|
|
|
|
- Better performance for China mainland users
|
|
- Full per-record CRUD API
|
|
- Multi-language SDK support
|
|
- RAM sub-user permission control
|
|
- Use the `aliyun-dns` skill for management
|
|
|
|
## Migration Steps
|
|
|
|
### Step 1: Export Current Records
|
|
|
|
```bash
|
|
python namecheap_manager.py export --domain gogenex.com --output current_records.json
|
|
```
|
|
|
|
### Step 2: Set Up New DNS Provider
|
|
|
|
#### For Cloudflare:
|
|
1. Create a Cloudflare account and add your domain
|
|
2. Cloudflare will scan and import existing records
|
|
3. Verify all records were imported correctly against `current_records.json`
|
|
4. Note the assigned Cloudflare nameservers (e.g., `adam.ns.cloudflare.com`)
|
|
|
|
#### For Alibaba Cloud DNS:
|
|
1. Add domain in Alidns console
|
|
2. Import records using: `python alidns_batch.py --domain gogenex.com --plan current_records.json`
|
|
3. Note the assigned Alidns nameservers (e.g., `dns1.hichina.com`)
|
|
|
|
### Step 3: Switch Nameservers at Namecheap
|
|
|
|
```bash
|
|
# For Cloudflare
|
|
python namecheap_manager.py set-ns --domain gogenex.com \
|
|
--nameservers adam.ns.cloudflare.com betty.ns.cloudflare.com
|
|
|
|
# For Alibaba Cloud
|
|
python namecheap_manager.py set-ns --domain gogenex.com \
|
|
--nameservers dns1.hichina.com dns2.hichina.com
|
|
```
|
|
|
|
### Step 4: Verify Propagation
|
|
|
|
DNS propagation typically takes 24-48 hours. Monitor with:
|
|
|
|
```bash
|
|
# Check which nameservers are responding
|
|
dig NS gogenex.com
|
|
|
|
# Verify specific records
|
|
dig api.gogenex.com
|
|
dig mpc.gogenex.com
|
|
```
|
|
|
|
### Step 5: Post-Migration Cleanup
|
|
|
|
- Update any DDNS scripts to use the new provider's API
|
|
- Update Let's Encrypt certbot plugins (e.g., switch from `certbot-dns-namecheap` to `certbot-dns-cloudflare`)
|
|
- Update CI/CD pipelines that manage DNS
|
|
- Keep Namecheap account active for domain renewal
|
|
|
|
## Rollback Plan
|
|
|
|
If issues arise, switch back to Namecheap nameservers:
|
|
|
|
```bash
|
|
python namecheap_manager.py set-ns --domain gogenex.com \
|
|
--nameservers dns1.registrar-servers.com dns2.registrar-servers.com
|
|
```
|
|
|
|
Note: Namecheap default nameservers may vary. Check your Namecheap dashboard for the correct values.
|