享技水工坊 TechX Studio,資訊.音樂人同學會 –大家都想知道的「Rocky Linux 8.10 單網卡如何有趣的同時跑內網如(192.168.50.3) 與外網如 (114.35.70.6) 的相關指令 ?」

重開機建議要執行這 5 個指令以取得固網如(114.35.70.6)及區網如(192.168.50.3)

[root@RockyLinux8WP ~]#/usr/sbin/pppd call hinet

[root@RockyLinux8WP ~]#ip route del default via 192.168.50.1 dev enp6s0

[root@RockyLinux8WP ~]#ip route add default dev ppp0

[root@RockyLinux8WP ~]#firewall-cmd –zone=public –add-interface=ppp0 –permanent

[root@RockyLinux8WP ~]# ip addr show ppp0

1️⃣ sudo ip route del default via 192.168.50.1 dev enp6s0

用途功能:刪掉原本的「預設路由」,這個路由是走區網的 ASUS RT-AX68U 路由器 (192.168.50.1)。

就像你家有兩條出口,一條是小巷子 (LAN),一條是大馬路 (PPPoE 公網),系統開機時會自動選小巷子當主要出口,結果外部流量都跑錯路,這個指令就是把「錯的出口」拆掉,避免流量繞回區網 NAT


NAT 原文

Network Address Translation (NAT) 是一種網路技術,用來在封包通過路由器或防火牆時,修改 IP 封包的來源或目的位址,它的主要用途是讓多台內部主機共用一個公共 IP 位址,並提升網路安全性。


NAT 說明

NAT 就像一個「翻譯員」:

  • 家裡有很多電腦,但對外只有一個門牌號碼(公共 IP)。
  • 當你上網時,NAT 會把你家電腦的「房間號碼」換成門牌號碼,讓外面的人只看到門牌,不會知道你家裡有幾台電腦。
  • 如果有人要寄信給你家某個人(例如連線到伺服器),NAT 會把信件送到正確的房間

簡單來說,NAT 幫助:

  • 省 IP:多台電腦共用一個公共 IP。
  • 保護隱私:外部看不到內部真實位址。
  • 方便管理:可以控制哪些服務能被外部存取。

2️⃣ sudo ip route add default dev ppp0

用途功能:新增一條新的「預設路由」,指定所有外部流量都走 PPPoE (ppp0)

這就像告訴系統:「以後要出門,請走大馬路 (ppp0),不要再走小巷子」,這樣外部訪客才能透過固定 IP 114.35.70.6 找到你的伺服器


3️⃣ sudo firewall-cmd --zone=public --add-interface=ppp0 --permanent

用途功能:把 PPPoE 介面 (ppp0) 加入防火牆的 public zone,並且永久保存。

防火牆就像門口的保全,你要告訴保全:「這個新大門 (ppp0) 也要管,並且允許 HTTP/HTTPS/SSH 進來」,如果沒加,外部雖然能找到門牌號碼,但保全不認這個門,訪客就進不來。


4️⃣ ip addr show ppp0

用途功能:檢查 PPPoE 介面是否真的拿到固定 IP。

這就像確認門口的招牌是不是已經掛上「114.35.70.6」。如果沒有這個招牌,外部訪客就算走大馬路也找不到你家。

✅結果

重開機後補上這四個指令,就能恢復內外網都通

  1. 刪掉錯的出口 (LAN default route)。
  2. 加上正確出口 (ppp0 default route)。
  3. 防火牆認得新大門 (ppp0)。
  4. 確認門牌號碼 (固定 IP)。

✅四個指令整合成開機自動執行腳本

建立一個腳本 /usr/local/bin/pppoe-autofix.sh

#!/bin/bash
# PPPoE 自動撥號 + 路由修正腳本

# Step 1: 撥號 (確保 ppp0 起來)
pppd call hinet &

# Step 2: 等待 ppp0 介面建立
sleep 10

# Step 3: 移除原本 LAN 預設路由
ip route del default via 192.168.50.1 dev enp6s0 2>/dev/null

# Step 4: 新增 PPPoE 預設路由
ip route add default dev ppp0

# Step 5: 防火牆綁定 ppp0 並 reload
firewall-cmd --zone=public --add-interface=ppp0 --permanent
firewall-cmd --reload

設定可執行:

[root@RockyLinux8WP ~]#sudo chmod +x /usr/local/bin/pppoe-autofix.sh

📋驗證流程

重開機後檢查:

[root@RockyLinux8WP ~]# ip addr show ppp0
[root@RockyLinux8WP ~]# ip route
[root@RockyLinux8WP ~]# curl ifconfig.me

應該會看到:

  • ppp0 有固定 IP (114.35.70.6)
  • 預設路由走 ppp0
  • LAN (192.168.50.3) 仍然存在

很多人自架網站主機時會遇到一個經典難題:

  • 我想要讓伺服器拿到 ISP 提供的固定公網 IP,讓外部訪客能直接連到我的網站
  • 同時,我又希望伺服器在如 ASUS RT-AX68U 區網(LAN) 裡有一個區網 IP,方便設定防火牆及 Port Forwarding(通訊埠轉發)

