天天看點

Linux網絡配置

    Linux主機在區域網路或者網際網路上通信的時候,需要設定IP位址,網關,DNS,路由等相關屬性。在Linux中這些設定有2種方式:

指令行設定

此設定會立即生效,但系統重新登入後不會生效。

配置檔案設定

此設定不會立即生效,但系統再次登入後會生效,所謂永久生效。

    以下所有設定均以CentOS6系列為例:

一、設定主機名

臨時設定:

    hostname [USER_NAME] 

1

2

3

4

5

6

7

8

<code># hostname 直接使用就是檢視目前系統的主機名</code>

<code>[root@server ~]</code><code># hostname </code>

<code>server.example.com</code>

<code># hostname USER_NAME 如果後面有使用者名則是修改目前系統的主機名</code>

<code>[root@server ~]</code><code># hostname alex.example.com</code>

<code>alex.example.com</code>

<code>[root@server ~]</code><code>#</code>

永久設定:

    配置檔案的路徑是:/etc/sysconfig/network,如下:

<code># 這個檔案是Linux網絡的“總開關”,像網關,DNS等屬性都可以在這裡設定</code>

<code>[root@server ~]</code><code># cat /etc/sysconfig/network</code>

<code># 這個選項是是否啟動網絡服務,如果是 no 即使你的其他配置都正确,也不能上網</code>

<code>NETWORKING=</code><code>yes</code>

<code># HOSTNMAE 關鍵字就是設定主機名的,設定格式如下:</code>

<code>HOSTNAME=server.example.com</code>

二、設定主機的IP位址

    ifconfig [options] [IFNMAE [IP netmask MASK]]

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

<code># ifconfig 檢視目前處于激活狀态的網卡配置資訊</code>

<code># ifconfig -a 檢視系統中所有的網卡配置資訊</code>

<code>[root@server ~]</code><code># ifconfig </code>

<code>eth0      Link encap:Ethernet  HWaddr 00:0C:29:9E:A3:0E  </code>

<code>          </code><code>inet addr:172.16.9.10  Bcast:172.16.255.255  Mask:255.255.0.0</code>

<code>          </code><code>inet6 addr: fe80::20c:29ff:fe9e:a30e</code><code>/64</code> <code>Scope:Link</code>

<code>          </code><code>UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1</code>

<code>          </code><code>RX packets:273411 errors:0 dropped:0 overruns:0 frame:0</code>

<code>          </code><code>TX packets:2495 errors:0 dropped:0 overruns:0 carrier:0</code>

<code>          </code><code>collisions:0 txqueuelen:1000 </code>

<code>          </code><code>RX bytes:17152580 (16.3 MiB)  TX bytes:297433 (290.4 KiB)</code>

<code>lo        Link encap:Local Loopback  </code>

<code>          </code><code>inet addr:127.0.0.1  Mask:255.0.0.0</code>

<code>          </code><code>inet6 addr: ::1</code><code>/128</code> <code>Scope:Host</code>

<code>          </code><code>UP LOOPBACK RUNNING  MTU:16436  Metric:1</code>

<code>          </code><code>RX packets:6 errors:0 dropped:0 overruns:0 frame:0</code>

<code>          </code><code>TX packets:6 errors:0 dropped:0 overruns:0 carrier:0</code>

<code>          </code><code>collisions:0 txqueuelen:0 </code>

<code>          </code><code>RX bytes:330 (330.0 b)  TX bytes:330 (330.0 b)</code>

<code>          </code> 

<code># ifconfig DEVICE  檢視系統中特定網卡配置資訊</code>

<code>[root@server ~]</code><code># ifconfig eth0</code>

<code>          </code><code>RX packets:273444 errors:0 dropped:0 overruns:0 frame:0</code>

<code>          </code><code>TX packets:2510 errors:0 dropped:0 overruns:0 carrier:0</code>

<code>          </code><code>RX bytes:17155146 (16.3 MiB)  TX bytes:299847 (292.8 KiB)</code>

