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,如需轉載請自行聯系原作者