Debian 系統通過 rp-pppoe 套件支援 PPPoE 協議。安裝並配置步驟如下:
# apt-get update
# apt-get install pppoe pppoeconf
執行 pppoeconf 文字模式向導,系統會自動偵測連接 ADSL Modem 的網卡(通常為 eth0),依提示輸入 ISP 提供的用戶名、密碼、DNS 等參數。完成後,使用 pon dsl-provider 即可建立連線,poff 則用於斷開。
生成的配置文件位於 /etc/ppp/peers/dsl-provider,可手動微調。
前往 3322.org 註冊並申請一個二級域名(如 yourname.3322.org)。
從官網下載 ez-ipupdate 客戶端,解壓至 /usr/local/bin/ez-ipupdate。
利用 /etc/ppp/ip-up.d/ 目錄下的腳本機制:PPP 連線建立時,該目錄下所有可執行腳本會自動運行。創建腳本 02nat-ddns(需 chmod 755):
#!/bin/bash
IPTABLES="/sbin/iptables"
# 載入 NAT 模組
modprobe iptable_nat
# 清空現有規則
$IPTABLES -t filter -F INPUT
$IPTABLES -t filter -F OUTPUT
$IPTABLES -t filter -F FORWARD
$IPTABLES -t filter -X
$IPTABLES -t nat -F PREROUTING
$IPTABLES -t nat -F OUTPUT
$IPTABLES -t nat -F POSTROUTING
$IPTABLES -t nat -X
$IPTABLES -t mangle -F PREROUTING
$IPTABLES -t mangle -F OUTPUT
$IPTABLES -t mangle -X
# 設定 NAT(假設 ppp0 為外網接口)
$IPTABLES -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# 開啟 IP 轉發
echo 1 > /proc/sys/net/ipv4/ip_forward
# 動態域名更新
/usr/local/bin/ez-ipupdate -h yourname.3322.org -i ppp0 -S qdns -u username:password
參數說明: -h 指定域名,-i 指定監聽接口,-S qdns 選擇 3322 服務商協議,-u 提供帳號密碼。
每次 ADSL 重撥號獲取新公網 IP 時,PPP 進程自動觸發腳本,同時完成 NAT 共享上網與動態域名解析更新,無需人工干預。