1. 程式人生 > >Centos的網路配置命令和檔案

Centos的網路配置命令和檔案

一、ifcongfig

Centos6之前最常用的配置網路命令就是ifconfig,使用ifconfig命令時最好切換到root使用者的身份

1、直接使用ifconfig可以檢視當前配置的網路裝置的資訊

例如

[[email protected] ~]# ifconfig
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.9.9  netmask 255.255.0.0  broadcast 172.16.255.255
        inet6 fe80::20c:29ff:fe83:15cb  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:83:15:cb  txqueuelen 1000  (Ethernet)
        RX packets 120796  bytes 20258545 (19.3 MiB)
        RX errors 0  dropped 1418  overruns 0  frame 0
        TX packets 28466  bytes 47363344 (45.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

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 0  (Local Loopback)
        RX packets 20  bytes 1780 (1.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 20  bytes 1780 (1.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

這裡可以看到我目前有一個網路裝置eno16777728和一個網路迴環介面lo,常見的網路介面有以下幾個

eth0: ethernet的簡寫,一般用於乙太網介面。在centos7上是eno16777728
wifi0:wifi是無線區域網,因此wifi0一般指無線網路介面。
ath0: Atheros的簡寫,一般指Atheros晶片所包含的無線網路介面。

2、用ifconfig啟動或關閉指定網絡卡

ifconfig up 啟動指定的網路裝置
ifconfig down 關閉指定的網路裝置

網絡卡名稱一定要寫在down或up之前

[
[email protected]
 ~]# ifconfig eno16777728 down [[email protected] ~]# ifconfig eno16777728 up

3、用ifconfig配置網路地址和閘道器

比如這裡我配置eth0網絡卡的ip地址為:172.16.7.254子網掩碼為255.255.0.0

注意用ifconfig改網路配置會立即生效

[[email protected] ~]# ifconfig eth0 172.16.7.254 netmask 255.255.0.0
[
[email protected]
 ~]# ifconfig eth0      Link encap:Ethernet  HWaddr 00:0C:29:5E:4B:1F             inet addr:172.16.7.254  Bcast:172.16.255.255  Mask:255.255.0.0           inet6 addr: fe80::20c:29ff:fe5e:4b1f/64 Scope:Link           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1           RX packets:1372221 errors:2 dropped:0 overruns:0 frame:0           TX packets:3465 errors:0 dropped:0 overruns:0 carrier:0           collisions:0 txqueuelen:1000            RX bytes:119202924 (113.6 MiB)  TX bytes:334330 (326.4 KiB)           Interrupt:19 Base address:0x2000

還可以給一個網絡卡配上多個地址,例如

[[email protected] ~]# ifconfig eth0:0 172.16.7.225 netmask 255.255.0.0
[[email protected] ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:5E:4B:1F  
          inet addr:172.16.7.254  Bcast:172.16.255.255  Mask:255.255.0.0
          inet6 addr: fe80::20c:29ff:fe5e:4b1f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1375940 errors:2 dropped:0 overruns:0 frame:0
          TX packets:3579 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:119494875 (113.9 MiB)  TX bytes:348430 (340.2 KiB)
          Interrupt:19 Base address:0x2000 

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:5E:4B:1F  
          inet addr:172.16.7.225  Bcast:172.16.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:19 Base address: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

route命令用於管理本機路由表,路由表就是指,本機訪問指定的主機或網路需要通過的網路介面,簡單點理解,你的閘道器就是通往所有其他網路所必須要經過的網路介面。

[[email protected] ~]# route 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.0.0      *               255.255.0.0     U     0      0        0 eth0

Destination代表目標網路
Gateway代表閘道器地址,*代表目標是本機網路不需要閘道器
Genmask代表你要訪問的網路的子網掩碼
Flags為路由標誌,標記當前網路節點的狀態。
    Flags標誌說明:
        U Up表示此路由當前為啟動狀態
        H Host,表示此閘道器為一主機
        G Gateway,表示此閘道器為一路由器
        R Reinstate Route,使用動態路由重新初始化的路由
        D Dynamically,此路由是動態性地寫入
        M Modified,此路由是由路由守護程式或導向器動態修改
        ! 表示此路由當前為關閉狀態
Metric代表路由距離,到達指定網路所需的中轉數
Ref代表路由項引用次數
Use代表此路由項被路由軟體查詢的次數
Iface 該路由表項對應的輸出介面

route常用命令:

add : 新增一條路由規則
del : 刪除一條路由規則
-net : 目的地址是一個網路
-host : 目的地址是一個主機
target : 目的網路或主機
netmask : 目的地址的網路掩碼
gw : 路由資料包通過的閘道器
dev : 為路由指定的網路介面

1、新增一個主機路由到eth0

[[email protected] ~]# route add -host 172.16.1.2  dev eth0
[[email protected] ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.2      *               255.255.255.255 UH    0      0        0 eth0
172.16.0.0      *               255.255.0.0     U     0      0        0 eth0

2、刪除路由

[[email protected] ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.2      *               255.255.255.255 UH    0      0        0 eth0
192.168.122.0   *               255.255.255.0   U     0      0        0 virbr0
172.16.0.0      *               255.255.0.0     U     0      0        0 eth0

[[email protected] ~]# route del -net 192.168.122.0 netmask 255.255.255.0 virbr0

[[email protected] ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.2      *               255.255.255.255 UH    0      0        0 eth0
172.16.0.0      *               255.255.0.0     U     0      0        0 eth0

3、新增預設閘道器

[[email protected] ~]# route add default gw 172.16.0.1
[[email protected] ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.2      *               255.255.255.255 UH    0      0        0 eth0
172.16.0.0      *               255.255.0.0     U     0      0        0 eth0
default         172.16.0.1      0.0.0.0         UG    0      0        0 eth0

4、刪除預設閘道器

[[email protected] ~]# route del default eth0
[[email protected] ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.2      *               255.255.255.255 UH    0      0        0 eth0
172.16.0.0      *               255.255.0.0     U     0      0        0 eth0

5、新增網路到路由

[[email protected] ~]# route add -net 172.16.9.9 netmask 255.255.255.255 gw 172.16.0.1 eth0
[[email protected] ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.9.9      172.16.0.1      255.255.255.255 UGH   0      0        0 eth0
172.16.1.2      *               255.255.255.255 UH    0      0        0 eth0
172.16.0.0      *               255.255.0.0     U     0      0        0 eth0

三、DNS伺服器指定

編輯/etc/resolv.conf

這裡我配置三個DNS為例

[[email protected] ~]# vim /etc/resolv.conf 
#開啟後的內容
# Generated by NetworkManager


# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com
#下面是三個DNS
DNS1=172.16.0.1
DNS2=8.8.8.8
DNS3=114.114.114.114

四、ip

ip命令的功能和ifconfig類似,但是功能更加強大,所以centos7之後的系統有得包組是不帶ifconfig而只帶ip命令了

1、檢視當前配置的所有網路裝置的資訊

[[email protected] ~]# ip addr
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
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:83:15:cb brd ff:ff:ff:ff:ff:ff
    inet 172.16.9.9/16 brd 172.16.255.255 scope global eno16777728
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe83:15cb/64 scope link 
       valid_lft forever preferred_lft forever

後面接上指定的網絡卡也可以檢視指定網絡卡的資訊,也可使用ip address show

2、新增刪除地址

新增

[[email protected] ~]# ip addr add 172.16.9.10 dev eno16777728:1
[[email protected] ~]# ip addr
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
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:83:15:cb brd ff:ff:ff:ff:ff:ff
    inet 172.16.9.9/16 brd 172.16.255.255 scope global eno16777728
       valid_lft forever preferred_lft forever
    inet 172.16.9.10/32 scope global eno16777728
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe83:15cb/64 scope link 
       valid_lft forever preferred_lft forever

刪除

[[email protected] ~]# ip addr del 172.16.9.10 dev eno16777728:1
[[email protected] ~]# ip addr
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
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:83:15:cb brd ff:ff:ff:ff:ff:ff
    inet 172.16.9.9/16 brd 172.16.255.255 scope global eno16777728
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe83:15cb/64 scope link 
       valid_lft forever preferred_lft forever

3、檢視現有的路由表

[[email protected] ~]# ip route show
default via 172.16.0.1 dev eno16777728  proto static  metric 100 
172.16.0.0/16 dev eno16777728  proto kernel  scope link  src 172.16.9.9  metric 100

4、新增刪除路由和閘道器

新增路由

[[email protected] ~]# ip route add 172.16.200.51 via 172.16.0.1 dev eno16777728 src 172.16.9.9
[[email protected] ~]# ip route show
default via 172.16.0.1 dev eno16777728  proto static  metric 100 
172.16.0.0/16 dev eno16777728  proto kernel  scope link  src 172.16.9.9  metric 100 
172.16.200.51 via 172.16.0.1 dev eno16777728  src 172.16.9.9
#172.16.200.51為目標ip
#172.16.0.1為路由
#172.16.9.9為源ip

刪除路由

[[email protected] ~]# ip route del 172.16.200.51
[[email protected] ~]# ip route
default via 172.16.0.1 dev eno16777728  proto static  metric 100 
172.16.0.0/16 dev eno16777728  proto kernel  scope link  src 172.16.9.9  metric 100

新增預設閘道器

[[email protected] ~]# ip route add default via 172.16.0.1 dev eno16777728
[[email protected] ~]# ip route show
default via 172.16.0.1 dev eno16777728 
default via 172.16.0.1 dev eno16777728  proto static  metric 100 
172.16.0.0/16 dev eno16777728  proto kernel  scope link  src 172.16.9.9  metric 100

刪除剛才新增的閘道器

[[email protected] ~]# ip route del default via 172.16.0.1 dev eno16777728
[[email protected] ~]# ip route
default via 172.16.0.1 dev eno16777728  proto static  metric 100 
172.16.0.0/16 dev eno16777728  proto kernel  scope link  src 172.16.9.9  metric 100

5、關閉網絡卡修改網絡卡名稱

[[email protected] ~]# ip link set eno16777728 down
[[email protected] ~]# ip link set eno16777728 name eth0
[[email protected] ~]# ip link set show
[[email protected] ~]# ip link set eth0 up
#這樣就把eno16777728改為了eth0,但是因為/etc/sysconfig/network-scripts/ifcfg-eno16777728還是原來的
#名字所以,配置不會跟著到eth0上,所以要完整的改名需要改變此配置檔案中NAME=eth0,並將此檔名改為
#ifcfg-eth0

五、netstat

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埠

[[email protected] network-scripts]# netstat -tan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0     52 172.16.9.9:22           172.16.7.211:54886      ESTABLISHED
tcp6       0      0 :::80                   :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN

顯示連線中的udp埠

[[email protected] network-scripts]# netstat -uan

顯示所有處於監聽(LISTEN)狀態的tcp埠

[[email protected] network-scripts]# netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp6       0      0 :::80                   :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN

顯示所有處於監聽狀態的udp埠

[[email protected] network-scripts]# netstat -unl

六、ss

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

例如:

[[email protected] network-scripts]# ss -tan
State       Recv-Q Send-Q      Local Address:Port                     Peer Address:Port              
LISTEN      0      128                     *:22                                  *:*                  
LISTEN      0      100             127.0.0.1:25                                  *:*                  
ESTAB       0      52             172.16.9.9:22                       172.16.7.211:54886              
LISTEN      0      128                    :::80                                 :::*                  
LISTEN      0      128                    :::22                                 :::*                  
LISTEN      0      100                   ::1:25                                 :::*                  

[[email protected] network-scripts]# ss -tanl
State       Recv-Q Send-Q      Local Address:Port                     Peer Address:Port              
LISTEN      0      128                     *:22                                  *:*                  
LISTEN      0      100             127.0.0.1:25                                  *:*                  
LISTEN      0      128                    :::80                                 :::*                  
LISTEN      0      128                    :::22                                 :::*                  
LISTEN      0      100                   ::1:25                                 :::*                  

[[email protected] network-scripts]# ss -tanlp
State       Recv-Q Send-Q      Local Address:Port                     Peer Address:Port              
LISTEN      0      128                     *:22                                  *:*                   users:(("sshd",pid=1250,fd=3))
LISTEN      0      100             127.0.0.1:25                                  *:*                   users:(("master",pid=2365,fd=13))
LISTEN      0      128                    :::80                                 :::*                   users:(("httpd",pid=2824,fd=4),("httpd",pid=2823,fd=4),("httpd",pid=2822,fd=4),("httpd",pid=2821,fd=4))
LISTEN      0      128                    :::22                                 :::*                   users:(("sshd",pid=1250,fd=4))
LISTEN