NATMap部署Web服务

下载

从项目发布页下载匹配的版本: https://github.com/heiher/natmap/releases

上传至/home/natmap

创建脚本

创建文件/home/natmap/wdns写入如下内容,并补充必要的变量值:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/sh

ZONE=''
RECORD=''
RULE=''
EMAIL=''
AUTH=''
DOMAIN=''

ADDR=${1}
PORT=${2}

# DNS
while true; do
curl -X PUT "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records/${RECORD}" \
-H "X-Auth-Email: ${EMAIL}" \
-H "Authorization: Bearer ${AUTH}" \
-H "Content-Type:application/json" \
--data "{\"type\":\"A\",\"name\":\"${DOMAIN}\",\"content\":\"${ADDR}\",\"ttl\":60,\"proxied\":false}" > /dev/null 2> /dev/null
if [ $? -eq 0 ]; then
break
fi
done

# Origin rule
while true; do
curl -X PUT "https://api.cloudflare.com/client/v4/zones/${ZONE}/rulesets/${RULE}" \
-H "Authorization: Bearer ${AUTH}" \
-H "Content-Type:application/json" \
--data "{\"rules\":[{\"expression\":\"(http.host eq \\\"${DOMAIN}\\\")\",\"description\":\"natmap\",\"action\":\"route\",\"action_parameters\":{\"origin\":{\"port\":${PORT}}}}]}" > /dev/null 2> /dev/null
if [ $? -eq 0 ]; then
break
fi
done

ZONE

​ 1.域名里面的区域ID
image-20250613213141176

RECORD

1
2
curl -X GET "https://api.cloudflare.com/client/v4/zones/YOUR_ZONE_ID/dns_records" -H "x-auth-email: YOUR_AUTH_EMAIL" -H "x-auth-key: YOUR_AUTH_KEY"

YOUR_ZONE_ID:见2.1

YOUR_AUTH_EMAIL:见2.4

YOUR_AUTH_KEY:见2.5

示例:

1
curl -X GET "https://api.cloudflare.com/client/v4/zones/647de6335d489b0c2d27fc2e6bd208xx/dns_records" -H "x-auth-email: [email protected]" -H "x-auth-key: 127e1ca41fd6118af3a0f94ae59a524ceefxx"

返回结果的id字段

RULE

查询规则集

1
2
3
curl -X GET "https://api.cloudflare.com/client/v4/zones/YOUR_ZONE_ID/rulesets" ^
-H "x-auth-email: YOUR_AUTH_EMAIL" ^
-H "x-auth-key: YOUR_AUTH_KEY"

找出下来规则ID

image-20250613222507980

如果没有

image-20250613222845002

重复查询规则集步骤

EMAIL

cloud flare 登录的邮箱

AUTH

image-20250613213512056

DOMAIN

xxx.jthome.dpdns.org

执行脚本

修改名称

给予执行权限

执行脚本

1
/home/natmap/natmap -d  -s turn.cloudflare.com -h qq.com -b 28081 -t 192.168.31.7 -p 8000 -e /home/natmap/wdns

解释

  • -s turn.cloudflare.com: 指定 STUN 服务器为 turn.cloudflare.com
  • -h qq.com: 当访问 qq.com 时进行 DNS 映射。
  • -b 28081: 在本机绑定并监听 TCP/UDP 28081 端口。
  • -t 192.168.31.7: 将流量转发到该内网 IP。
  • -p 8000: 并转发到该端口。
  • --keepalive-interval 60 间隔时间为 60 秒