<code>        </code> 

<code>[root@server ~]</code><code># ifconfig eth1</code>

<code>eth1      Link encap:Ethernet  HWaddr 00:0C:29:9E:A3:18  </code>

<code>          </code><code>inet addr:172.16.9.18  Bcast:172.16.255.255  Mask:255.255.0.0</code>

<code>          </code><code>inet6 addr: fe80::20c:29ff:fe9e:a318</code><code>/64</code> <code>Scope:Link</code>

<code>          </code><code>RX packets:704 errors:0 dropped:0 overruns:0 frame:0</code>

<code>          </code><code>TX packets:22 errors:0 dropped:0 overruns:0 carrier:0</code>

<code>          </code><code>RX bytes:60911 (59.4 KiB)  TX bytes:1468 (1.4 KiB)</code>

<code># 臨時修改網卡的IP位址,修改完成時候會立即生效</code>

<code># ifconfig eth1 192.168.0.55/24 up中的up是啟用網卡,如果不啟用可以使用down</code>

<code># 啟動和關閉一個網卡,例如:啟動eth1網卡</code>

<code>#  igconfig eth1 up</code>

<code>#  或者 ifup  eth1 (ifdown eth1 關閉)</code>

<code>[root@server ~]</code><code># ifconfig eth1 192.168.0.55/24 up</code>

<code>          </code><code>inet addr:192.168.0.55  Bcast:192.168.0.255  Mask:255.255.255.0</code>

<code>          </code><code>RX packets:844 errors:0 dropped:0 overruns:0 frame:0</code>

<code>          </code><code>RX bytes:72758 (71.0 KiB)  TX bytes:1468 (1.4 KiB)</code>

<code>[root@server ~]</code><code># </code>

<code># ifconfig設定網卡别名</code>

<code>[root@server ~]</code><code># ifconfig eth1:0 192.168.0.58/24 up</code>

<code>[root@server ~]</code><code># ifconfig eth1:0</code>

<code>eth1:0    Link encap:Ethernet  HWaddr 00:0C:29:9E:A3:18  </code>

<code>          </code><code>inet addr:192.168.0.58  Bcast:192.168.0.255  Mask:255.255.255.0</code>

    配置檔案在 /etc/sysconfig/network-scripts/ 目錄下:每個網卡對應一個配置檔案(包括網卡别名的) ifcfg-IFNAME。例如:eth0網卡的配置檔案是 ifcfg-eth0。

    這個配置檔案中的一些關鍵字和意義如下:

DEVICE=IFNAME 此配置檔案所關聯到的裝置,裝置名稱要與本檔案名ifcfg-後面保持一緻

BOOTPROTO={bootp|dhcp|static|none} IP位址配置協定,常用的是dhcp和none(static)

HWADDR=11:22:33:44:55:66  目前裝置的MAC位址,用六個位元組辨別

NM_CONTROLLED={yes|no} 是否接受NetworkManager服務腳本來配置此裝置,CentOS6建議關閉,因為其不支援橋接模式。CentOS7中已經支援。 

ONBOOT={yes|no} 是否在開機過程中,自動激活此接口

TYPE={Ethernet|Bridge} 網絡接口類型

UUID= 裝置辨別号

IPADDR=IP位址    設定IP位址,隻有在BOOTPROTO={none|static}設定才有效

NETMASK=   掩碼位址,此設定也可用 PREFIX=n (n為掩碼位數)

GATEWAY=    網關位址,要與IP位址屬于同一網段

DNS1=    DNS伺服器位址位址

DNS2=

IPV6INIT={yes|no} 是否支援IPV6

USERCTL={yes|no} 是否允許普通用控制此接口

PEERDNS={yes|no} 不接受DHCP伺服器指派的DNS伺服器位址

    要想永久設定有效的話,将這些資訊寫到對應網卡的配置檔案中,然後重新啟動網絡服務即可,/etc/init.d/network restart。