問題如數據機 NAT 及 DHCP 要不要關?PPPoE 撥號要用 nmcli 還是傳統 pppd?路由表會不會把 LAN 弄斷?防火牆要怎麼設定?

這篇文章就是完整紀錄我在 Rocky Linux 8 上,使用 單一網卡(enp6s0),同時跑 PPPoE 固定IP (114.35.70.6) 與 區網IP (192.168.50.3) 的過程。


第一章:數據機 Bridge 模式與 NAT 的抉擇

  • 數據機如果開 NAT,就會變成「半橋接」,後端設備拿不到真正的公網 IP。
  • 建議把數據機設成 Bridge 模式,並且關掉 NAT、DHCP、防火牆。
  • 這樣 Rocky Linux 8.10 就能直接透過 PPPoE 撥號,拿到 ISP 分配的固定 IP(114.35.70.6)。

第二章:建議用傳統 pppd

這樣會建立 ppp0 介面,拿到固定 IP。

傳統 pppd 方式

建立 /etc/ppp/peers/hinet:

plugin rp-pppoe.so

enp6s0

user “77542*612@ip.hinet.net”

defaultroute

usepeerdns

persist

noauth

然後在 /etc/ppp/pap-secrets 與 /etc/ppp/chap-secrets 加入:

“77542*612@ip.hinet.net” * “rdhx*mdur”

撥號:

[root@RockyLinux8WP ~]#sudo pppd call hinet


第三章:成功拿到固定IP

確認:

[root@RockyLinux8WP ~]#ip addr show ppp0

輸出:

[root@RockyLinux8WP ~]#inet 114.35.70.6 peer 168.95.98.254/32 scope global ppp0

伺服器已經有了真正的公網 IP。


第四章:路由表的調整

[root@RockyLinux8WP ~]#sudo ip route del default via 192.168.50.1 dev enp6s0

[root@RockyLinux8WP ~]#sudo ip route add default dev ppp0

再測試:

[root@RockyLinux8WP ~]#curl ifconfig.me

結果回傳連線到網路時所使用的公共 IP 左測顯示:

本站固定 IP 114.35.70.6

第五章:防火牆設定

確保 ppp0 在防火牆 zone:

[root@RockyLinux8WP ~]#sudo firewall-cmd –zone=public –add-interface=ppp0 –permanent

[root@RockyLinux8WP ~]#sudo firewall-cmd –reload

確認:

[root@RockyLinux8WP ~]#sudo firewall-cmd –list-all

輸出顯示 ssh、http、https 都已經放行。

第六章:SSH 與 WinSCP 測試

[root@RockyLinux8WP ~]#ss -tlnp | grep 22

顯示:

LISTEN 0 128 0.0.0.0:22

LISTEN 0 128 0.0.0.0:2222

代表 sshd 在所有介面監聽 22 與 2222 port。


外部測試:

成功取得固定 IP 114.35.70.6


第七章:區網與外網共存

  • 區網電腦 (192.168.50.225) 可以透過 192.168.50.3 連到 Rocky Linux。
  • 外部訪客可以透過 114.35.70.6 連到 Rocky Linux。
  • 這就是單網卡同時跑 LAN 與 PPPoE 的完美狀態。

第八章:WordPress 6.9 .1 架站

有了固定 IP,我們就能在 Rocky Linux 上安裝 WordPress 6.9.1:

[root@RockyLinux8WP ~]#sudo dnf install httpd mariadb-server php php-mysqlnd

[root@RockyLinux8WP ~]#sudo systemctl enable –now httpd mariadb

下載 最新 WordPress 6.9.1:

[root@RockyLinux8WP ~]#wget https://wordpress.org/latest.tar.gz

[root@RockyLinux8WP ~]#tar -xvzf latest.tar.gz

[root@RockyLinux8WP ~]#sudo mv wordpress /var/www/html/


設定資料庫、修改 wp-config.php,然後瀏覽器打開 https://114.35.70.6,就能看到 WordPress 6.9.1 安裝畫面。

第九章:生動有趣的過程回顧

  • 數據機 NAT 沒關 → 拿不到公網 IP
  • 路由表沒改 → 外部出口還是走 ASUS NAT。
  • 防火牆沒放行 → WinSCP 連不上。

經過這一些有趣的過程,讓我們更懂網路的底層運作。


第十章:給讀者的建議

  • 如果你要自架網站主機,固定 IP 是必須的。
  • 建議數據機設成橋接(Bridge)
  • PPPoE 撥號後要檢查路由表,確保預設路由走 ppp0。
  • 防火牆要記得放行 ppp0,不然外部連不進來。
  • 最後 WordPress 6.9.1 架站只是開始,安全性與維護才是長期挑戰。

小編小語: PPP0 小故事

魔法水管與門牌號碼

📖阿寬與魔法水管

在一個叫「網路村」的地方,住著一位叫阿寬的年輕人。

