[精讚] [會員登入]
13

[Centos8] 利用nmcli 設定ipv6 位址

Centos7之後修改網路設定變得比較麻煩一點,此篇介紹使用nmcli指令的方法

此文完整連結 http://n.sfs.tw/14262

複製連結 [Centos8] 利用nmcli 設定ipv6 位址@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2020-01-07 14:02:53 最後編修
2019-12-31 15:55:14 By 張○○
 

自動目錄

Centos7之後修改網路設定變得比較麻煩一點,此篇介紹使用nmcli指令的方法

nmcli 是 network manager 服務的指令,有別於可使用的console圖形化介面nmtui 提供的設定方式,nmcli更困難。

此文著重在ipv6的設定上,ipv4的部分請參考[Centos8] 利用nmcli 設定ipv4 位址@新精讚

nmtui 文字圖形介面

這個程式執行後,可直接使用鍵盤設定網路的參數

IPv6的設定的直接設定就可以,算是非常簡單的方式。

以上有提供啟動網路的服務,如果你是在遠端的話,請不要使用他提供的功能來啟動,因為他一啟動就會斷線。

nmcii 文字介面

查看自己的網路介面

# ip addr

或是使用nmcli指令,nmcli指令也和大部分的網管指令一樣,可以偷懶省略,例如 device 可以省略為 dev。

# nmcli

# nmcli dev show

# nmcli dev sh
GENERAL.DEVICE:                         ens160 <== 設備名稱
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:50:56:BA:1B:99 <== MAC
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ens160
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         163.17.38.99/24
IP4.GATEWAY:                            163.17.38.250
IP4.ROUTE[1]:                           dst = 163.17.38.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 163.17.38.250, mt = 100
IP4.DNS[1]:                             8.8.8.8
IP6.ADDRESS[1]:                         2001:288:5400:2::99/64  <== 手動設定的 IPv6 位址
IP6.ADDRESS[2]:                         2001:288:5400:2:723a:859c:57c4:3fac/64  <== AUTOCONF 的IPv6 位址
IP6.ADDRESS[3]:                         fe80::2874:105d:1af5:54c1/64 <==link local IPv6 位址
IP6.GATEWAY:                            2001:288:5400:2::ff  <== IPv6 閘道
IP6.ROUTE[1]:                           dst = 2001:288:5400:2::/64, nh = ::, mt = 100
IP6.ROUTE[2]:                           dst = fe80::/64, nh = ::, mt = 100
IP6.ROUTE[3]:                           dst = ff00::/8, nh = ::, mt = 256, table=255
IP6.ROUTE[4]:                           dst = ::/0, nh = 2001:288:5400:2::ff, mt = 100
IP6.DNS[1]:                             2001:288:5400::3 <== IPv6DNS

GENERAL.DEVICE:                         lo
GENERAL.TYPE:                           loopback
GENERAL.HWADDR:                         00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.STATE:                          10 (unmanaged)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
IP4.ADDRESS[1]:                         127.0.0.1/8
IP4.GATEWAY:                            --
IP6.ADDRESS[1]:                         ::1/128
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = ::1/128, nh = ::, mt = 256

# nmcli conn show
NAME    UUID                                  TYPE      DEVICE
ens160  74a87082-a4d1-383c-b950-eebb8a5849ba  ethernet  ens160

 

重啟網卡介面

# systemctl restart network X Centos8沒有作用
Failed to restart network.service: Unit network.service not found.

# systemctl restart NetworkManager.service ▲ Centos8可能沒有作用
<沒有任何輸出>

以下是可行的方法

# nmcli connection down ens160 &&  nmcli connection up ens160

Connection 'ens160' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2) <== 數字會一直累加
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3)

ens160是設備名稱,而且down/up兩個指令得一起用,以免在遠方就斷線了。

# nmcli networking off && nmcli networking on

設定 ipv6 位址

以device ens160為例

新增一個位址

# nmcli device mod ens160 +ipv6.address '2001:288:5400:2::100/64'

移除一個位址

# nmcli device mod ens160 -ipv6.address '2001:288:5400:2::100/64'

修改一個位址

# nmcli device mod ens160 ipv6.address '2001:288:5400:2::101/64'

注意事項

1. 沒有使用'+'的話,這會修改第1個記錄,也就是 ip6.address[1]這一個,例如

IP6.ADDRESS[1]:                         2001:288:5400:2::99/64
IP6.ADDRESS[2]:                         2001:288:5400:2::100/64

