使用教程(Fachost)
本頁帶你完成:快速上手 → 取得公網 IPv4/IPv6 → SSH 連線 → 初始化(Debian 12)→ DDNS(Cloudflare / DuckDNS)→ NAT 端口轉發 → NAT64 / DNS64(進階)→ 送工單。
NAT 方案:提供共用 IPv4 + 外部端口;部分機型含原生 IPv6。
快速上手
- 登入 → 用戶中心 → 我的產品與服務 → 進入服務詳情。
- 在服務頁可看到:Overview、Network、VNC、NAT 分頁。
必要時可透過面板進行 Reinstall(作業系統資料不保存,請先備份)。
登入與進入服務詳情
用戶中心 → 我的產品與服務 → 點進要操作的服務。

內網 / 公網 IP 判讀
控制台 Network 分頁顯示的是 內網 IP(例:192.168.x.x
)。這個位址僅用於主機在內部網段通訊與 NAT 轉發配置。
查詢對外 IPv4/IPv6:
curl -4 ip.sb # 顯示外部 IPv4(建議 -4)
curl -6 ip.sb # 顯示外部 IPv6(若有)
NAT 方案連線服務時仍需加上 外部端口(見下一節)。
NAT 端口轉發面板
在 NAT 分頁新增對映:為內部服務(例:192.168.3.103:22
)指派一個 外部連接埠(例:27892
)。外部連線請用 外部IP:外部端口
。
# 連線示例
ssh -p 27892 root@<你的外部IPv4>
NAT 端口轉發面板
新增對映:產品自動獲取內網 IP,只需指派外部連接埠(例 27892)→ 內部連接埠(例 22)。