三、設定路由資訊

    使用route [options] [add|del] [-net|-host IP gw NEXT_HOP] [dev DEVICE]指令設定。

<code># 檢視路由表</code>

<code>[root@server ~]</code><code># route </code>

<code>Kernel IP routing table</code>

<code>Destination     Gateway         Genmask         Flags Metric Ref    Use Iface</code>

<code>link-</code><code>local</code>      <code>*               255.255.0.0     U     1002   0        0 eth0</code>

<code>link-</code><code>local</code>      <code>*               255.255.0.0     U     1003   0        0 eth1</code>

<code>172.16.0.0      *               255.255.0.0     U     0      0        0 eth0</code>

<code>172.16.0.0      *               255.255.0.0     U     0      0        0 eth1</code>

<code>default         server.magelinu 0.0.0.0         UG    0      0        0 eth0</code>

<code># route -n 以數字形式顯示路由表</code>

<code>[root@server ~]</code><code># route -n</code>

<code>169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0</code>

<code>169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1</code>

<code>172.16.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth0</code>

<code>172.16.0.0      0.0.0.0         255.255.0.0     U     0      0        0 eth1</code>

<code>0.0.0.0         172.16.0.1      0.0.0.0         UG    0      0        0 eth0</code>

<code># 增加一條主機路由</code>

<code>[root@server ~]</code><code># route add -host 172.16.9.18 gw 172.16.0.1 dev eth0</code>

<code># 增加一條網絡路由</code>

<code>[root@server ~]</code><code># route add -net 10.0.0.0/8 gw 172.16.0.1 dev eth0</code>

<code>172.16.9.18     172.16.0.1      255.255.255.255 UGH   0      0        0 eth0</code>

<code>10.0.0.0        172.16.0.1      255.0.0.0       UG    0      0        0 eth0</code>

<code># 設定預設路由</code>

<code># route add default gw NEXT_HOP</code>

<code># 删除主機路由和網絡路由</code>

<code>[root@server ~]</code><code># route del -net 10.0.0.0/8  dev eth0</code>

<code>[root@server ~]</code><code># route del -host 172.16.9.18  dev eth0</code>

永久生效:

    配置檔案在 /etc/sysconfig/network-scripts/ 目錄下:每個網卡的路由資訊對應一個配置檔案(包括網卡别名的) route-IFNAME。例如:eth0網卡的配置路由檔案是 route-eth0。

    設定格式:

    配置檔案的格式1:每行一個路由條目

        DESTINATION via NETX_HOP

<code>192.168.0.0</code><code>/24</code> <code>via 172.16.0.1</code>

    配置檔案格式2: 每三行一個路由條目

        ADDRESS#=DESTINATION

        NETMASK#=MASK

        GATEWAY#=GW

<code># 要是設定主機路由的話,掩碼位數是32位</code>

<code>ADDRESS0=192.168.0.0</code>

<code>NETMASK0=255.255.0.0</code>

<code>GATEWAY=172.16.0.1</code>

四、ip指令

    ip的指令功能比較強大。

ip指令常用選項:

ip link : 管理接口

        show [IFNAME]

        set IFNAME {up|down}

<a href="http://s3.51cto.com/wyfs02/M01/3E/3A/wKiom1PGZ0XyyyLbAAQtfwB6iNo381.jpg" target="_blank"></a>

ip addr: 管理協定位址

    ip addr {show|flush} [dev DEVICE] 檢視網卡的IP位址

<a href="http://s3.51cto.com/wyfs02/M01/3E/3A/wKiom1PGaGqRFXHjAAK_RAHksFs558.jpg" target="_blank"></a>

    ip addr {add|del} ADDRESS dev DEVICE  [label IFALIAS] [broadcast BCAST_ADDRESS],為一個網卡添加多個IP位址

ip route: 管理路由:

    ip route list

