2023年2月18日 星期六

Mapleboard MP510-50 測試 (十) : 用 nmcli 設定 PPPoE 撥接上網

今天為了 228 連假補班, 晚上回到鄉下家開始動手改用 nmcli 來設定 Mappleboard 的 PPPoE 撥接上網, 作法參考用 pppoeconf 套件來設定卻失敗的前一篇文章 :


我將原廠中鼎黃先生的建議作法轉貼如下 :

"盡量避免用 pppoeconf 去安裝,太複雜,成功率不高。即使一時安裝成功,經過一段時間,網路有變動時,要重新調整,早就忘光光,痛不欲生。
請特別記住,MP510-50的網路是用 network-manager。network-manager已經是Linux 世界中的主流了。絕對值得花時間把它搞清楚來,尤其是它的命令模式 nmcli 。
一、將 pppoeconf 套件移除。
二、確定 /etc/network/interfaces 沒動到。如果有,則重裝 network-manager。
三、先熟悉/暖身一下 nmcli 。
四、依照下面博文安裝PPPoE:
http://sakananote2.blogspot.com/2021/05/nmcli-network-manager-pppoe-ip.html?m=1
五、請把這些經驗分享到風葉板論壇上,謝謝:
https://forum.mapleboard.org/forum/mp510/"


1. 移除 pppoeconf 套件 :

首先用下列指令將前一篇所安裝的 pppoeconf 移除 :

sudo apt-get --purge remove pppopeconf  


2. 復原網路界面設定檔 /etc/network/interfaces :

用 nano 載入 /etc/network/interfaces 檔發現裡面有 pppoeconf 的資料, 可見原設定檔已被修改, 我把網路線從光世代數據機後面移回 ASUS 無線基地台後面, 結果無法連網, 就是被 pppoeconf 設定值影響的關係.

one@LX2438:~$ sudo nano /etc/network/interfaces   

將 pppoefconf 所作的設定全部刪除, 只留下如下設定值 :

