單一 Linux 主機透過 ADSL (PPPoE) 撥號上網,第二張網卡連接區域網路交換機,為內網多台電腦提供網際網路存取(NAT 共享)。適用於無獨立路由器的中小環境。
# CentOS/RHEL/Fedora
yum install rp-pppoe
# Debian/Ubuntu
apt-get install pppoe pppoeconf
# /usr/sbin/adsl-setup
# 依提示輸入:
# - 使用者名稱(ISP 提供)
# - 密碼
# - 介面名稱(連接 ADSL Modem 的網卡,如 eth0)
# - DNS 設定(選 server 自動取得或手動指定)
# - 防火牆規則(建議選 STANDALONE 或 NONE,自行配置 iptables)
# - 允許一般使用者控制連線(yes/no)
# /usr/sbin/adsl-start # 撥號
# /usr/sbin/adsl-stop # 掛斷
# /usr/sbin/adsl-status # 查看狀態
# chkconfig adsl on # SysVinit
# systemctl enable adsl # systemd(服務名可能為 pppoe@eth0)
| 介面 | 角色 | IP 設定 |
|---|---|---|
| eth0 | WAN (連 ADSL Modem) | PPPoE 動態取得公網 IP |
| eth1 | LAN (連交換機) | 靜態 IP,如 192.168.10.1/24 |
# /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.10.1
NETMASK=255.255.255.0
ONBOOT=yes
# 1. 開啟核心轉發
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
# 2. 設定 iptables NAT(假設 ppp0 為撥號介面)
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# 3. 允許轉發流量
iptables -A FORWARD -i eth1 -o ppp0 -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
# 4. 儲存規則
service iptables save # CentOS 6
iptables-save > /etc/sysconfig/iptables # 通用
# 安裝
yum install dhcp
# /etc/dhcp/dhcpd.conf
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.200;
option routers 192.168.10.1;
option domain-name-servers 8.8.8.8, 114.114.114.114;
default-lease-time 600;
max-lease-time 7200;
}
# 啟動
systemctl enable dhcpd
systemctl start dhcpd
| 現象 | 檢查項目 |
|---|---|
| 撥號成功但內網無法上網 | 1. cat /proc/sys/net/ipv4/ip_forward 是否為 1;2. iptables NAT 規則;3. 內網閘道指向 eth1;4. DNS 解析 |
| 斷線後不自動重撥 | 檢查 /etc/ppp/peers/adsl 中 persist 選項;或用 cron 監控 adsl-status |
| MTU 問題(網頁打不開、郵件收發失敗) | PPPoE MTU 通常 1492,在 /etc/ppp/peers/adsl 加入 mtu 1492;或 iptables MSS clamping:iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu |
nmcli con add type pppoe ifname eth0 username USER password PASS 統一管理。Linux 作為 PPPoE 撥號網關,核心步驟為:rp-pppoe 撥號 → ip_forward=1 → iptables MASQUERADE → 內網設定閘道/DNS。搭配 DHCP 伺服器可完整替代家用路由器功能,適合學習網路原理或臨時應急場景。