# HE.net (Hurricane Electric) Configuration Guide
## Overview
Hurricane Electric (HE.net) is a well-known network service provider offering free DNS hosting services with dynamic DNS record update support. This DDNS project authenticates through HE.net's dynamic DNS password.
> ⚠️ **Important Note**: HE.net Provider is currently in **verification pending** status, lacking sufficient real-world testing. Please provide feedback through [GitHub Issues](https://github.com/NewFuture/DDNS/issues).
**Important Limitation**: HE.net **does not support automatic record creation** - you must manually create DNS records in the HE.net control panel first.
Official Links:
- Official Website:
- Provider Console:
## Authentication Information
### Dynamic DNS Password Authentication
HE.net uses a dedicated dynamic DNS password for authentication, not your account login password.
DNS records and DNS must be created in advance
1. Select the domain you want to manage in [HE.net DNS Management Panel](https://dns.he.net)
2. **Create DNS Record**: Manually create A (IPv4) or AAAA (IPv6) records
3. **Enable DDNS**: Enable dynamic DNS functionality for the record
4. **Get Password**: Click `Generate a DDNS key` or `Enable entry for DDNS` next to the record
```jsonc
{
"dns": "he",
"token": "your_ddns_key" // HE.net dynamic DNS password, no ID required
}
```
## Complete Configuration Example
```jsonc
{
"$schema": "https://ddns.newfuture.cc/schema/v4.1.json", // Format validation
"dns": "he", // Current provider
"token": "your_ddns_key", // HE.net dynamic DNS password
"index4": ["public", 0], // IPv4 address source, corresponds to A record value
"ipv4": "ddns.newfuture.cc" // IPv4 domain, corresponds to A record
}
```
### Parameter Description
| Parameter | Description | Type | Value Range/Options | Default | Parameter Type |
| :-------: | :--------------- | :------------- | :------------------------------------- | :-------- | :------------- |
| dns | Provider ID | String | `he` | None | Provider Param |
| token | Authentication | String | HE.net DDNS password | None | Provider Param |
| index4 | IPv4 Source | Array | [Reference](../config/json.md#ipv4-ipv6) | `default` | Common Config |
| index6 | IPv6 Source | Array | [Reference](../config/json.md#ipv4-ipv6) | `default` | Common Config |
| ipv4 | IPv4 Domain | Array | Domain list | None | Common Config |
| ipv6 | IPv6 Domain | Array | Domain list | None | Common Config |
| proxy | Proxy Settings | Array | [Reference](../config/json.md#proxy) | None | Common Network |
| ssl | SSL Verification | Boolean/String | `"auto"`, `true`, `false` | `auto` | Common Network |
| cache | Cache Settings | Boolean/String | `true`, `false`, `filepath` | `true` | Common Config |
| log | Log Config | Object | [Reference](../config/json.md#log) | None | Common Config |
> **Parameter Type Description**:
>
> - **Common Config**: Standard DNS configuration parameters applicable to all supported DNS providers
> - **Common Network**: Network setting parameters applicable to all supported DNS providers
> - **Provider Param**: Supported by current provider, values related to current provider
>
> **Note**: HE.net does not support `id` parameter, only uses `token` (DDNS Key) for authentication; TTL is fixed at 300s.
## Usage Limitations
- ❌ **Does not support automatic record creation**: Must manually create DNS records in HE.net control panel first
- ⚠️ **Update only**: Can only update IP addresses of existing records, cannot create new records
- 🔑 **Dedicated password**: Each record has an independent DDNS password
## Troubleshooting
### Debug Mode
Enable debug logging to view detailed information:
```sh
ddns -c config.json --debug
```
### Common Issues
- **Authentication Failed**: Check if dynamic DNS password is correct, confirm record has DDNS functionality enabled
- **Domain Not Found**: Ensure record has been manually created in HE.net control panel, check domain spelling
- **Record Update Failed**: Check if record has dynamic DNS enabled, confirm password corresponds to correct record
- **Request Rate Limiting**: HE.net recommends update intervals of no less than 5 minutes, avoid frequent updates
### HE.net Response Codes
| Response Code | Description | Solution |
| :-------------- | :-------------------- | :-------------------------- |
| `good ` | Update successful | Operation successful |
| `nochg ` | IP address unchanged | Operation successful |
| `nohost` | Hostname doesn't exist| Check record and DDNS setup |
| `badauth` | Authentication failed | Check dynamic DNS password |
| `badagent` | Client disabled | Contact HE.net support |
| `abuse` | Updates too frequent | Increase update interval |
## Support and Resources
- [HE.net Official Website](https://he.net/)
- [HE.net DNS Management](https://dns.he.net/)
- [HE.net DDNS Documentation](https://dns.he.net/docs.html)
- [HE.net Technical Support](https://he.net/contact.html)
> ⚠️ **Verification Pending Status**: HE.net Provider lacks sufficient real-world testing. It is recommended to conduct thorough testing before using in production environments. If you encounter issues, please provide feedback through [GitHub Issues](https://github.com/NewFuture/DDNS/issues).