第一章:混亂的水管

以前,網路村的每戶人家都有一條直接連到「網路海」的大水管,但問題是:

  • 水管太多太亂,經常接錯
  • 不知道誰用了多少水
  • 有人偷接別人的水管

村長很頭痛:「這樣下去,網路海的水會亂成一團!」

第二章:智慧發明

有一天,智慧老人提出了「魔法水管系統」(PPPoE)

  1. 第一層:普通水管(乙太網路)
  • 每條街鋪設一條大水管
  • 所有人家都連到這條街管上
  1. 第二層:魔法計量表(PPPoE 客戶端)
  • 每戶門口裝上一個魔法計量表
  • 要用水時,先對計量表說通關密語
  1. 魔法水廠(PPPoE 伺服器)
  • 水廠有神奇的認證系統
  • 只有正確的「用戶名+密碼」能開啟專用水流

第三章:阿寬的初體驗

阿寬搬新家後,第一次使用:

  1. 探索階段:他對水管喊:「有人在嗎?我想上網!」
    水廠回應:「我在這裡!我是中華水廠!」
  2. 認證階段:阿寬說出魔法密語:「用戶名:阿寬家,密碼:123456」
    水廠檢查:「密碼正確!為你開啟專屬水道!」
  3. 建立隧道一條發光的魔法水管出現了!
  • 外表看起來跟鄰居的水管一樣
  • 但內部是阿寬專用的加密通道

暢快用水:現在阿寬可以

  • 看網路電視(水流穩定)
  • 玩線上遊戲(低延遲)
  • 同時多人上網(水管會自動分配)

第四章:意外的好處

有一天,網路村發生了大事件

  • 隔壁老王想偷接阿寬的水管,但魔法計量表立即阻擋!
  • 村長要統計用水量,魔法系統自動生成報表!
  • 水管維修時,只要重新念密語就能恢復,不用重新鋪管!

第五章:現代啟示

阿寬現在明白了:

「PPPoE就像給網路裝上了智慧水錶 + 專用隧道,外表大家共用一條街管 (乙太網路),但內裡每戶都有自己獨立的、安全的、可管理的魔法水道 PPP 點對點協定)。」

小知識補充

  • 很多家庭寬頻(如ADSL、光纖)都使用 PPPoE
  • 每次重開數據機時,就是在重新進行「魔法認證」
  • 那個「連線帳號密碼」就是開啟魔法水管的鑰匙

這個系統讓 ISP 能管理數百萬用戶,就像水公司能管理整個城市用水一樣,既有效率又安全!🚰✨

這篇文章完整紀錄了我在 Rocky Linux 8 上,用單網卡同時跑 LAN 與 PPPoE 固定 IP 的過程,從數據機設定、PPP 撥號、路由表調整

結論

這份 systemd 服務會在開機時:

  1. 自動執行 PPPoE 撥號 (pppd call hinet)
  2. 等待 ppp0 起來後自動修正路由
  3. 確保防火牆綁定 ppp0
  4. 保留 LAN (192.168.50.3) 同時存在

很重要:先斷掉舊連線,避免殘留

在 Linux 系統裡,如果你要「斷掉舊的 ppp0 連線,避免殘留」,正確的做法是透過 網路管理工具或 pppd 來停止連線,而不是直接刪檔案。以下是安全的操作流程:

🔹斷線指令

  1. 使用 ip 指令 ip link set ppp0 down 這會把 ppp0 介面關閉。
  2. 使用 ifconfig (如果系統有安裝 net-tools) ifconfig ppp0 down
  3. 使用 pppd 如果是透過 pppd 建立的撥號連線,可以用: killall pppd 或者找到 pppd 的 PID: ps -ef | grep pppd kill <PID>

🔹查詢是否斷線成功

  1. 查看網路介面 ip addr show 如果 ppp0 不再顯示,代表已經斷線。
  2. 檢查路由表 ip route 確認 ppp0 的路由是否消失。
  3. 檢查連線狀態 ifconfigip link 看 ppp0 是否還存在。

✅ 建議流程

  1. 先用 ip addr show 確認 ppp0 是否存在。
  2. 如果存在,用 ip link set ppp0 downkillall pppd 斷線。
  3. 再次用 ip addr showip route 確認已經清除。

附錄建議備份 WordPress 6.9.1 方法及7 分割區架構圖_Rocky Linux 8.10 + WordPress 6.9.1

WordPress 6.9.1-[root@RockyLinux8WP ~]#tar -czvf /home/wordpress_files_$(date +%F).tar.gz /var/www/html

WordPress 6.9.1 SQL 資料庫-[root@RockyLinux8WP ~]#
mariadb-dump -u root -p’sbisn896s93s743′ wordpress > /home/wordpress_backup_$(date +%F).sql

7 分割區架構圖_Rocky Linux 8.10 + WordPress 6.9.1

7 分割區架構圖_Rocky Linux 8.10 + WordPress 6.9.1



交換心得,發表迴響