RHEL系列發行版的網卡配置可分爲tui(curses-based text user interface(文本用戶界面)、命令行配置和配置文件配置。
命令行模式下的網卡配置會立即生效,但只是當前有效,網絡服務重啓或是系統重啓,之前的所有配置都會失效;而配置文件以及tui下的配置都會永久保存,但都不會立即生效,需要重啓網絡服務才能生效。
網卡獲取IP地址的方式也分爲兩種:靜態指定和動態獲取(DHCP)
下面將逐一演示各種網卡配置方法:
1、tui (Curses-bases text user interface)
CentOS6和CentoS7的tui略有不同,CentOS6爲setup命令啓動,而CentOS7上則是nmtui命令來啓動。
操作如下:
注:啓動tui界面,需要使用可以支持tui界面的終端或終端工具:本地物理終端或是xshell,而且配置網卡服務的用戶必須具有管理員權限,即root用戶。
a、在命令行鍵入setup命令:
配置完相應的ip以及DNS後,在命令行鍵入
[root@www ~]# service network restart ##CentOS6網絡服務重啓命令
[root@centos7-51 ~]# systemctl restart network ##CentOS7網絡服務重啓命令
網絡服務重啓後,新配置的ip地址便可以生效使用了。
CentOS6和CentOS7的tui啓動命令雖然不同,但配置界面很相似。按照界面提示一步一步進行配置保存即可。
2、配置文件
這裏需要說一下的是,CentOS6上面網卡的命名一般爲:eth開頭,後面跟上網卡的編號,
例如,第一塊網卡名爲eth0,第二塊網卡名爲eth1等等,Dell服務器對網卡的命名可能爲em開頭,後面跟編號,網卡名爲em0,em1等等。
CentOS7上面的網卡一般名爲eno開頭,後面跟上一串數字,例如我的網卡
網卡的配置文件在/etc/sysconfig/network-scripts目錄下,以ifcfg-開頭
例如我CentOS6上的網卡名爲eth0,則我的網卡配置文件的便是:/etc/sysconfig/network-scripts/ifcfg-eth0 ,下面我編輯一下這個文件,說明一下文件裏面的各項參數的含義:
命令行鍵入:
[root@www ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" ##*設備名,必須和文件名與網卡名稱一致 BOOTPROTO="static" ##*啓動協議,若手工指定靜態IP則爲 static或者none,若動態獲取則爲 dhcp HWADDR="00:0C:29:7F:EA:07" ##*網卡的mac地址,必須和eth0網卡的mac地址一致 NM_CONTROLLED="no" ##是否使用NetworkManager管理此網卡,no代表不啓用,yes代表啓用 ONBOOT="yes" ##*系統引導時是否激活此設備 TYPE="Ethernet" ##*網卡類型,默認即可 UUID="1fdab342-8c92-432b-854d-39b2f37fabc1" ##網卡的UUID,設備的唯一標識符 DNS1=##第一個DNS服務器指向;若此處沒有此項,需在/etc/resolve.conf中指定dns服務器ip地址 IPADDR="172.16.113.14" ##指定IP地址 NETMASK="255.255.0.0" ##指定子網掩碼 GATEWAY="172.16.0.1" ##指定默認網關
編輯完此配置文件,按一下Esc鍵,再輸入:wq便可保存退出此文件。
打*的爲必選項。若BOOTPROTO爲dhcp,則IPADDR、NETMASK、GATEWAY可不寫
例如我CentOS7上的網卡名爲eno16777736,則我的網卡配置文件便是:
/etc/sysconfig/network-scripts/ifcfg-eno16777736,下面我們編輯此文件,說明一下各項參數的含義:
命令行輸入
[root@centos7-51 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 TYPE=Ethernet ##網絡類型 BOOTPROTO=dhcp ##啓動協議,若手工指定靜態IP則爲 static或者none,若動態獲取則爲 dhcp DEFROUTE=yes UUID=fa2124e6-07d9-4d0f-bb3d-230627b48aa7 DEVICE=eno16777736 ##設備名稱 ONBOOT=yes ##*系統引導時是否激活此設備 DNS1=##第一個DNS服務器指向;若此處沒有此項,需在/etc/resolve.conf中指定dns服務器ip地址 IPADDR="172.16.113.14" ##指定IP地址 NETMASK="255.255.0.0" ##指定子網掩碼 GATEWAY="172.16.0.1" ##指定默認網關
編輯完此配置文件,按一下Esc鍵,再輸入:wq便可保存退出此文件。
路由相關的配置文件:
/etc/sysconfig/network-scripts/route-IFACE ##和網卡配置文件名稱尾部相同
路由的配置文件格式有兩種分格,如下:
1、target via GW
例如:192.168.0.0/24 via 172.16.0.1
2、每三行定義一條路由信息
ADDRESS#=TARGET “#”換成數字
NETMASK#= “#”換成數字
GATEWAY#= “#”換成數字
編輯完成網卡的配置文件,重啓網絡服務或是重啓系統,IP地址便可生效使用。
DNS指向配置文件爲:/etc/resolv.conf
文件格式爲: nameserver 192.168.0.1
DNS服務器可有三個,即在此文件中鍵入三次上述格式內容即可。
3、命令行模式,即時生效,重啓失效。
網絡接口的配置命令有三大類:
a、ifconfig
b、ip
c、nmcli (CentOS7)
a、ifconfig命令的使用
ifconfig -a | --all 顯示所有接口的配置信息,默認ifconfig 不加任何選項即爲ifconfig -a
[root@www ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:0C:29:7F:EA:07 inet addr:192.168.0.54 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe7f:ea07/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:9405 errors:0 dropped:0 overruns:0 frame:0 TX packets:13 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:941973 (919.8 KiB) TX bytes:1788 (1.7 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:344 (344.0 b) TX bytes:344 (344.0 b)
若想關閉eth0,則使用命令:
[root@www ~]# ifconfig eth0 down ##開啓則爲 ifconfig eth0 up 或者ifup eth0 、ifdown eth0 給eth0設置ip地址爲: [root@www ~]# ifconfig eth0 192.168.16.1/24 ##或者 ifconfig eth0 192.168.16.1 netmask 255.255.255.0 [root@www ~]# ifconfig -a ##查看網卡配置,ip配置成功。 eth0 Link encap:Ethernet HWaddr 00:0C:29:7F:EA:07 inet addr:192.168.16.1 Bcast:192.168.16.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe7f:ea07/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:9800 errors:0 dropped:0 overruns:0 frame:0 TX packets:27 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:978177 (955.2 KiB) TX bytes:3170 (3.0 KiB)
路由管理命令:route
route -n 列出所有路由條目,不加-n會反解ip爲主機名
例如:
[root@www ~]# route -n ##列出當前系統上的路由條目 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.16.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.168.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1 0.0.0.0 192.168.168.1 0.0.0.0 UG 0 0 0 eth1 route add 添加一個路由條目:格式如下 [root@www ~]# route add -net 172.16.0.0/24 gw 192.168.168.1 ##-net指明是添加網段路由,gw指明下一跳或網關地址
route del 刪除一個路由條目:,格式如下
[root@www ~]# route del -net 172.16.0.0/24
b、ip命令的使用:
命令格式: ip [ OPTIONS ] OBJECT { COMMAND | help }
常用的COMMAND有:link(設備相關) addr(IP地址相關) route(路由相關)
ip link(網絡設備相關)
常用選項:
show
[dev eth0] 查看指定接口信息
[up] 僅顯示啓用狀態的接口
set 接口 up、down (開啓、關閉指定接口)
[root@www ~]# ip link show ##查看當前系統所識別的接口屬性信息,可在後面加上up,只查看使用中的接口信息 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:7f:ea:07 brd ff:ff:ff:ff:ff:ff [root@www ~]# ip link set eth0 down ##關閉eth0 ,相當於 ifconfig eth0 down / ifdown eth0 [root@www ~]# ip link set eth0 up ##開啓eth0 ,相當於ifconfig eth0 up / ifup eth0
ip addr 地址相關
add|replace|change IPADDR dev ##添加|替換|更改IP地址
flush 清除所有地址
label 'eth0:0' 添加在網卡最後,給ip添加標籤
show
例如:
[root@www ~]# ip addr show ##顯示當前接口信息,show後面可跟具體的接口,查看指定接口信息 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:7f:ea:07 brd ff:ff:ff:ff:ff:ff inet 192.168.16.1/24 brd 192.168.16.255 scope global eth0 inet6 fe80::20c:29ff:fe7f:ea07/64 scope link [root@www ~]# ip addr add 192.168.1.2/24 dev eth0 ##相當於ifconfig eth0 192.168.1.2/24 [root@www ~]# ip addr show eth0 ##查看eth0的屬性信息 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:7f:ea:07 brd ff:ff:ff:ff:ff:ff inet 192.168.1.2/24 scope global eth0 inet6 fe80::20c:29ff:fe7f:ea07/64 scope link valid_lft forever preferred_lft forever
若此時,再對eth0執行IP地址添加命令,則會將第二次添加的ip設置爲eth0的輔助ip,例如:
[root@www ~]# ip addr add 192.168.1.3/24 dev eth0 ##輔助ip可有多個 [root@www ~]# ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 00:0c:29:7f:ea:07 brd ff:ff:ff:ff:ff:ff inet 192.168.1.2/24 scope global eth0 inet 192.168.1.3/24 scope global secondary eth0 ##輔助IP地址已配置成功 inet6 fe80::20c:29ff:fe7f:ea07/64 scope link valid_lft forever preferred_lft forever
ip route路由相關:
常用選項:
show 顯示路由信息,相當於route -n
add 添加路由條目,類似於route add
例如:ip route add 192.168.0.0/24 via 172.16.0.1 dev eth0
flush
[dev IFACE]
例如:
[root@www ~]# ip route flush dev eth0
[via prefix] 刪除一下一跳爲***的條目
例如:
[root@www ~]# ip route flush via 192.168.1.1
3、nmcli命令
命令格式:
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
其實nmcli和centos6上的ip命令極其相似,命令格式幾乎完全相同,只不過用了不同的選項和子命令。
並且nmcli的子命令含義其實也和ip命令的子命令差不多。
子命令及常用選項:子命令可簡寫
connection 簡寫爲:c 或者 con
show 顯示網卡信息
modify 設置網卡屬性
modify的格式:
modify IFACE [+|-]setting.property value
setting.property:ipv4.address|ipv4.gateway|ipv4.dns|ipv4.method (manual)
device 簡寫爲 d 或者 dev
status 查看網卡的狀態信息
show 查看網卡的屬性信息
例如:
[root@centos7-51 ~]# nmcli con show ##顯示網卡接口信息 NAME UUID TYPE DEVICE eno16777736 fa2124e6-07d9-4d0f-bb3d-230627b48aa7 802-3-ethernet eno16777736
[root@centos7-51 ~]# nmcli con modify eno16777736 +ipv4.addresses 192.168.1.3/24 ##爲接口設置輔助IP地址,若不加“+”意爲更改此網卡的ip地址 [root@centos7-51 ~]# nmcli dev show #上述添加了輔助地址,但此處並未生效,需要重新開關一下接口才可生效 GENERAL.DEVICE: eno16777736 GENERAL.TYPE: ethernet GENERAL.HWADDR: 00:0C:29:87:35:2A GENERAL.MTU: 1500 GENERAL.STATE: 100 (connected) GENERAL.CONNECTION: eno16777736 GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/14 WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.0.58/24 IP4.GATEWAY: 192.168.0.1 IP4.DNS[1]: 192.168.0.1 IP6.ADDRESS[1]: fe80::20c:29ff:fe87:352a/64 IP6.GATEWAY: [root@centos7-51 ~]# nmcli con down eno16777736 ; nmcli con up eno16777736 ##down爲關閉,up爲開啓,相當於ip link set INTERFACE up/down Connection 'eno16777736' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/16) Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/17)
[root@centos7-51 ~]# nmcli d show eno16777736 ##此時,命令所查出的結果顯示,此網卡的輔助ip地址已生效,此時也證明了,nmcli所配置的接口屬性是永久生效的。 GENERAL.DEVICE: eno16777736 GENERAL.TYPE: ethernet GENERAL.HWADDR: 00:0C:29:87:35:2A GENERAL.MTU: 1500 GENERAL.STATE: 100 (connected) GENERAL.CONNECTION: eno16777736 GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/17 WIRED-PROPERTIES.CARRIER: on IP4.ADDRESS[1]: 192.168.0.58/24 IP4.ADDRESS[2]: 192.168.1.3/24 IP4.GATEWAY: 192.168.0.1 IP4.DNS[1]: 192.168.0.1 IP6.ADDRESS[1]: fe80::20c:29ff:fe87:352a/64 IP6.GATEWAY: [root@centos7-51 ~]# nmcli con modify eno16777736 ipv4.gateway 192.168.1.1 ##設置默認網關
補充兩條查看服務以及所對應端口號的命令:
ss和netstat,這兩條命令功能相同,選項也幾乎相同。
網絡連接相關
[address_family_options]
[--tcp|-t]
[--udp|-u]
[--raw|-w] 裸套接字(bu shiyong tcp ye bu shiyong udp)
[--listening|-l]
[--all|-a] 所有狀態
[--numeric|-n] 不反解ip和端口號(以數字格式顯示ip和端口)
[--extend|-e[--extend|-e]] 擴展格式信息
[--program|-p] 顯示相關進程及PID
例如:
[root@www ~]# ss -tunlp ##顯示當前系統中處於監聽模式下的基於tcp以及udp協議的服務,並且協議以端口模式呈現 Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port udp UNCONN 0 0 *:68 *:* users:(("dhclient",2425,6)) udp UNCONN 0 0 127.0.0.1:867 *:* users:(("rpc.statd",1539,5)) udp UNCONN 0 0 *:111 *:* users:(("rpcbind",1476,6)) udp UNCONN 0 0 *:631 *:* users:(("cupsd",1573,9)) udp UNCONN 0 0 *:48156 *:* users:(("rpc.statd",1539,8)) udp UNCONN 0 0 *:803 *:* users:(("rpcbind",1476,7)) udp UNCONN 0 0 :::40117 :::* users:(("rpc.statd",1539,10)) udp UNCONN 0 0 :::111 :::* users:(("rpcbind",1476,9)) udp UNCONN 0 0 :::803 :::* users:(("rpcbind",1476,10)) tcp LISTEN 0 128 :::22 :::* users:(("sshd",1743,4)) tcp LISTEN 0 128 *:22 *:* users:(("sshd",1743,3)) tcp LISTEN 0 128 127.0.0.1:631 *:* users:(("cupsd",1573,7)) tcp LISTEN 0 128 ::1:631 :::* users:(("cupsd",1573,6)) tcp LISTEN 0 100 ::1:25 :::* users:(("master",1852,13)) tcp LISTEN 0 100 127.0.0.1:25 *:* users:(("master",1852,12)) tcp LISTEN 0 128 127.0.0.1:6010 *:* users:(("sshd",2059,8)) tcp LISTEN 0 128 ::1:6010 :::* users:(("sshd",2059,7)) tcp LISTEN 0 128 :::46305 :::* users:(("rpc.statd",1539,11)) tcp LISTEN 0 128 *:57612 *:* users:(("rpc.statd",1539,9)) tcp LISTEN 0 128 :::111 :::* users:(("rpcbind",1476,11)) tcp LISTEN 0 128 *:111 *:* users:(("rpcbind",1476,8))
netstat命令還可查看路由條目信息:
[root@www ~]# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.168.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1 0.0.0.0 192.168.168.1 0.0.0.0 UG 0 0 0 eth1