SSH 連線(FinalShell / Termius / 命令列)
※ NAT 方案:SSH 端口不一定是 22,請以 NAT 面板顯示的「外部端口」為準。
命令列(macOS / Linux / WSL)
ssh -p <外部端口> root@<外部IPv4>
# 範例:ssh -p 27892 [email protected]
常用初始化指令(Debian 12)
# 系統更新與常用工具
apt update && apt upgrade -y
apt install -y curl wget sudo lsof htop net-tools vim
# (可選)Ookla speedtest(官方來源)
apt install -y gnupg
mkdir -p /etc/apt/keyrings
curl -fsSL https://packagecloud.io/ookla/speedtest-cli/gpgkey | gpg --dearmor | tee /etc/apt/keyrings/ookla-speedtest.gpg >/dev/null
echo "deb [signed-by=/etc/apt/keyrings/ookla-speedtest.gpg] https://packagecloud.io/ookla/speedtest-cli/debian/ bookworm main" > /etc/apt/sources.list.d/speedtest.list
apt update && apt install -y speedtest
speedtest
DDNS(Cloudflare|免安裝套件)
用固定域名對準你的可連線 IP。NAT 仍需加外部端口(例:ssh -p 27892 [email protected]
)。
- Cloudflare 建立 API Token(權限:
Zone.DNS:Edit
+Zone.Zone:Read
),記下 Zone ID 與 記錄名稱(如vps.example.com
)。 - 建立腳本
/usr/local/bin/cf-ddns.sh
並貼入:
#!/usr/bin/env bash
set -euo pipefail
CF_API_TOKEN="替換成你的token"
ZONE_ID="替換成你的zone id"
RECORD_NAME="vps.example.com"
IPV4="$(curl -4 -fsS ip.sb || true)"
IPV6="$(curl -6 -fsS ip.sb || true)"
update_record(){
local TYPE="$1" VALUE="$2"
[ -z "$VALUE" ] && return 0
REC_JSON="$(curl -fsS -H "Authorization: Bearer ${CF_API_TOKEN}" \"https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/dns_records?type=${TYPE}&name=${RECORD_NAME}\")"
REC_ID="$(echo "$REC_JSON" | grep -oE '\"id\":\"[a-z0-9]+\"' | head -n1 | cut -d: -f2 | tr -d '\"')"
PAYLOAD='{ "type": "'"$TYPE"'", "name": "'"$RECORD_NAME"'", "content": "'"$VALUE"'", "ttl": 120, "proxied": false }'
if [ -n "$REC_ID" ]; then
curl -fsS -X PUT -H "Authorization: Bearer ${CF_API_TOKEN}" -H "Content-Type: application/json" \"https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/dns_records/${REC_ID}\" --data "$PAYLOAD" >/dev/null
else
curl -fsS -X POST -H "Authorization: Bearer ${CF_API_TOKEN}" -H "Content-Type: application/json" \"https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/dns_records\" --data "$PAYLOAD" >/dev/null
fi
}
update_record A "$IPV4"
update_record AAAA "$IPV6"
chmod +x /usr/local/bin/cf-ddns.sh
# /etc/systemd/system/cf-ddns.service
[Unit]
Description=Cloudflare DDNS updater
After=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/cf-ddns.sh
# /etc/systemd/system/cf-ddns.timer
[Unit]
Description=Run Cloudflare DDNS updater every 5 minutes
[Timer]
OnBootSec=1min
OnUnitActiveSec=5min
Unit=cf-ddns.service
[Install]
WantedBy=timers.target
systemctl daemon-reload
systemctl enable --now cf-ddns.timer
systemctl list-timers | grep cf-ddns
DDNS(DuckDNS|最簡)
cat >/usr/local/bin/duck.sh <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
DOMAIN="yourname" # yourname.duckdns.org
TOKEN="你的token"
curl -fsS "https://www.duckdns.org/update?domains=${DOMAIN}&token=${TOKEN}&ip="
EOF
chmod +x /usr/local/bin/duck.sh
(crontab -l 2>/dev/null; echo '*/5 * * * * /usr/local/bin/duck.sh >/dev/null 2>&1') | crontab -
NAT64 / DNS64(單機自用|共用 IPv4 出口)
適用情境:本機只有一個全球 IPv6,但同時有一條「共用 v4 出口」(例如 NAT44/CGNAT)。目標是讓本機用 IPv6 也能無感訪問純 IPv4 站。
步驟 0:安裝編譯環境 & 載入內核模組
# 建議先安裝 headers(DKMS 需要)
apt update
apt install -y dkms build-essential linux-headers-$(uname -r)
# 安裝 Jool(含 jool-dkms 會自動編譯模組)
apt install -y jool-dkms jool-tools
# 載入 jool 模組並檢查
modprobe jool
lsmod | grep jool || echo "❌ jool 模組未載入"
# 開機自動載入(持久)
printf "jool\n" | tee /etc/modules-load.d/jool.conf >/dev/null
步驟 1:開啟 IPv6 轉發
sysctl -w net.ipv6.conf.all.forwarding=1
cat >/etc/sysctl.d/99-nat64.conf <<'EOF'
net.ipv6.conf.all.forwarding=1
EOF
sysctl --system
步驟 2:建立 NAT64 實例(RFC6052 前綴)
jool instance add default --netfilter --pool6 64:ff9b::/96
步驟 3:指定 pool4(自動抓出口 v4)
IFACE=eth0
IPV4_EGRESS=$(ip -4 addr show dev "$IFACE" | awk '/inet /{print $2}' | cut -d/ -f1)
[ -z "$IPV4_EGRESS" ] && echo "找不到 $IFACE 的 IPv4,請確認有共用 v4 出口" && exit 1
jool -i default pool4 flush
jool -i default pool4 add ${IPV4_EGRESS}/32
步驟 4:掛鉤 Netfilter(本機自用重點:OUTPUT)
ip6tables -t mangle -A OUTPUT -d 64:ff9b::/96 -j JOOL --instance default
iptables -t mangle -A PREROUTING -s ${IPV4_EGRESS}/32 -j JOOL --instance default
步驟 5:設定 DNS64(擇一)
- Cloudflare:2606:4700:4700::64 / ::6464
- Google:2001:4860:4860::64 / ::6464
resolvectl dns ${IFACE} 2606:4700:4700::64 2606:4700:4700::6464
resolvectl flush-caches
驗證
getent ahosts ipv4only.arpa | head
curl -6 -I http://ipv4only.arpa
jool -i default stats display
常見問題
- JOOL target not found? 確認
modprobe jool
成功,且jool-dkms
安裝無錯;必要時dkms status
檢查。 - 使用 nftables? 可改用 Jool 的 nft hook;或切回 iptables-legacy。
- 完全沒有 IPv4 出口? 無法在本機完成 NAT64,需上游 NAT64/464XLAT。
遇到問題如何送工單
路徑:用戶中心 → 我的工單 → 提交工單。
請附:服務 ID、外部 IP、外部端口(NAT)、動作時間、錯誤訊息/截圖,客服會在 24 小時內回覆。