CentOS 7 網路設定與控制網路裝置名稱

CentOS7 網路設定與控制網路裝置名稱
CentOS 7 安裝完後,之前安裝視窗界面,預設為DHCP。若當時未手動設定網路,並且發現所在的網路無DHCP Server 時。則需在 本機 console 下,編輯 /etc/sysconfig/network-script/ifcfg-en* 。文篇文章除了介紹手動設定網路外,也介紹如何變更或控制網路裝置名稱。CentOS-7 FAQ#2.

*本次安裝套件時,選擇 "Minimal Install",ifconfig/netstat等常用工具不會安裝它。如果你真的需要它,請利用 " nmcli c up ifname $interface " 啟用你的網路,然後再用 yum 安裝套件 " net-tools "

一、" en* " 的名稱在 CentOS 7是 Kernel 預設給予的,本例:網路界面名稱為"ens160"。

[root@CentOS-7 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
HWADDR=00:50:56:BE:48:0D
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=ens160                                                             
ONBOOT=no

 一個「靜態分配」設定檔

[root@CentOS-7 ~]#cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
NAME=ens160
HWADDR=00:50:56:BE:48:0D
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
IPADDR=172.21.102.109
PREFIX=24
#   the GATEWAY is sometimes in: /etc/sysconfig/network
GATEWAY=172.21.102.254
DNS1=8.8.8.8
DNS2=168.95.1.1

此外,通用項目如主機名稱及 DNS 伺服器可選擇性地放置在:

[root@CentOS-7 ~]#cat /etc/sysconfig/network
HOSTNAME=acme.example.com
DNS1=10.16.1.112
DNS2=8.8.8.8
## DNS2=76.242.0.28
SEARCH=example.com

二、使用傳統名稱 eth0,1,2....... :

1.編輯 /etc/default/grub 將 "net.ifnames=0" 與 "net.ifnames=0" 加進 GRUB_CMDLINE_LINUX 後雙引號內最後面

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="vconsole.keymap=us crashkernel=auto  vconsole.font=latarcyrheb-sun16 rhgb quiet net.ifnames=0 biosdevname=0"
GRUB_DISABLE_RECOVERY="true"

2.然後運行以下命令來重新生成GRUB配置與更新的內核參數。

grub2-mkconfig -o /boot/grub2/grub.cfg

3.在 /etc/sysconfig/network-scripts/ 內把你的網絡卡設定檔改名為 ifcfg-ethX,並編輯ifcfg-eth0 DEVICE=eth0

4.重新開機後,就可使用傳統的網路裝置名稱

三、假若你希望控置網路卡裝置名稱,不希望由Kernel決定,需要透過 /etc/udev/rules.d/60-net.rules 蓋過 /usr/lib/udev/rules.d/60-net.rules

1.作完以上一、二大項的頻驟,執行以下命令

[root@centos-7 ~]#cp -a /usr/lib/udev/rules.d/60-net.rules /etc/udev/rules.d/60-net.rules

[root@centos-7 ~]#vi /etc/udev/rules.d/60-net.rules
#ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1", PROGRAM="/lib/udev/rename_device", RESULT=="?*", NAME="$result"
ACTION=="add", SUBSYSTEM=="net", DRIVERS=="?*", ATTR{type}=="1",ATTR{address}=="00:50:56:be:48:0d" , KERNEL=="eth*" , NAME="nic0"

[root@centos-7 ~]#vi /etc/sysconfig/network-script/ifcfg-eth0
DEVICE=eth0 => DEVICE=nic0

[root@centos-7 ~]# reboot

*如果網絡配置(例如,IPv4 setting,firewall rules)是基於舊名稱(變更前),則需要更新的網絡配置,以反映更改的名稱。
# yum provides ifconfig
# yum whatprovides ifconfig
# 安裝 infconfig
# yum install net-tools
# 安裝 traceroute
# yum install  traceroute
# 這個和ifconfig 顯示的一樣
# ip addr
# 查看介面傳輸狀態 -s 是詳細顯示
# ip -s link
# 查看介面傳輸狀態 -s 是詳細顯示
# ip  link
# netstat 是很重要的連線觀察工具,使用新的指令ss來取代,功能也是差不多。
# TCP listen
# ss -lt
# UDP listen
# ss -ul
# TCP 連線
# ss -t
# traceroute/traceroute6 改成 tracepath
# tracepath 168.95.1.1
# route 改為 ip -route
# route table 看起來有點不習慣
# ip route
# route6 IPv6的route table
# ip -6 rou
# arp 改為 ip nei查看附件的arp 和 IPv6的neighbor,這個把v6 v4整合的還不錯。
# ip neighbor
# ifconfig eth1 up
# ifconfig eth1 down
   改為
# ip l set eth1 up 
# ip l set eth1 down

留言

這個網誌中的熱門文章

c語言-關於#define用法

CMD常用網管指令

PHP 與 JavaScript 之間傳值利用 json