這樣會修改掉 2001:288:5400:2::99/64,如果要指定修改第2個位址,請先移除再新增

2. 如果設定沒帶'+'號也沒已設定的位址,則會新增一筆。

3. cidr的位址如果忽略的話,預設會變成 /128請注意。例如

# nmcli device mod ens160 +ipv6.address '2001:288:5400:2::99'

新增的位址會是 2001:288:5400:2::99/128

設定 ipv6 預設閘道GW

設定ipv6閘道使用 ipv6.gateway 這個類別

新增/修改閘道

# nmcli device mod ens160 ipv6.gateway '2001:288:5400:2::ff'

移除閘道

# nmcli device mod ens160 ipv6.gateway ''

注意事項

1. 預設閘道無法移除,所謂的移除只是把他清空

2. 預設閘道只能設定一個

3. 預設閘道不能帶cidr位址,換句話說,不能寫成 "ipv6位址/64"

4. 預設閘道設定完畢後要重啟網路才會生效

設定ipv6 DNS

設定ipv6 dns使用 ipv6.dns 這個類別

新增

# nmcli device mod ens160 +ipv6.dns  '2001:288:5400::3 2001:288:5400::1'

修改

# nmcli device mod ens160 ipv6.dns  '2001:288:5400::3'

刪除

# nmcli device mod ens160 -ipv6.dns  '2001:288:5400::1'

注意事項

1. 修改會移除原本的,改成目前設定的

2. 設定後重啟網卡就消失,不必擔心,因為他把內容記錄到 /etc/resolv.conf 這裡,你也可以手動修改此檔,作用一樣。

結論

1. nmcli 直接設定直接生效,不必動啟網卡,預設匣道設定完要重啟網卡。

2. nmtui 設定完得重啟網路,設定上比較簡單

錯誤排除

1. Error: Reapplying connection to device 'ens160' (/org/freedesktop/NetworkManager/Devices/2) failed: The settings specified are invalid: ipv6.gateway: gateway cannot be set if there are no addresses configured

你已設定的預設閘道,所以一定要保留一個可用的IP6位址。

參考資料

[1] https://linuxconfig.org/rhel-8-configure-static-ip-address

[2] https://www.golinuxcloud.com/how-to-configure-ipv6-address-in-linux-rhel-centos-7/

你可能感興趣的文章

使用GPG檔案加解密 簡易的檔案加解密方式,可以讓你重要的資料包括文字檔加解密。

[Centos8] 利用nmcli 設定ipv4 位址 Centos7之後修改網路設定變得比較麻煩一點,此篇介紹使用nmcli指令的方法

[Linux] 刪除last/lastb登出入記錄 linux shell的登出入記錄

[Centos7] 修改啟動的runlevel centos7的 runlevel修改和前面的版本都不一樣

[Centos7] 把帳號新增移除具有root權限等級的sudoer 把帳號新增或移除具有root權限等級的sudoer

[Centos7] 安裝nodejs8+yarn 安裝nodejs 8+ yarn的過程記錄

Centos7 的ifconfig和netstat Centos7 和RHEL 7 最小安裝中竟然沒有ifconfig和netstat?原來centos/rhel準備把這兩個指令作廢,那怎麼辦?

[bc] linux 的計算機 bc 設定小數位數、計算π、次方根 linux 的計算機 bc 設定小數位數、計算π、次方根

[Centos] 安裝及使用postfix,設定虛擬帳號及轉寄 使用postfix來設定虛擬帳號及轉寄

[Centos7] HTTPS/SSL憑證的SELINUX設置 把申請來的憑證檔放到指定的位置後,沒辦法啟動,怎麼辦?

我有話要說


限制:留言最高字數1000字,超過部分會被截掉。請注意:留言不可帶有網址,會被濾掉。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

[Win7] 燒錄 iso 檔 在Windows7 中內建燒錄程式,可以直接把檔案拉到光碟機裡,再執行燒錄。

[JAVA] JWS, JWT, JWE, JOSE是什麼? [JAVA] JWS, JWT, JWE, JOSE是什麼?非常的複雜,儘量來搞清楚..

Smarty安裝 smarty 是著名的樣版引擎,非常的好用,用多了突然發現拿掉smarty反而不會寫php了,以下是安裝過程..

[PHP] 檢查檔案是否是圖檔 使用getimagesize函數檢查檔案是否是圖檔

精讚的版面變化 ▓此文僅作為舊文的記錄▓ 這篇文章為了紀念改版完成而撰寫。 原本的部落格是民國97年的作品,那時還是用舊有的技術來寫,很