Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux ADSL 撥號與網路共享完整設定指南

編輯:Linux 教學

場景說明

單一 Linux 主機透過 ADSL (PPPoE) 撥號上網,第二張網卡連接區域網路交換機,為內網多台電腦提供網際網路存取(NAT 共享)。適用於無獨立路由器的中小環境。

一、PPPoE 撥號設定

1. 安裝 rp-pppoe

# CentOS/RHEL/Fedora
yum install rp-pppoe

# Debian/Ubuntu
apt-get install pppoe pppoeconf

2. 執行設定精靈

# /usr/sbin/adsl-setup
# 依提示輸入:
# - 使用者名稱(ISP 提供)
# - 密碼
# - 介面名稱(連接 ADSL Modem 的網卡,如 eth0)
# - DNS 設定(選 server 自動取得或手動指定)
# - 防火牆規則(建議選 STANDALONE 或 NONE,自行配置 iptables)
# - 允許一般使用者控制連線(yes/no)

3. 啟動/停止連線

# /usr/sbin/adsl-start   # 撥號
# /usr/sbin/adsl-stop    # 掛斷
# /usr/sbin/adsl-status  # 查看狀態

4. 開機自動撥號

# chkconfig adsl on   # SysVinit
# systemctl enable adsl   # systemd(服務名可能為 pppoe@eth0)

二、網路介面規劃

介面角色IP 設定
eth0WAN (連 ADSL Modem)PPPoE 動態取得公網 IP
eth1LAN (連交換機)靜態 IP,如 192.168.10.1/24

設定 eth1 靜態 IP

# /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=static
IPADDR=192.168.10.1
NETMASK=255.255.255.0
ONBOOT=yes

三、啟用 IP Forward 與 NAT

# 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  # 通用

四、內網用戶端設定

  • IP:192.168.10.x
  • Netmask:255.255.255.0
  • Gateway:192.168.10.1 (Linux 伺服器 eth1)
  • DNS:ISP 提供或 8.8.8.8 / 114.114.114.114

五、進階:DHCP 伺服器自動分派 IP

# 安裝
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

七、現代替代方案

  • NetworkManager:nmcli con add type pppoe ifname eth0 username USER password PASS 統一管理。
  • systemd-networkd + pppd:無圖形環境的極簡部署。
  • 購買廉價路由器:硬體 NAT 效能更好、功耗更低、設定更簡單,建議生產環境優先考慮。

總結

Linux 作為 PPPoE 撥號網關,核心步驟為:rp-pppoe 撥號 → ip_forward=1 → iptables MASQUERADE → 內網設定閘道/DNS。搭配 DHCP 伺服器可完整替代家用路由器功能,適合學習網路原理或臨時應急場景。

Copyright © Windows教程網 All Rights Reserved