今天為了 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.conf
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
這個撥接上網動作在系統重啟後會自動連線, 不須另外設定.
哈哈, 這件事從過年擼到現在三周了, 今天終於搞定啦.
參考 :
沒有留言:
張貼留言