Centos6之前最常用的配置網絡命令就是ifconfig,使用ifconfig命令時最好切換到root用戶的身份
1、直接使用ifconfig可以查看當前配置的網絡設備的信息
例如
[root@localhost~]
#ifconfig
eno16777728:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu1500
inet172.16.9.9netmask255.255.0.0broadcast172.16.255.255
inet6fe80::20c:29ff:fe83:15cbprefixlen64scopeid0x20<link>
ether00:0c:29:83:15:cbtxqueuelen1000(Ethernet)
RXpackets120796bytes20258545(19.3MiB)
RXerrors0dropped1418overruns0frame0
TXpackets28466bytes47363344(45.1MiB)
TXerrors0dropped0overruns0carrier0collisions0
lo:flags=73<UP,LOOPBACK,RUNNING>mtu65536
inet127.0.0.1netmask255.0.0.0
inet6::1prefixlen128scopeid0x10<host>
looptxqueuelen0(LocalLoopback)
RXpackets20bytes1780(1.7KiB)
RXerrors0dropped0overruns0frame0
TXpackets20bytes1780(1.7KiB)
TXerrors0dropped0overruns0carrier0collisions0
這裡可以看到我目前有一個網絡設備eno16777728和一個網絡回環接口lo,常見的網絡接口有以下幾個
eth0: ethernet的簡寫,一般用於以太網接口。在centos7上是eno16777728
wifi0:wifi是無線局域網,因此wifi0一般指無線網絡接口。
ath0: Atheros的簡寫,一般指Atheros芯片所包含的無線網絡接口。
2、用ifconfig啟動或關閉指定網卡
ifconfig up 啟動指定的網絡設備
ifconfig down 關閉指定的網絡設備
網卡名稱一定要寫在down或up之前
[root@localhost~]
#ifconfigeno16777728down
[root@localhost~]
#ifconfigeno16777728up
3、用ifconfig配置網絡地址和網關
比如這裡我配置eth0網卡的ip地址為:172.16.7.254子網掩碼為255.255.0.0
注意用ifconfig改網絡配置會立即生效
[root@localhost~]
#ifconfigeth0172.16.7.254netmask255.255.0.0
[root@localhost~]
#ifconfig
eth0Linkencap:EthernetHWaddr00:0C:29:5E:4B:1F
inetaddr:172.16.7.254Bcast:172.16.255.255Mask:255.255.0.0
inet6addr:fe80::20c:29ff:fe5e:4b1f
/64
Scope:Link
UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
RXpackets:1372221errors:2dropped:0overruns:0frame:0
TXpackets:3465errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:119202924(113.6MiB)TXbytes:334330(326.4KiB)
Interrupt:19Baseaddress:0x2000
還可以給一個網卡配上多個地址,例如
[root@localhost~]
#ifconfigeth0:0172.16.7.225netmask255.255.0.0
[root@localhost~]
#ifconfig
eth0Linkencap:EthernetHWaddr00:0C:29:5E:4B:1F
inetaddr:172.16.7.254Bcast:172.16.255.255Mask:255.255.0.0
inet6addr:fe80::20c:29ff:fe5e:4b1f
/64
Scope:Link
UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
RXpackets:1375940errors:2dropped:0overruns:0frame:0
TXpackets:3579errors:0dropped:0overruns:0carrier:0
collisions:0txqueuelen:1000
RXbytes:119494875(113.9MiB)TXbytes:348430(340.2KiB)
Interrupt:19Baseaddress:0x2000
eth0:0Linkencap:EthernetHWaddr00:0C:29:5E:4B:1F
inetaddr:172.16.7.225Bcast:172.16.255.255Mask:255.255.0.0
UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1
Interrupt:19Baseaddress:0x2000
如果還想增加更多則可以eth0:1 eth0:2依次繼續增加
其他的一些參數:
-arp 打開或關閉指定接口上使用的ARP協議。前面加上一個負號用於關閉該選項。
-allmuti 關閉或啟動指定接口的無區別模式。前面加上一個負號用於關閉該選項。
-promisc 關閉或啟動指定網絡設備的promiscuous模式。前面加上一個負號用於關閉該選項。
add<地址> 設置網絡設備IPv6的IP地址。
del<地址> 刪除網絡設備IPv6的IP地址。
media<網絡媒介類型> 設置網絡設備的媒介類型。
mem_start<內存地址> 設置網絡設備在主內存所占用的起始地址。
metric<數目> 指定在計算數據包的轉送次數時,所要加上的數目。
mtu<字節> 設置網絡設備的MTU。
netmask<子網掩碼> 設置網絡設備的子網掩碼。
tunnel<地址> 建立IPv4與IPv6之間的隧道通信地址。
-broadcast<地址> 將要送往指定地址的數據包當成廣播數據包來處理。
-pointopoint<地址> 與指定地址的網絡設備建立直接連線,此模式具有保密功能。
route命令用於管理本機路由表,路由表就是指,本機訪問指定的主機或網絡需要通過的網絡接口,簡單點理解,你的網關就是通往所有其他網絡所必須要經過的網絡接口。
[root@localhost~]
#route
KernelIProutingtable
DestinationGatewayGenmaskFlagsMetricRefUseIface
172.16.0.0*255.255.0.0U000eth0
Destination代表目標網絡
Gateway代表網關地址,*代表目標是本機網絡不需要網關
Genmask代表你要訪問的網絡的子網掩碼
Flags為路由標志,標記當前網絡節點的狀態。
Flags標志說明:
UUp表示此路由當前為啟動狀態
HHost,表示此網關為一主機
GGateway,表示此網關為一路由器
RReinstateRoute,使用動態路由重新初始化的路由
DDynamically,此路由是動態性地寫入
MModified,此路由是由路由守護程序或導向器動態修改
!表示此路由當前為關閉狀態
Metric代表路由距離,到達指定網絡所需的中轉數
Ref代表路由項引用次數
Use代表此路由項被路由軟件查找的次數
Iface 該路由表項對應的輸出接口
route常用命令:
add : 添加一條路由規則
del : 刪除一條路由規則
-net : 目的地址是一個網絡
-host : 目的地址是一個主機
target : 目的網絡或主機
netmask : 目的地址的網絡掩碼
gw : 路由數據包通過的網關
dev : 為路由指定的網絡接口
1、添加一個主機路由到eth0
[root@localhost~]
#routeadd-host172.16.1.2deveth0
[root@localhost~]
#route
KernelIProutingtable
DestinationGatewayGenmaskFlagsMetricRefUseIface
172.16.1.2*255.255.255.255UH000eth0
172.16.0.0*255.255.0.0U000eth0
2、刪除路由
[root@localhost~]
#route
KernelIProutingtable
DestinationGatewayGenmaskFlagsMetricRefUseIface
172.16.1.2*255.255.255.255UH000eth0
192.168.122.0*255.255.255.0U000virbr0
172.16.0.0*255.255.0.0U000eth0
[root@localhost~]
#routedel-net192.168.122.0netmask255.255.255.0virbr0
[root@localhost~]
#route
KernelIProutingtable
DestinationGatewayGenmaskFlagsMetricRefUseIface
172.16.1.2*255.255.255.255UH000eth0
172.16.0.0*255.255.0.0U000eth0
3、添加默認網關
[root@localhost~]
#routeadddefaultgw172.16.0.1
[root@localhost~]
#route
KernelIProutingtable
DestinationGatewayGenmaskFlagsMetricRefUseIface
172.16.1.2*255.255.255.255UH000eth0
172.16.0.0*255.255.0.0U000eth0
default172.16.0.10.0.0.0UG000eth0
4、刪除默認網關
[root@localhost~]
#routedeldefaulteth0
[root@localhost~]
#route
KernelIProutingtable
DestinationGatewayGenmaskFlagsMetricRefUseIface
172.16.1.2*255.255.255.255UH000eth0
172.16.0.0*255.255.0.0U000eth0
5、添加網絡到路由
[root@localhost~]
#routeadd-net172.16.9.9netmask255.255.255.255gw172.16.0.1eth0
[root@localhost~]
#route
KernelIProutingtable
DestinationGatewayGenmaskFlagsMetricRefUseIface
172.16.9.9172.16.0.1255.255.255.255UGH000eth0
172.16.1.2*255.255.255.255UH000eth0
172.16.0.0*255.255.0.0U000eth0
編輯/etc/resolv.conf
這裡我配置三個DNS為例
[root@localhost~]
#vim/etc/resolv.conf
#打開後的內容
#GeneratedbyNetworkManager
#Nonameserversfound;tryputtingDNSserversintoyour
#ifcfgfilesin/etc/sysconfig/network-scriptslikeso:
#
#DNS1=xxx.xxx.xxx.xxx
#DNS2=xxx.xxx.xxx.xxx
#DOMAIN=lab.foo.combar.foo.com
#下面是三個DNS
DNS1=172.16.0.1
DNS2=8.8.8.8
DNS3=114.114.114.114
ip命令的功能和ifconfig類似,但是功能更加強大,所以centos7之後的系統有得包組是不帶ifconfig而只帶ip命令了
1、查看當前配置的所有網絡設備的信息
[root@localhost~]
#ipaddr
1:lo:<LOOPBACK,UP,LOWER_UP>mtu65536qdiscnoqueuestateUNKNOWN
link
/loopback
00:00:00:00:00:00brd00:00:00:00:00:00
inet127.0.0.1
/8
scopehostlo
valid_lftforeverpreferred_lftforever
inet6::1
/128
scopehost
valid_lftforeverpreferred_lftforever
2:eno16777728:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000
link
/ether
00:0c:29:83:15:cbbrdff:ff:ff:ff:ff:ff
inet172.16.9.9
/16
brd172.16.255.255scopeglobaleno16777728
valid_lftforeverpreferred_lftforever
inet6fe80::20c:29ff:fe83:15cb
/64
scopelink
valid_lftforeverpreferred_lftforever
後面接上指定的網卡也可以查看指定網卡的信息,也可使用ip address show
2、添加刪除地址
#添加
[root@localhost~]
#ipaddradd172.16.9.10deveno16777728:1
[root@localhost~]
#ipaddr
1:lo:<LOOPBACK,UP,LOWER_UP>mtu65536qdiscnoqueuestateUNKNOWN
link
/loopback
00:00:00:00:00:00brd00:00:00:00:00:00
inet127.0.0.1
/8
scopehostlo
valid_lftforeverpreferred_lftforever
inet6::1
/128
scopehost
valid_lftforeverpreferred_lftforever
2:eno16777728:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000
link
/ether
00:0c:29:83:15:cbbrdff:ff:ff:ff:ff:ff
inet172.16.9.9
/16
brd172.16.255.255scopeglobaleno16777728
valid_lftforeverpreferred_lftforever
inet172.16.9.10
/32
scopeglobaleno16777728
valid_lftforeverpreferred_lftforever
inet6fe80::20c:29ff:fe83:15cb
/64
scopelink
valid_lftforeverpreferred_lftforever
#刪除
[root@localhost~]
#ipaddrdel172.16.9.10deveno16777728:1
[root@localhost~]
#ipaddr
1:lo:<LOOPBACK,UP,LOWER_UP>mtu65536qdiscnoqueuestateUNKNOWN
link
/loopback
00:00:00:00:00:00brd00:00:00:00:00:00
inet127.0.0.1
/8
scopehostlo
valid_lftforeverpreferred_lftforever
inet6::1
/128
scopehost
valid_lftforeverpreferred_lftforever
2:eno16777728:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_faststateUPqlen1000
link
/ether
00:0c:29:83:15:cbbrdff:ff:ff:ff:ff:ff
inet172.16.9.9
/16
brd172.16.255.255scopeglobaleno16777728
valid_lftforeverpreferred_lftforever
inet6fe80::20c:29ff:fe83:15cb
/64
scopelink
valid_lftforeverpreferred_lftforever
3、查看現有的路由表
[root@localhost~]
#iprouteshow
defaultvia172.16.0.1deveno16777728protostaticmetric100
172.16.0.0
/16
deveno16777728protokernelscopelinksrc172.16.9.9metric100
4、添加刪除路由和網關
#添加路由
[root@localhost~]
#iprouteadd172.16.200.51via172.16.0.1deveno16777728src172.16.9.9
[root@localhost~]
#iprouteshow
defaultvia172.16.0.1deveno16777728protostaticmetric100
172.16.0.0
/16
deveno16777728protokernelscopelinksrc172.16.9.9metric100
172.16.200.51via172.16.0.1deveno16777728src172.16.9.9
#172.16.200.51為目標ip
#172.16.0.1為路由
#172.16.9.9為源ip
#刪除路由
[root@localhost~]
#iproutedel172.16.200.51
[root@localhost~]
#iproute
defaultvia172.16.0.1deveno16777728protostaticmetric100
172.16.0.0
/16
deveno16777728protokernelscopelinksrc172.16.9.9metric100
#添加默認網關
[root@localhost~]
#iprouteadddefaultvia172.16.0.1deveno16777728
[root@localhost~]
#iprouteshow
defaultvia172.16.0.1deveno16777728
defaultvia172.16.0.1deveno16777728protostaticmetric100
172.16.0.0
/16
deveno16777728protokernelscopelinksrc172.16.9.9metric100
#刪除剛才添加的網關
[root@localhost~]
#iproutedeldefaultvia172.16.0.1deveno16777728
[root@localhost~]
#iproute
defaultvia172.16.0.1deveno16777728protostaticmetric100
172.16.0.0
/16
deveno16777728protokernelscopelinksrc172.16.9.9metric100
4、關閉網卡修改網卡名稱
[root@localhost~]
#iplinkseteno16777728down
[root@localhost~]
#iplinkseteno16777728nameeth0
[root@localhost~]
#iplinksetshow
[root@localhost~]
#iplinkseteth0up
#這樣就把eno16777728改為了eth0,但是因為/etc/sysconfig/network-scripts/ifcfg-eno16777728還是原來的
#名字所以,配置不會跟著到eth0上,所以要完整的改名需要改變此配置文件中NAME=eth0,並將此文件名改為
#ifcfg-eth0
netstat命令主要用來查看整個系統的網絡情況
1、選項:
-a或--all:顯示所有連線中的端口;
-A<網絡類型>或--<網絡類型>:列出該網絡類型連線中的相關地址;
-c或--continuous:持續列出網絡狀態;
-C或--cache:顯示路由器配置的快取信息;
-e或--extend:顯示網絡其他相關信息;
-F或--fib:顯示FIB;
-g或--groups:顯示多重廣播功能群組組員名單;
-h或--help:在線幫助;
-i或--interfaces:顯示網絡界面信息表單;
-l或--listening:顯示監控中的服務器的Socket;
-M或--masquerade:顯示偽裝的網絡連線;
-n或--numeric:直接使用ip地址,而不通過域名服務器;
-N或--netlink或--symbolic:顯示網絡硬件外圍設備的符號連接名稱;
-o或--timers:顯示計時器;
-p或--programs:顯示正在使用Socket的程序識別碼和程序名稱;
-r或--route:顯示Routing Table;
-s或--statistice:顯示網絡工作信息統計表;
-t或--tcp:顯示TCP傳輸協議的連線狀況;
-u或--udp:顯示UDP傳輸協議的連線狀況;
-v或--verbose:顯示指令執行過程;
-V或--version:顯示版本信息;
-w或--raw:顯示RAW傳輸協議的連線狀況;
-x或--unix:此參數的效果和指定"-A unix"參數相同;
--ip或--inet:此參數的效果和指定"-A inet"參數相同。
2、常用的組合:
-tan, -uan, -tnl, -unl
#顯示連接的tcp端口
[root@localhostnetwork-scripts]
#netstat-tan
ActiveInternetconnections(serversandestablished)
ProtoRecv-QSend-QLocalAddressForeignAddressState
tcp000.0.0.0:220.0.0.0:*LISTEN
tcp00127.0.0.1:250.0.0.0:*LISTEN
tcp052172.16.9.9:22172.16.7.211:54886ESTABLISHED
tcp600:::80:::*LISTEN
tcp600:::22:::*LISTEN
tcp600::1:25:::*LISTEN
#顯示連接中的udp端口
[root@localhostnetwork-scripts]
#netstat-uan
#顯示所有處於監聽(LISTEN)狀態的tcp端口
[root@localhostnetwork-scripts]
#netstat-tnl
ActiveInternetconnections(onlyservers)
ProtoRecv-QSend-QLocalAddressForeignAddressState
tcp000.0.0.0:220.0.0.0:*LISTEN
tcp00127.0.0.1:250.0.0.0:*LISTEN
tcp600:::80:::*LISTEN
tcp600:::22:::*LISTEN
tcp600::1:25:::*LISTEN
#顯示所有處於監聽狀態的udp端口
[root@localhostnetwork-scripts]
#netstat-unl
ss和netstat類似,但是顯示的信息更詳細,速度更快,在連接數上萬的情況下用ss比netstat更快更高效,所以推薦使用ss
1、選項:
-t: tcp協議相關
-u: udp協議相關
-w: 裸套接字相關
-x:unix sock相關
-l: listen狀態的連接
-a: 所有
-n: 數字格式
-p: 相關的程序及PID
-e: 擴展的信息
-m:內存用量
-o:計時器信息
2、常用組合
-tan:顯示所有連接的tcp端口
-tanl:顯示處於監聽狀態的tcp端口
-tanlp:顯示監聽狀態的tcp端口並顯示對應程序的PID
-uan:顯示所有連接的udp端口
-uanl:顯示處於監聽狀態的udp端口
-uanlp:顯示監聽狀態的udp端口並顯示對應程序的PID
[root@localhostnetwork-scripts]
#ss-tan
StateRecv-QSend-QLocalAddress:PortPeerAddress:Port
LISTEN0128*:22*:*
LISTEN0100127.0.0.1:25*:*
ESTAB052172.16.9.9:22172.16.7.211:54886
LISTEN0128:::80:::*
LISTEN0128:::22:::*
LISTEN0100::1:25:::*
[root@localhostnetwork-scripts]
#ss-tanl
StateRecv-QSend-QLocalAddress:PortPeerAddress:Port
LISTEN0128*:22*:*
LISTEN0100127.0.0.1:25*:*
LISTEN0128:::80:::*
LISTEN0128:::22:::*
LISTEN0100::1:25:::*
[root@localhostnetwork-scripts]
#ss-tanlp
StateRecv-QSend-QLocalAddress:PortPeerAddress:Port
LISTEN0128*:22*:*
users
:((
"sshd"
,pid=1250,fd=3))
LISTEN0100127.0.0.1:25*:*
users
:((
"master"
,pid=2365,fd=13))
LISTEN0128:::80:::*
users
:((
"httpd"
,pid=2824,fd=4),(
"httpd"
,pid=2823,fd=4),(
"httpd"
,pid=2822,fd=4),(
"httpd"
,pid=2821,fd=4))
LISTEN0128:::22:::*
users
:((
"sshd"
,pid=1250,fd=4))
LISTEN0100::1:25
1、前面所有的修改網絡參數的命令在重啟系統之後就會失效,只有更改網絡配置文件/etc/sysconfig/network-scripts/ifcfg-eno16777728【注意這是Centos7的,Centos6為ifcfg-eth0】在重啟之後才會有效
[root@localhostnetwork-scripts]
#vim/etc/sysconfig/network-scripts/ifcfg-eno16777728
TYPE=
"Ethernet"
#接口類型
BOOTPROTO=
"static"
#激活此設備時使用的地址配置協議,常用的dhcp,static,none,bootp
DEFROUTE=
"yes"
PEERDNS=
"yes"
#如果BOOTPROTO的值為“dhcp”,是否允許dhcpserver分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中
PEERROUTES=
"yes"
IPV4_FAILURE_FATAL=
"no"
NAME=
"eno16777728"
#設備名稱
UUID=
"758d5aa7-239e-4488-94b3-6c3f33688dd5"
#設備的唯一標識
DEVICE=
"eno16777728"
#此配置文件應用到的設備
ONBOOT=
"yes"
#在系統引導時是否激活此設備
IPADDR=
"172.16.9.9"
#IP地址
NETMASK=
"255.255.0.0"
#子網掩碼
GATEWAY=
"172.16.0.1"
#默認網關
DNS1=
"61.128.128.68"
#DNS服務器1
DNS2=
"61.128.192.68"
#DNS服務器2
注意:記得重啟網絡服務方能生效;
重啟網絡服務:service network restart
/etc/rc.d/init.d/network restart
2、路由表的配置文件/etc/sysconfig/network-scripts/route-eno16777728【注意這是Centos7的,Centos6為ifcfg-eth0】
路由表有兩種風格,
#第一種
#目標網絡via路由
172.16.55.34via172.16.0.1
#第二種
#每三行定義一條路由
#目標地址
#子網掩碼
#路由
ADDRESS0=172.16.55.34
NETMASK0=255.255.0.0
GATEWAY0=172.16.0.1
注意:記得重啟網絡服務方能生效;
重啟網絡服務:service network restart
/etc/rc.d/init.d/network restart
http://xxxxxx/Linuxjc/1134206.html TechArticle