詳解Linux 主機網絡接入配置
詳解Linux 主機網絡接入配置
:
網絡配置是我們在安裝好操作系統(tǒng)之后,需要解決的第一步?,F(xiàn)時代沒有接入網絡的主機已然等同于一堆廢鐵。在網絡配置的過程中,通常我們需要配置本機IP地址,缺省網關,DNS,主機名等等。本文主要描述在Linux環(huán)境下,主要以傳統(tǒng)命令行方式講解如何將主機接入網絡。對于網路配置的新命令如ip,nmcli等等在以后的文章中描述。
一、網絡配置概述
主機接入互聯(lián)網前提:遵循TCP/IP協(xié)議棧
配置主機接入TCP/IP網絡需要配置的內容:
IP/Netmask
路由:
主機路由:一臺主機
網絡路由:是一個網絡
默認路由(缺省網關):
DNS服務器:
主DNS服務器
備用DNS服務器
主機名:computer_name.domain.com
網絡設備表示方法(CentOS7版本)
內核識別設備:驅動
網卡命名機制
CentOS 7中,systemd對網絡設備的命名方式
(a) 如果Firmware或BIOS為主板上集成的設備提供的索引信息可用,且可預測則根據(jù)此索引進行命名,例如eno1
(b) 如果Firmware或BIOS為PCI-E擴展槽所提供的索引信息可用,且可預測,則根據(jù)此索引進行命名,例如ens1
(c) 如果硬件接口的物理位置信息可用,則根據(jù)此信息進行命名,例如enp2s0
(d) 如果用戶顯式啟動,也可根據(jù)MAC地址進行命名,enx2387a1dc56;
(e) 上述均不可用時,則使用傳統(tǒng)命名機制,基于BIOS支持biosdevname中
(f) 本地回環(huán) lo
內置網卡:em1,em2
pci卡:pYpX Y:slot ,X:port
名稱組成格式
en: Ethernet 有線局域網
wl: wlan 無線局域網
ww: wwan無線廣域網
名稱類型:
o: 集成設備的設備索引號
s: 擴展槽的索引號
x: 基于MAC地址的命名
ps: enp2s1
二、IP地址配置
動態(tài)配置(IP/Netmask):
DHCP服務器(Dynamic Host Configuration Protocol)
靜態(tài)指定:
用戶空間工具(ifconfig,ip命令),立即生效,但不會長久有效(地址配置在內核,顯示在用戶空間)
網絡設備服務配置文件,完成長久有效配置:
/etc/sysconfig/network-script/ifcfg-eth0
GUI/TUI配置工具
網路配置命令
ifconfig(傳統(tǒng)配置命令)
ifconfig:顯示所有活動狀態(tài)的相關信息
ifconfig Interface:僅顯示指定接口的相關信息
ifconfig Interface Address
ip/mask
長格式:
ifconfig Interface IP netmask MASK
CIDR:無類別的預見路由
ifconfig Interface IP/MASK
ifconfig示例
# more /etc/redhat-release ###當前環(huán)境
CentOS Linux release 7.2.1511 (Core)
# ifconfig |grep eno -A1 ###當前服務器有2塊網卡,分別為eno16777728,eno33554960
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.24.8.131 netmask 255.255.255.0 broadcast 172.24.8.255
--
eno33554960: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.81.144 netmask 255.255.255.0 broadcast 192.168.81.255
# ifconfig eno33554960 192.168.81.145/24
# ifconfig eno33554960|head -2
eno33554960: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.81.145 netmask 255.255.255.0 broadcast 192.168.81.255
# ifconfig eno33554960 down ###禁用當前網卡
# ifconfig eno33554960 up ###激活當前網卡
# ifconfig eno33554960|head -2 ###再次查看網卡,由于使用了DHCP,IP地址被分配為原地址
eno33554960: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.81.144 netmask 255.255.255.0 broadcast 192.168.81.255
網卡手工配置示例
# vi /etc/sysconfig/network-scripts/ifcfg-eno16777728
TYPE="Ethernet" //指定網絡類型為以太網模式
BOOTPROTO="dhcp" //指定啟動地址協(xié)議的獲取方式(dhcp或bootp為自動獲取,none
DEFROUTE="yes" //是否把這個eno16777728設置為默認路由
PEERDNS="yes" //是否允許DHCP服務分配地址時直接更新/etc/resolv.conf中的DNS服務器地址
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no" //如果IPv4配置失敗,設備是否被禁用
IPV6INIT="yes" //允許在該網卡上啟動IPV6的功能
IPV6_AUTOCONF="yes" //是否使用IPV6地址的自動配置
IPV6_DEFROUTE="yes" ### Author : Leshami
IPV6_PEERDNS="yes" ### Blog : http://blog.csdn.net/leshami
IPV6_PEERROUTES="yes" ### QQ/Weixin : 645746311
IPV6_FAILURE_FATAL="no"
NAME="eno16777728" //網絡連接標識名
UUID="52ff246a-d965-4056-b34f-16e8f4df2c0a" //網卡全球通用唯一識別碼
DEVICE="eno16777728" //網絡連接標識名
ONBOOT="yes" //網卡開機后自動啟動
USERCTL=no //是否允許普通用戶操作網卡
PEERDNS={yes|no} //是否允許DHCP服務分配地址時直接更新/etc/resolv.conf中的DNS服務器地址
# systemctl restart network.service //重啟網絡服務,使配置生效
三、路由配置
route(傳統(tǒng)配置命令) route: route:顯示路由信息(網關指的就是下一跳的地址,下一跳地址必須與本地主機位于同一網絡) -n:使用數(shù)字格式顯示,不反解地址到主機名 route add //添加路由 -host HOST_IP gw Next [dev Device] -net Net_ADDR -net 0.0.0.0 目標地址為任意地址,即默認路由 route del //刪除路由 -host HOST_IP gw 下一跳 -net Net_ADDR gw 下一跳 示例: # route # route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 192.168.81.2 0.0.0.0 UG 100 0 0 eno33554960 172.24.8.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777728 192.168.81.0 0.0.0.0 255.255.255.0 U 100 0 0 eno33554960 示例中對于目表為192.168.81.0以及172.24.8.0網絡段的訪問,Gateway為4個0表示沒有網絡,也就是說屬于直連網絡,無需路由 對于目標為default的(當使用route -n時,default為4個0)網絡段時,通過缺省網關192.168.81.2連接目標指向單個 主機的為主機路由,目標網絡地址的為網絡路由,目標指向所有地址(0.0.0.0或者default)的為默認路由。 route輸出具體描述 route命令輸出的路由表字段含義如下: Destination 目標 The destination network or destination host. 目標網絡或目標主機。 Gateway 網關 The gateway address or '*' if none set. 網關地址,如果沒有就顯示星號。 Genmask 網絡掩碼 The netmask for the destination net; '255.255.255.255' for a host destination and '0.0.0.0' for the default route. Flags:總共有多個旗標,代表的意義如下: U (route is up):該路由是啟動的; H (target is a host):目標是一部主機 (IP) 而非網域; G (use gateway):需要透過外部的主機 (gateway) 來轉遞封包; R (reinstate route for dynamic routing):使用動態(tài)路由時,恢復路由資訊的旗標; D (dynamically installed by daemon or redirect):已經由服務或轉 port 功能設定為動態(tài)路由 M (modified from routing daemon or redirect):路由已經被修改了; ! (reject route):這個路由將不會被接受(用來抵擋不安全的網域!) A (installed by addrconf) C (cache entry) Metric 距離、跳數(shù)。暫無用。 The 'distance' to the target (usually counted in hops). It is not used by recent kernels, but may be needed by routing dae- mons. Ref 不用管,恒為0。 Number of references to this route. (Not used in the Linux ker-nel.) Use 該路由被使用的次數(shù),可以粗略估計通向指定網絡地址的網絡流量。 Count of lookups for the route. Depending on the use of -F and Iface 從哪一個網絡接口路由出去,如本例中的eno33554960 Interface to which packets for this route will be sent. 添加網絡路由 當前本機IP地址為172.24.8.131 假定要到達目標地址為:192.168.10.0/24,下一跳為 172.24.8.2 則添加路由命令如下 # route add -net 192.168.10.0/24 gw 172.24.8.2 ###此時為網絡網關(路由) # route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.81.2 0.0.0.0 UG 100 0 0 eno33554960 172.24.8.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777728 192.168.10.0 172.24.8.2 255.255.255.0 UG 0 0 0 eno16777728 192.168.81.0 0.0.0.0 255.255.255.0 U 100 0 0 eno33554960 可以看到上述多出了一條路由記錄,目標網絡為192.168.10.0 新添加的路由接口設備自動使用了eno16777728網卡,因為172.24.8.2與eno16777728 IP為同一網段內 添加主機路由 假定要到達目標地址為:192.168.20.1,下一跳為: 172.16.100.177 # route add -host 192.168.20.1 gw 172.16.100.177 SIOCADDRT: Network is unreachable #提示網絡不可達,因為172.16.100.177不在當前兩塊網卡的任一網段內 下面修改下一跳地址為172.24.8.254再次嘗試添加 # route add -host 192.168.20.1 gw 172.24.8.254 ###此處無需指定隱碼 # route -n ###在下面的列表中Flags有一個H,表示此條為主機路由 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.81.2 0.0.0.0 UG 100 0 0 eno33554960 172.24.8.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777728 192.168.10.0 172.24.8.2 255.255.255.0 UG 0 0 0 eno16777728 192.168.20.1 172.24.8.254 255.255.255.255 UGH 0 0 0 eno16777728 192.168.81.0 0.0.0.0 255.255.255.0 U 100 0 0 eno33554960 路由表描述 對于請求到192.168.10.0的網路,路由地址為172.24.8.2,經由網卡eno16777728 對于請求到192.168.20.1的主機,路由地址為172.24.8.254,經由網卡eno16777728 對于請求172.24.8.0以及192.168.81.0的網絡,為直連網絡,無需路由 對于請求到0.0.0.0的網絡經由192.168.81.2從網卡eno33554960進行路由,如訪問百度則由此路由 # ping www.baidu.com -c 2 PING www.baidu.com (14.215.177.38) 56(84) bytes of data. 64 bytes from 14.215.177.38: icmp_seq=1 ttl=128 time=5.76 ms 64 bytes from 14.215.177.38: icmp_seq=2 ttl=128 time=6.13 ms 刪除路由 假定需要刪除默認路由 # route del -net 0.0.0.0 netmask 0.0.0.0 ###等價于 route del default # route |grep -i default # ping www.baidu.com ###缺省路由被刪除后,ping百度不可達 connect: Network is unreachable 刪除之前添加的網絡路由和主機路由 # route del -net 192.168.10.0/24 # route del -host 192.168.20.1 # route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 172.24.8.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777728 192.168.81.0 0.0.0.0 255.255.255.0 U 100 0 0 eno33554960 添加缺省網關 # route add default gw 192.168.81.2 # route add -net 0.0.0.0 gw 192.168.81.2 ###與上一條命令等價 路由靜態(tài)配置文件 /etc/sysconfig/network /etc/sysconfig/network-scripts/route-ethX | route-pppX 配置文件的格式1:每行一個要配置的路徑條目 目標 via 下一跳 例子: 192.168.0.0/24 via 172.16.100.177 配置文件的格式2:每一組一個路由條目 ADDRESS#=目標 NETMASK#=掩碼 GATEWAY#=下一跳 ADDRESS0=192.168.0.0 NETMASK0=255.255.255.0 GATEWAY0=172.16.100.1
四、DNS配置
DNS服務器指向:
配置文件:/etc/resolv.conf
最多三個:
nameserver DNS_SERVER_IP
nameserver 8.8.8.8
測試DNS解析
dig -t A 域名 //正解測試
dig -x IP //反解測試
查看當前主機DNS解析配置
# more /etc/resolv.conf
# Generated by NetworkManager
search localdomain example.com
nameserver 192.168.81.2
nameserver 172.24.8.1
# dig -t A www.oracle.com
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -t A www.oracle.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11680
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.oracle.com. IN A
;; ANSWER SECTION:
www.oracle.com. 5 IN CNAME ds-www.oracle.com.edgekey.net.
ds-www.oracle.com.edgekey.net. 5 IN CNAME e11582.dscx.akamaiedge.net.
e11582.dscx.akamaiedge.net. 5 IN A 184.28.37.127
;; Query time: 12 msec
;; SERVER: 192.168.81.2#53(192.168.81.2) //通過本地IP 192.168.81.2遞交外部DNS服務器解析
;; WHEN: Mon Sep 04 21:14:31 CST 2017
;; MSG SIZE rcvd: 128
# dig -x 184.28.37.127
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7 <<>> -x 184.28.37.127
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20357
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 8, ADDITIONAL: 9
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; MBZ: 0005 , udp: 512
;; QUESTION SECTION:
;127.37.28.184.in-addr.arpa. IN PTR
;; ANSWER SECTION:
127.37.28.184.in-addr.arpa. 5 IN PTR a184-28-37-127.deploy.static.akamaitechnologies.com.
;; AUTHORITY SECTION:
28.184.in-addr.arpa. 5 IN NS ns5.reverse.deploy.akamaitechnologies.com.
28.184.in-addr.arpa. 5 IN NS ns1.reverse.deploy.akamaitechnologies.com.
28.184.in-addr.arpa. 5 IN NS ns7.reverse.deploy.akamaitechnologies.com.
28.184.in-addr.arpa. 5 IN NS ns3.reverse.deploy.akamaitechnologies.com.
28.184.in-addr.arpa. 5 IN NS ns4.reverse.deploy.akamaitechnologies.com.
28.184.in-addr.arpa. 5 IN NS ns8.reverse.deploy.akamaitechnologies.com.
28.184.in-addr.arpa. 5 IN NS ns2.reverse.deploy.akamaitechnologies.com.
28.184.in-addr.arpa. 5 IN NS ns6.reverse.deploy.akamaitechnologies.com.
;; ADDITIONAL SECTION:
ns1.reverse.deploy.akamaitechnologies.com. 5 IN A 96.7.50.32
ns2.reverse.deploy.akamaitechnologies.com. 5 IN A 2.16.40.32
ns3.reverse.deploy.akamaitechnologies.com. 5 IN A 23.74.25.32
ns4.reverse.deploy.akamaitechnologies.com. 5 IN A 95.100.168.32
ns5.reverse.deploy.akamaitechnologies.com. 5 IN A 95.100.173.32
ns6.reverse.deploy.akamaitechnologies.com. 5 IN A 23.61.199.32
ns7.reverse.deploy.akamaitechnologies.com. 5 IN A 184.26.161.32
ns8.reverse.deploy.akamaitechnologies.com. 5 IN A 2.22.230.32
;; Query time: 205 msec
;; SERVER: 192.168.81.2#53(192.168.81.2)
;; WHEN: Mon Sep 04 21:17:05 CST 2017
;; MSG SIZE rcvd: 407
網絡服務啟動腳本
CentOS 5/6:
服務腳本:/etc/init.d/network
CentOS 6
服務腳本:/etc/init.d/NetworkManager
服務腳本:SysV style LSB
控制運行在后臺守護進程,接受參數(shù){start|stop|restart|status}
腳本位置:/etc/rc.d/init.d或/etc/init.d
配置某服務開機自動啟動:chkconfig Src_Script_Name on
禁止開機自動啟動:chkconfig Src_Script_Name off
查看 chkconfig --list
調用機制:
1./etc/init.d/Script_Name {start|stop|restart|status}
1.service Script_Name {start|stop|restart|status}
CentOS 7
服務腳本:/etc/init.d/network
# systemctl start network.service
如何實現(xiàn)在單網卡上配置多個地址(通常用于VIP)
通過網絡接口別名來實現(xiàn)
eth0X
eth0:X eth0:0 eth0:1....
配置1:
ifconfig ethX:Y IP/mask
配置2:
ifcfg-ethX:Y
DEVICE=ethX:Y
BOOTPROTO={none|static}
IPADDR=
NETMASK=
GATEWAY=
非主地址(別名地址)不支持DHCP協(xié)議獲取
五、主機名配置
短主機名,如mycomputer1
長主機名(FQDN),如mycomputer.example.com
CentOS 5/6配置主機名
查看主機名:
# hostname
# more /etc/sysconfig/network
# more /proc/sys/kernel/hostname
臨時修改主機名:
# hostname new_host_name
# hostname new_host_name.domain.com
永久修改主機名(需要重啟):
# vi /etc/sysconfig/network
修改以及立即生效
# echo new_host_name >/proc/sys/kernel/hostname
# sysctl kernel.hostname=new_host_name
示例
# more /etc/redhat-release
CentOS release 6.7 (Final)
# hostname
node133
# hostname host133
# hostname
host133
[root@host133 ~]# echo host133.example.com >/proc/sys/kernel/hostname
[root@host133 ~]# hostname
host133.example.com
[root@host133 ~]# sysctl kernel.hostname=host133.example.com
kernel.hostname = host133.example.com
[root@host133 ~]# hostname
host133.example.com
CentOS 7 配置主機名
在RHEL7中,引入了靜態(tài)(static)、瞬態(tài)(transient)和靈活(pretty)三種主機名。
“靜態(tài)”主機名——也稱為內核主機名,是系統(tǒng)在啟動時從/etc/hostname自動初始化的主機名。
“瞬態(tài)”主機名——是在系統(tǒng)運行時臨時分配的主機名,例如,通過DHCP或DNS服務器分配。
靜態(tài)主機名和瞬態(tài)主機名都遵從作為互聯(lián)網域名同樣的字符限制規(guī)則。
“靈活”主機名——是允許使用自由形式(可包括特殊/空白字符)的主機名,以展示給終端用戶(如Tom‘s Computer)
查看主機名的命令一般格式如下:
hostnamectl [status] [--static|--transient|--pretty]
選項說明如下:
status——可同時查看靜態(tài)、瞬態(tài)和靈活三種主機名及其相關的設置信息。
--static——僅查看靜態(tài)(永久)主機名。
--transient——僅查看瞬態(tài)(臨時)主機名。
--pretty ——僅查看靈活主機名。
[root@centos7 ~]# hostnamectl status
Static hostname: centos7.example.com
Icon name: computer-vm
Chassis: vm
Machine ID: 8ef737feff1942798ec060bf5a162df6
Boot ID: e2c8eded07f04e879d2b160d9a6bc6cf
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-327.el7.x86_64
Architecture: x86-64
修改主機名的命令一般格式如下
# hostnamectl [--static|--transient|--pretty] set-hostname <new_hostname>
[root@centos7 ~]# hostnamectl --transient
centos7.example.com
# hostnamectl --transient set-hostname centos7-a //修改瞬態(tài)主機名
# hostnamectl //查看修改后的瞬態(tài)主機名
Static hostname: centos7.example.com
Transient hostname: centos7-a
# hostnamectl --static //查看修改前的靜態(tài)主機名
centos7.example.com
# hostnamectl --static set-hostname centos7-a.example.com //修改靜態(tài)主機名
# hostnamectl --static //查看修改后的瞬態(tài)主機名
centos7-a.example.com
Hostnamectl設置主機名后,會立即刷新內核主機名,以及更新/etc/hostname文件,
但當前Bash提示符需重新登陸shell
[root@centos7 ~]# bash //重新開啟shell
#
/etc/hosts文件中主機名不會自動更新,應手動更新主機名與IP地址的映射關系
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.81.142 centos7-a.example.com centos7-a //添加此行,其中192.168.81.142是本機IP地址
:wq //保存退出
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯(lián)網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。
關注官方微信