<a href="http://s3.51cto.com/wyfs02/M01/3E/3A/wKiom1PGbKGjyMWOAAH8wWVbb6M981.jpg" target="_blank"></a>

    ip route flush 

    ip route add DESTINATION [via NEXT_HOP] [src SOURCE_ADDRESS] [dev DEVICE]

    ip route del DESTINATION

<a href="http://s3.51cto.com/wyfs02/M02/3E/3A/wKiom1PGbZ_y73bhAAEnaxH-tY0475.jpg" target="_blank"></a>

    ip指令還有其他子指令,讀者可自行查閱 man 手冊。

五、網絡管理工具

測試網絡的連通屬性:

    ping 指令,實作的ICMP協定

    常用參數:

        -W timeout: 一個封包等待響應封包的逾時時長

        -c #:封包個數

        -w time:一共持續的時間

<a href="http://s3.51cto.com/wyfs02/M00/3E/3B/wKioL1PGcUiAvsipAAFhFsSeUqs175.jpg" target="_blank"></a>

追蹤網絡路由:

    就是顯示出我們到達一個網絡所經過的路由資訊。常用的指令有traceroute 和 mtr。

<a href="http://s3.51cto.com/wyfs02/M02/3E/3B/wKioL1PGfLXx5y37AAKSgvbSSDI435.jpg" target="_blank"></a>

    mtr指令式實時監測顯示的:

<a href="http://s3.51cto.com/wyfs02/M01/3E/3B/wKioL1PGfbmyqVNuAAIbIfEpKWk819.jpg" target="_blank"></a>

檢視網絡狀态:

    常用指令是:netstat和ss。

    netstat常用選項:

        -t: tcp協定相關

        -u: udp協定相關

        -n: 顯示數字格式的位址

        -l: listen,顯示處于監聽狀态的連接配接

        -p: 顯示會話中的程序程式名及程序号

<a href="http://s3.51cto.com/wyfs02/M02/3E/3B/wKioL1PGgZ2hdkFEAANkypmp-Fg940.jpg" target="_blank"></a>

         -a: 所有狀态的連接配接

<a href="http://s3.51cto.com/wyfs02/M00/3E/3B/wKiom1PGgPnAFIRTAASd_w7bd1w444.jpg" target="_blank"></a>

        -r: routing,顯示路由表

<a href="http://s3.51cto.com/wyfs02/M00/3E/3B/wKiom1PGf53BZJNGAAEpoTvB4wY426.jpg" target="_blank"></a>

    ss指令也可以顯示這些狀态:

    常用選型:

        -t: tcp相關

        -u: udp相關

        -p: 顯示程序号

        -l: listen,顯示處于監聽狀态的連接配接

        -m: 套接字相關的記憶體使用資訊

<a href="http://s3.51cto.com/wyfs02/M01/3E/3B/wKioL1PGhHDw3UUlAAITPGYUB90227.jpg" target="_blank"></a>

        -a: all

        -e: 擴充資訊

        -o state {established,fin_wait_1, fin_wait_2, listening}

        '( dport =   or sport =  )'

        隻顯示指定狀态的連接配接,還可以指定過濾條件

<a href="http://s3.51cto.com/wyfs02/M00/3E/3B/wKiom1PGhtKhUDxWAAEX4TsUcVk012.jpg" target="_blank"></a>

顯示網絡接口裝置的屬性資訊:

    ethtool:檢視網路接口裝置本身的屬性

<a href="http://s3.51cto.com/wyfs02/M02/3E/3B/wKioL1PGiJzD4lWfAAIaN8RQU2U692.jpg" target="_blank"></a>

    本文主要介紹主機名,ip位址,路由的檢視與設定、網路管理的工具。對于網絡知識原理的部分沒有深入講解,對于原理不懂的讀者可自行查閱相關資料。

本文轉自 羊木狼 51CTO部落格,原文連結:http://blog.51cto.com/guoting/1439144,如需轉載請自行聯系原作者

繼續閱讀