Linux之网络管理
在学习linux的过程中,Linux网络的管理和配置中是很重要的,几乎学习的后期都离不开网络的概念和配置,如集群中的使用,学习好Linux网络至关重要。
Linux网络IP地址有两种配置方式:静态指定和动态分配
动态分配就是利用DHCP服务器,动态的给linux主机分配IP地址。静态指定可以通过命令配置临时的IP和相应的NETMASK,GATEWAY,DNS等,也可以通过修改配置文件做相应的配置。
一.通过命令暂时配置linux网络
CentOS6网络接口命名方式:
以太网:eth[0,1,2,…]
1.ifconfig命令:
ifconfig – configure a network interface
ifconfig [interface]
ifconfig:显示当前系统上激活的网络接口信息
ifconfig interface:显示指定的网络接口信息
ifconfg -a:显示系统上的网络接口信息
ifconfig interface up|down:启动或关闭一个网络接口
ifconfig interface [aftype] options | address …
ifconfig interface IP/mask [up]
ifconfig interface IP netmask MAKE
这些修改只是暂时的,重启系统之后就会失效。
2.route命令:
route – show / manipulate the IP routing table
route:显示和操作IP路由表
a.查看路由:route -n
b.添加路由:route add
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
c.删除路由:route del
route del [-net|-host] target [gw Gw] [net-mask Nm] [[dev] If]
eg:route del -host 192.168.1.8
或者:route del -host 192.168.1.8 gw 172.16.0.1 dev eth1
routedel -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
d.将linux主机接入到网络中,需要用到IP/MASK、路由设备和DNS服务器。而Linux系统中的DNS服务器指定是在一个文件中:
/etc/resolv.conf
nameserver NDS_SERVERIP
nameserver NDS_SERVERIP
nameserver NDS_SERVERIP
可以指定多个DNS服务器的IP。查看DNS服务器的域名解析命令有:dig和host
正向解析:FQDN:完全合格域名–>IP
dig -t A FQDN
host -t A FQDN
反向解析:IP–>FQDN
dit -x IP
host -t PTR IP
3.netstat命令:
netstat – Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
显示网络连接上的一些选项和参数:
netstat [–tcp|-t][–udp|-u][–raw|-w][–listening|-l][–all|-a][–numeric|-n][–extend|-e[–extend|-e]][–program|-p]
-t:tcp 协议相关
-u:udp协议相关
-w:raw socket相关(raw socket原始套接字,和其他套接字不同之处在于它工作在网络层和数据层,而其他套接字工作在传输层,只能进行传输层数据操作。常使用raw socket 进行数据监听)
-l:处于监听状态
-a:所有连接状态
-n:以数字显示IP和端口
-e:扩展格式
-p:显示相关进行的PID:
显示路由表:
netstat {–route|-r} [–verbose|-v] [–numeric|-n] [–continuous|-c]
-r:显示内核路由
-n:数字格式显示
-c:一直循环显示路由表
显示接口信息:
netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–program|-p] [–numeric|-n] [–continuous|-c]
-i:显示所有接口的信息
-Iiface:显示指定接口的信息
4.ip命令:
ip – show / manipulate routing, devices, policy routing and tunnels
ip [OPTIONS] OBJECT {COMMAND|help}
学习中常用到的OBJECT有:link,addr,route
(1)ip link :
ip link set DEVICE {up|down|arp{on|off}
ip link set DEVICE | dev DEVICE up|down :表示启用户关闭此接口设备。
ip link show [DEVICE|dev DEVICE]:显示所有网络接口设备或显示指定接口设备。
(2)ip addr:
ip addr {add|del}IFADDR dev STRING:添加和删除网卡设备
[label LABEL]:添加地址时指明网卡别名
[scope {global|link|host}]:指明网卡ip作用域
global:全局可用
link:仅连接可用
host:本机可用
[broadcast ADDRESS]:指明广播地址:
ip addr {show|flush} [devSTRING] [scope COPE-ID ]
(3)ip route:
添加路由:ip route add TARGET via GW dev IFACE src
添加主机路由:
ip route add IP via GW dev IFACE
添加网络路由:
ip route add NEWORK/MASK via GW dev IFACE
eg:
删除路由:
ip route del TARGET via GW del IFACE
显示路由:
ip route show
清空路由:
ip route flush
[dev IFACE]
[via PREFIX]
5.ss命令:
ss命令与netstat的功能相似,但是比netstat功能更强大
ss – another utility to investigate sockets
ss [options] [ FILTER ]
常用选项:
-a:display all sockets:显示所有
-t:tcp协议相关
-u:udp协议相关
-w:裸套接字相关
-x:Unix socket相关
-l:listen状态的连接
-n:以数字格式显示
-p:显示相关的程序和PID
-e:扩展内容
-m:内存用量
-o:计时器信息
常用组合选项:
-atn -tanl -tanlp -uan等
FILTER := [ state TCP_STATE ] [EXPRESSION]
Tcp常见的状态:
tcp finite state machine:
listen:监听
established:已建立的连接
fin_wait_1
fin_wait_2
syn_sent
syn_recv
closed
[EXPRESSION]:
dport =
sport =
二.修改配置文件配置linux网络
Linux 中的网路配置要想永久有效,需要修改相应的配置文件。其中IP,MASK,GW,DNS相关的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE,路由相关的配置文件为:/etc/sysconfig/network-scripts/route-IFACE 这个文件默认是不存在的,要手动添加。先查看配置文件:
1.网络地址配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFACE中的各个参数的含义:
DEVICE:此配置文件应用到的设备
HWADDR:对应设备的MAC地址
BOOTPROTO:激活此设备时使用的地址配置协议,常用的有:dhcp,static,none,bootp
NM_CONTROLLED:NM是NetworkManager的缩写,表示此网卡是否接受NM的控制,CentOS建议关闭
ONBOOT:系统在引导时是否激活此设备;
TYPE:接口类型:常见的有:Ethernet,Bridge
UUID:设备的唯一标识:
当BOOTPROTO的值为static时,要指定设备的IP,NETMASK,GATEWAY和DNS,分别指设备的IP地址,子网掩码,默认网关,DNS服务指向
USERCTL:普通用户是否可控制此设备
PEERDNS:如果BOOTPROTO的值为dhcp ,是否允许dhcp server分配的DNS服务指向信息直接覆盖至/etc/resolv.conf文件中。
2.路由配置文件:
/etc/sysconfig/network-scripts/route-IFACE,这编写路由规则时有两种方法:
(1)TARGET via GW:如:
192.168.1.6 via 172.16.0.1
(2)每三行定义一条路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
如:
ADDRESS0=192.168.1.6
NETMASK0=255.255.255.0
GATEWAY0=172.16.0.1
3.通过命令和配置文件进行配置网络外还可以通过一个工具进行配置就是tui(text user interface)
system-config-network-tui即可打开此工具,或者使用setup也可打开。此种方法配置的网络必须重启网络服务方能生效。
4.配置当前主机的主机名:
配置主机名的方法也有两种:通过命令配置,临时有效。修改配置进行配置,永久有效。
(1)使用hostname命令:
hostnam [HISTNAME]
hostname:查看当前系统的主机名
hostname HOSTNAME:修改主机名为HOSTNAME
(2)修改配置文件:/etc/syconfig/network
HOSTNAME=NAME
5.给网络接口重命名:
网络接口识别并命名相关的udev配置文件为:
/etc/udev/rules.d/70-presistent-net.roules
在此文件中只需修改NAME项,修改成自己指定接口名。如我们把NAME=”eth1” 修改为eth0 把NAME=”eth2” 修改为eth1
再在网络配置文件中/etc/sysconfig/network-scripts/ifcfg-IFACE分别进行修改DEVICE=eth0 和DEVICE=eth1
三.CentOS 7 的网络属性配置:
从CentOS 7开始网络设备的命名方式不再遵循传统的命名方式(eth[0,1,2..]),而接口名称被自动基于固件,拓扑机构和位置信息来确定。现在即使添加移除网络设备,接口名称仍然保持固定,而无需重新枚举,和坏掉的硬件可以无缝替换。
CentOS 7网络设备名称的组成格式:
en:Ethernet
wl:wlan
ww:wwan
名称类型:
o<index>:集成设备的设备索引号命名:
s<slot>:扩展槽的索引号
x<MAC>:基于MAC地址命名
p<bus>s<slot>:enp2s1
修改网卡名称:
1.编辑网络配置文件:/etc/sysconfig/network-scripts/ifcfg-eno16777736将NAME项修改为eth0.
2.重命名改配置文件:
# mv ifcfg-eno16777736 ifcfg-eth0
3.编辑/etc/default/grub/配置文件:加入“net.ifname=0 bisodevname=o”到GRUB_CMDLINE_LINUX。如:
4.运行grub2-mkconfig -o /boot/grub2/grub.cfg 重新生成GRUB配置并更新内核参数
5.重启系统
CentOS 7 网络地址配置工具:nmcli
CentOS 7 中的默认网络服务由NetworkManager提供,可以用命令工具nmcli来控制NetworkManager
nmcli – command?line tool for controlling NetworkManager
命令格式:
nmcli [OPTIONS]OBJECT{COMMAND|help}
OBJECT
g[eneral] NetworkManager's general status and operations
c[onnection] NetworkManager's connections
d[evice] devices managed by NetworkManager
1.general:
COMMAND := {status|hostname}
nmcli general status:显示NM的所有状态
nmcli general hostname:显示系统当前的主机名
2.device:
device – show and manage network interfaces
COMMAND := {status|show|delete}
nmcli device status:显示当前系统网络设备处于的状态
nmcli device show [ifname]:显示系统上的网络设备详细信息或指定网卡信息
nmcli device delete:删除系统上的一个设备。此设备只能是工作在系统上的软件设备,如bonds,bridges,teams
3.connection:
connection – start, stop, and manage network connections
COMMAND := {show|up|down|add|edit|modify|delete|reloa|load}
nmcli connection show :显示指定网络接口的详细信息
nmcli connection up:激活一个网络接口
nmcli connection down:关闭一个网络接口
modify修改IP地址等属性:
#nmcli connection modify IFACE [+|-]setting.property value
setting.property:
pv4.addresses
pv4.gateway
ipv4.dns1
ipv4.method
添加一个dns服务器指向:
# nmcli connection modify eth0 + ipv4.dns 8.8.8.8
给网络设备添加一个ip地址:
# nmcli connection modify eth0 +ipv4.address 172.16.99.6
移除一个网络设备上的ip地址:
# nmcli connection modify eth0 -ipv4.address 172.16.99.6
CentOS 7 的网络配置也可以工具nmtiu:他显示的是一个图形化操作界面。
CentOS7 配置主机名:hostnamectl
hostnamectl status:显示当前系统的主机名以及相应信息
hostnamctl set-hostname:设置主机名
原创文章,作者:dengjian,如若转载,请注明出处:http://www.178linux.com/43296
评论列表(1条)
文章对网络管理相关命令总结的很详细,但是缺少了实操部分,同时建议对top命令显示结果中的意义进行分析。