Skip to content

Commit 02c2c26

Browse files
committed
fix: README CN file
1 parent a6d214b commit 02c2c26

File tree

1 file changed

+314
-1
lines changed

1 file changed

+314
-1
lines changed

README_CN.md

Lines changed: 314 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1068,4 +1068,317 @@ Webhook 是 GoDNS 提供的另一个功能,用于在 IP 更改时向其他应
10681068
可用变量:
10691069

10701070
> - `Domain`:当前域名。
1071-
> - `IP`:新 IP
1071+
> - `IP`:新 IP 地址。
1072+
> - `IPType`:IP 类型:`IPV4` 或 `IPV6`。
1073+
1074+
#### 使用 HTTP GET 请求的 Webhook
1075+
1076+
```json
1077+
"webhook": {
1078+
"enabled": true,
1079+
"url": "http://localhost:5000/api/v1/send?domain={{.Domain}}&ip={{.CurrentIP}}&ip_type={{.IPType}}",
1080+
"request_body": ""
1081+
}
1082+
```
1083+
1084+
对于此示例,将向目标 URL 发送带有查询字符串参数的 webhook:
1085+
1086+
```
1087+
http://localhost:5000/api/v1/send?domain=ddns.example.com&ip=192.168.1.1&ip_type=IPV4
1088+
```
1089+
1090+
#### 使用 HTTP POST 请求的 Webhook
1091+
1092+
```json
1093+
"webhook": {
1094+
"enabled": true,
1095+
"url": "http://localhost:5000/api/v1/send",
1096+
"request_body": "{ \"domain\": \"{{.Domain}}\", \"ip\": \"{{.CurrentIP}}\", \"ip_type\": \"{{.IPType}}\" }"
1097+
}
1098+
```
1099+
1100+
对于此示例,当 IP 更改时将触发 webhook,目标 URL `http://localhost:5000/api/v1/send` 将收到带有请求体的 `HTTP POST` 请求:
1101+
1102+
```json
1103+
{ "domain": "ddns.example.com", "ip": "192.168.1.1", "ip_type": "IPV4" }
1104+
```
1105+
1106+
### 杂项主题
1107+
1108+
#### IPv6 支持
1109+
1110+
大多数 [提供商](#支持的-dns-提供商) 都支持 IPv6。
1111+
1112+
要启用 GoDNS 的 `IPv6` 支持,有两种解决方案可供选择:
1113+
1114+
1. 使用在线服务查找外部 IPv6
1115+
1116+
为此:
1117+
1118+
-`ip_type` 设置为 `IPv6`,并确保配置了 `ipv6_urls`
1119+
- 在您的 DNS 提供商中创建 `AAAA` 记录而不是 `A` 记录
1120+
1121+
<details>
1122+
<summary>配置示例</summary>
1123+
1124+
```json
1125+
{
1126+
"domains": [
1127+
{
1128+
"domain_name": "example.com",
1129+
"sub_domains": ["ipv6"]
1130+
}
1131+
],
1132+
"resolver": "2001:4860:4860::8888",
1133+
"ipv6_urls": ["https://api-ipv6.ip.sb/ip"],
1134+
"ip_type": "IPv6"
1135+
}
1136+
```
1137+
1138+
</details>
1139+
1140+
2. 让 GoDNS 查找其运行机器的网络接口的 IPv6(稍后详细说明[网络接口 IP 地址](#网络接口-ip-地址))。
1141+
1142+
为此,只需将 `ip_urls``ipv6_urls` 留空。
1143+
1144+
请注意,网络接口必须配置 IPv6 才能正常工作。
1145+
1146+
#### 网络接口 IP 地址
1147+
1148+
由于某些原因,如果您想获取与网络接口关联的 IP 地址(而不是执行在线查找),您可以在配置文件中这样指定:
1149+
1150+
```json
1151+
"ip_urls": [""],
1152+
"ip_interface": "interface-name",
1153+
```
1154+
1155+
`interface-name` 替换为网络接口的名称,例如 Linux 上的 `eth0` 或 Windows 上的 `Local Area Connection`
1156+
1157+
注意:如果也指定了 `ip_urls`,它将首先用于执行在线查找,网络接口 IP 将在失败情况下用作后备。
1158+
1159+
#### SOCKS5 代理支持
1160+
1161+
您可以通过在配置文件中指定 [SOCKS5 代理](https://en.wikipedia.org/wiki/SOCKS#SOCKS5) 来使所有远程调用通过该代理:
1162+
1163+
```json
1164+
"socks5_proxy": "127.0.0.1:7070"
1165+
"use_proxy": true
1166+
```
1167+
1168+
#### 从 RouterOS 获取 IP
1169+
1170+
如果您想从 Mikrotik RouterOS 设备获取公共 IP,您可以使用以下配置:
1171+
1172+
```json
1173+
"mikrotik": {
1174+
"enabled": false,
1175+
"server": "http://192.168.88.1",
1176+
"username": "admin",
1177+
"password": "password",
1178+
"interface": "pppoe-out"
1179+
}
1180+
```
1181+
1182+
#### 显示调试信息
1183+
1184+
要显示调试信息,将 `debug_info` 设置为 `true` 以启用此功能。默认情况下,调试信息被禁用。
1185+
1186+
```json
1187+
"debug_info": true,
1188+
```
1189+
1190+
#### 多个 API URL
1191+
1192+
GoDNS 支持通过简单的轮询算法从多个 URL 获取公共 IP。如果第一个 URL 失败,它将尝试下一个,直到成功。以下是配置示例:
1193+
1194+
```json
1195+
"ip_urls": [
1196+
"https://api.ipify.org",
1197+
"https://myip.biturl.top",
1198+
"https://api-ipv4.ip.sb/ip"
1199+
],
1200+
```
1201+
1202+
#### 推荐的 API
1203+
1204+
- <https://api.ipify.org>
1205+
- <https://myip.biturl.top>
1206+
- <https://ipecho.net/plain>
1207+
- <https://api-ipv4.ip.sb/ip>
1208+
1209+
## Web 面板
1210+
1211+
<img src="https://github.com/TimothyYe/godns/blob/master/assets/snapshots/web-panel.jpg?raw=true" />
1212+
1213+
从版本 3.1.0 开始,GoDNS 提供了一个 Web 面板来管理配置和监控域名状态。Web UI 默认是禁用的。要启用它,只需在配置文件中启用 `web_panel`
1214+
1215+
```json
1216+
"web_panel": {
1217+
"enabled": true,
1218+
"addr": "0.0.0.0:9000",
1219+
"username": "admin",
1220+
"password": "123456"
1221+
}
1222+
```
1223+
1224+
启用 Web 面板后,您可以访问 `http://localhost:9000` 来管理配置和监控域名状态。
1225+
1226+
## 运行 GoDNS
1227+
1228+
有几种运行 GoDNS 的方式。
1229+
1230+
### 手动运行
1231+
1232+
注意:确保在配置文件中设置 `run_once` 参数,这样程序将在首次运行后退出(默认值为 `false`)。
1233+
1234+
它可以添加到 `cron` 或附加到系统上的其他事件。
1235+
1236+
```json
1237+
{
1238+
"...": "...",
1239+
"run_once": true
1240+
}
1241+
```
1242+
1243+
然后运行
1244+
1245+
```bash
1246+
./godns
1247+
```
1248+
1249+
### 作为手动守护进程
1250+
1251+
```bash
1252+
nohup ./godns &
1253+
```
1254+
1255+
注意:当程序停止时,它不会重新启动。
1256+
1257+
### 作为托管守护进程(使用 upstart)
1258+
1259+
1. 首先安装 `upstart`(如果尚未可用)
1260+
2.`./config/upstart/godns.conf` 复制到 `/etc/init`(并根据需要调整)
1261+
3. 启动服务:
1262+
1263+
```bash
1264+
sudo start godns
1265+
```
1266+
1267+
### 作为托管守护进程(使用 systemd)
1268+
1269+
1. 首先安装 `systemd`(如果尚未可用)
1270+
2.`./config/systemd/godns.service` 复制到 `/lib/systemd/system`(并根据需要调整)
1271+
3. 启动服务:
1272+
1273+
```bash
1274+
sudo systemctl enable godns
1275+
sudo systemctl start godns
1276+
```
1277+
1278+
### 作为托管守护进程(使用 procd)
1279+
1280+
`procd` 是 OpenWRT 上的 init 系统。如果您想在 OpenWRT 和 procd 上将 godns 用作服务:
1281+
1282+
1.`./config/procd/godns` 复制到 `/etc/init.d`(并根据需要调整)
1283+
2. 启动服务(需要 root 权限):
1284+
1285+
```bash
1286+
service godns enable
1287+
service godns start
1288+
```
1289+
1290+
### 作为 Docker 容器
1291+
1292+
可用的 docker 注册表:
1293+
1294+
- <https://hub.docker.com/r/timothyye/godns>
1295+
- <https://github.com/TimothyYe/godns/pkgs/container/godns>
1296+
1297+
访问 <https://hub.docker.com/r/timothyye/godns> 获取最新的 docker 镜像。`-p 9000:9000` 选项暴露 Web 面板。
1298+
1299+
使用 `/path/to/config.json` 作为您的本地配置文件,运行:
1300+
1301+
```bash
1302+
docker run \
1303+
-d --name godns --restart=always \
1304+
-v /path/to/config.json:/config.json \
1305+
-p 9000:9000 \
1306+
timothyye/godns:latest
1307+
```
1308+
1309+
要使用 `YAML` 配置文件运行:
1310+
1311+
```bash
1312+
docker run \
1313+
-d --name godns \
1314+
-e CONFIG=/config.yaml \
1315+
--restart=always \
1316+
-v /path/to/config.yaml:/config.yaml \
1317+
-p 9000:9000 \
1318+
timothyye/godns:latest
1319+
```
1320+
1321+
### 作为 Windows 服务
1322+
1323+
1. 下载最新版本的 [NSSM](https://nssm.cc/download)
1324+
1325+
2. 在管理员提示符中,从下载 NSSM 的文件夹(例如 `C:\Downloads\nssm\` **win64**)运行:
1326+
1327+
```
1328+
nssm install YOURSERVICENAME
1329+
```
1330+
1331+
3. 按照界面配置服务。在"Application"选项卡中只需指明 `godns.exe` 文件的位置。您还可以选择在"Details"选项卡上定义描述,并在"I/O"选项卡上定义日志文件。点击"Install service"按钮完成。
1332+
1333+
4. 该服务现在将与 Windows 一起启动。
1334+
1335+
注意:您可以通过运行以下命令卸载服务:
1336+
1337+
```
1338+
nssm remove YOURSERVICENAME
1339+
```
1340+
1341+
## 贡献
1342+
1343+
欢迎贡献!请随时提交 Pull Request。
1344+
1345+
### 设置前端开发环境
1346+
1347+
要求:
1348+
1349+
- Node.js `18.19.0` 或更高版本
1350+
- Go `1.17` 或更高版本
1351+
1352+
前端项目使用 [Next.js](https://nextjs.org/)[daisyUI](https://daisyui.com/) 构建。要启动开发环境,运行:
1353+
1354+
```bash
1355+
cd web
1356+
npm ci
1357+
npm run dev
1358+
```
1359+
1360+
### 构建前端
1361+
1362+
要构建前端,运行:
1363+
1364+
```bash
1365+
cd web
1366+
npm run build
1367+
```
1368+
1369+
### 运行前端
1370+
1371+
要运行前端,运行:
1372+
1373+
```bash
1374+
cd web
1375+
npm run start
1376+
```
1377+
1378+
## 特别感谢
1379+
1380+
<img src="https://i.imgur.com/xhe5RLZ.jpg" width="80px" align="right" />
1381+
1382+
感谢 JetBrains 使用[免费开源许可证](https://www.jetbrains.com/community/opensource/)赞助此项目。
1383+
1384+
> 我喜欢 GoLand,它是一个令人惊叹且高效的工具。

0 commit comments

Comments
 (0)