source /etc/network/interfaces.d/*


auto eth0
iface eth0 inet dhcp

按 CTRL+O 存檔後按 CTRL+ X 跳出, 然後用下列指令重啟網路 :

one@LX2438:~$ sudo /etc/init.d/networking restart   
Restarting networking (via systemctl): networking.service

用 ifconfig 檢查果然就能連上網路了 :

one@LX2438:~$ ifconfig  
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.50.107  netmask 255.255.255.0  broadcast 192.168.50.255
        inet6 fe80::1472:2eff:feda:e73c  prefixlen 64  scopeid 0x20<link>
        ether 16:72:2e:da:e7:2c  txqueuelen 1000  (Ethernet)
        RX packets 405  bytes 203648 (203.6 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 329  bytes 154327 (154.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 14  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 62477  bytes 4983981 (4.9 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 62477  bytes 4983981 (4.9 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

這樣基本上網路就恢復到安裝 pppoeconf 之前的原樣了.

如果 network-manager 受損, 修補方式參考下面這篇 (還好我用不到) :



3. 安裝 network-manager :

參考下面這篇文章 :


用下列指令安裝 network-manager :

one@LX2438:~$ sudo apt install network-manager -y   
[sudo] one 的密碼: 
正在讀取套件清單... 完成
正在重建相依關係... 完成  
正在讀取狀態資料... 完成  
network-manager 已是最新版本 (1.36.6-0ubuntu2)。
以下套件為自動安裝,並且已經無用:
  ifupdown
使用 'sudo apt autoremove' 將之移除。
升級 0 個,新安裝 0 個,移除 0 個,有 42 個未被升級。

原來 Mapleboard 本身就已經安裝過了. 這樣就可以用 nmcli 指令來查看網路界面 :

one@LX2438:~$ nmcli  
eth0: 不受管理
        "eth0"
        ethernet (meson8b-dwmac), 16:72:2E:DA:E7:2C, hw, mtu 1500

ip6tnl0: 不受管理
        "ip6tnl0"
        iptunnel (ip6tnl), 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00, sw,>

sit0: 不受管理
        "sit0"
        iptunnel (sit), 00:00:00:00, sw, mtu 1480

lo: 不受管理
        "lo"
        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536

使用「nmcli device show」獲取有關已知裝置的完整資訊,
「nmcli connection show」以獲取有關活動連接配置文件的概述。

有關完整的使用詳細信息,請參閱nmcli(1)和nmcli-examples(5)手冊頁。

也可以用 nmcli d s 指令來查看簡要的結果 :

one@LX2438:~$ nmcli d s   
DEVICE   TYPE      STATE     CONNECTION 
eth0     ethernet  不受管理  --         
ip6tnl0  iptunnel  不受管理  --         
sit0     iptunnel  不受管理  --         
lo       loopback  不受管理  -- 

這裡 eth0 "不受管理 (unmanaged)" 根據上面文章所言, 是因為 netplan 接管了網路管理之故, 必須將 netplan 對 eth0 的控制解除, 先檢視 /etc/netplan 底下的設定檔 :

one@LX2438:~$ ls /etc/netplan/ 
mp510-default.yaml

關於 netplan 參考 :


但用 nano 查看其內容, 卻沒有如上面那篇文章中所述之設定 :

one@LX2438:~$ sudo nano /etc/netplan/mp510-default.yaml

內容如下 :

network:
  version: 2
  renderer: NetworkManager

所以我就直接執行下面兩個指令 :

one@LX2438:~$ sudo touch /etc/NetworkManager/conf.d/10-globally-managed-devices.con
one@LX2438:~$ sudo systemctl reload NetworkManager   

結果無效, 執行 nmcli 仍然是 unmanaged. 

後來找到下面這篇文章 :


原來是要去改 /etc/NetworkManager/NetworkManager.conf 設定檔中 ifupdown 的 manged 設定 :

one@LX2438:~$ sudo nano /etc/NetworkManager/NetworkManager.conf    

內容如下 :

[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=false   

[device]
wifi.scan-rand-mac-address=no

將 ifupdown 的 managed 從 false 改成 true 存檔後重開機, 再次執行 nmcli 就會看到 eth0 顯示 "已連線" 而不是 "不受管理" 了 :

one@LX2438:~$ nmcli    
eth0: 已連線 to Ifupdown (eth0)
        "eth0"
        ethernet (meson8b-dwmac), 16:72:2E:DA:E7:2C, hw, mtu 1500
        ip4 預設
        inet4 192.168.50.107/24
        route4 192.168.50.0/24 metric 100
        route4 default via 192.168.50.1 metric 100
        route4 169.254.0.0/16 metric 1000
        inet6 fe80::66c7:6bea:e03e:fc60/64
        route6 fe80::/64 metric 1024

ip6tnl0: 不受管理
        "ip6tnl0"
        iptunnel (ip6tnl), 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00, sw,>

sit0: 不受管理
        "sit0"
        iptunnel (sit), 00:00:00:00, sw, mtu 1480

lo: 不受管理
        "lo"
        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536

one@LX2438:~$ nmcli d s  
DEVICE   TYPE      STATE     CONNECTION      
eth0     ethernet  已連線    Ifupdown (eth0) 
ip6tnl0  iptunnel  不受管理  --              
sit0     iptunnel  不受管理  --              
lo       loopback  不受管理  -- 

one@LX2438:~$ nmcli  connection  show   
NAME             UUID                                  TYPE      DEVICE 
Ifupdown (eth0)  681b428f-beaf-8932-dce4-687ed5bae28e  ethernet  eth0   
EDIMAX-tony      ddebdded-8805-4631-aa85-f08c412404bf  wifi      --     
TonyNote8        37db6693-372b-4190-a4d0-c71aef40bc38  wifi      --  


4. 用 nmcli 設定 PPPoE 撥接上網 :

將網路線從 ASUS 無線基地台後方移到光世代數據機後方, 然後用 nmcli 建立一個 PPPoE 撥接連線名稱, 例如 "hinet", 進入 nmcli 提示號後用 set 指令設定 Hinet 用戶帳號; 最後輸入 save 指令儲存連線資料後用 quit 指令跳出 nmcli 提示號 :

one@LX2438:~$ nmcli  connection  edit  type  pppoe  con-name  "hinet"   

===| nmcli 互動式連線編輯程式 |===

新增一項「pppoe」連線

輸入「help」或是「?」以取得可用指令。
鍵入“print”以顯示所有連接屬性。
輸入「describe [<setting>.<prop>]」以取得詳細的內容描述。

您可編輯以下設定:connection, pppoe, 802-3-ethernet (ethernet), ppp, 802-1x, ethtool, match, ipv4, ipv6, hostname, tc, proxy
nmcli> set  pppoe.username  712xxxxx@ip.hinet.net   (用自己的 Hinet 帳號)
nmcli> save 
以「autoconnect=yes」儲存連線。這可能會即刻將連線啟用。
您是否還是希望儲存? (yes/no) [yes] 
連線「hinet」(a857fb4d-b2c2-43e2-a43f-a30a30def74f) 已成功儲存。
nmcli> quit 

這時點右上角的網路連線圖示就會出現 hinet 這個連線了 : 






點底下的編輯連線會出現網路連線視窗 :




點擊 hinet 即可設定連線密碼, 然後按儲存即可 :




設定好後就會自動撥接連線上網了. 連線成功後用 ifconfig 檢視就會發現多出了一個 ppp0 網路界面, 其 inet 網址就是我們在 Hinet 網站上取得的固定 IP : 

one@LX2438:~$ ifconfig  
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 16:72:2e:da:e7:2c  txqueuelen 1000  (Ethernet)
        RX packets 44122  bytes 27015514 (27.0 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 143128  bytes 166038722 (166.0 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 14  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 2113  bytes 266240 (266.2 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2113  bytes 266240 (266.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST>  mtu 1492
        inet 122.117.1xx.2xx  netmask 255.255.255.255  destination 168.95.98.254
        inet6 2001:b011:c003:d4f:548f:f62e:323b:d9dd  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::a506:6be5:73a3:c306  prefixlen 64  scopeid 0x20<link>
        inet6 fe80::b5bc:30a4:f51f:5ad1  prefixlen 64  scopeid 0x20<link>
        inet6 2001:b011:c003:d4f:1a3b:3a42:856c:b99c  prefixlen 64  scopeid 0x0<global>
        ppp  txqueuelen 3  (Point-to-Point Protocol)
        RX packets 295  bytes 127518 (127.5 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 682  bytes 696866 (696.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

這個撥接上網動作在系統重啟後會自動連線, 不須另外設定. 

哈哈, 這件事從過年擼到現在三周了, 今天終於搞定啦. 

參考 : 


沒有留言 :