在linux的网络管理中,常用需要对ip地址和网络掩码、路由、DNS服务器进行配置。CentOS6
在centos6中网络接口命名是eth0,1,2....,centos7的接口命名方式和centos6不同
ip地址和掩码的配置有两种方式,一种是静态指定,一种是动态分配,动态分配需要DHCP
静态指定有两种不同的命令组,一个是ifcfg组,另外是ip命令,ifcfg是比较传统的命令,ip命令比较新功能也更强大。除了使用ifcfg和ip命令,也可以直接编辑配置文件,system-config-network-tui(setup)是一个基于配置文件的前端配置工具,这样即使重启系统也能使配置生效。在centos7中,有nmcli、nmtui新工具更加强大。
ifconfig用来显示网络属性信息和配置网络,直接使用ifconfig可以列出当前活动的网络接口,也可以查看指定的网络接口, -a选项可以查看所有网络接口。
配置接口的ip地址使用:ifconfig Interface ip/mask [up|down],ifconfig会立即生效(注意不是永久有效),启用或禁用混杂模式[-]promisc
路由管理命令使用route命令,路由查看使用route -n,不加-n会反解为名字;
添加路由使用route add [-net|-host] target [netmask Num] gw 网关地址 dev 网络接口;
例如route add -host 192.168.5.6 gw 172.16.23.2 dev eth0;route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
添加默认路由:route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1;route add default gw 172.16.0.1
删除路由使用route del [-net|host] target netmask Num
DNS配置一般要通过文件来实现,DNS配置文件在/etc/resolv.conf,配置使用nameserver DNS_SERVER_IP1,最多可以配置三台DNS服务器。DNS服务是将完全限定域名FQDN解析为ip地址,反解析是将ip地址解析为FQDN。解析测试使用dig -t A FQDN,反解析dig -x IPaddress,也可以使用host,正解host -t A FQDN,反解host -t PTR IP
netstat可以查看网络连接、路由表、接口状态、地址伪装连接和组播成员关系
显示网络连接:netstat [--tcp|-t] [--udp|-u] [--raw|-r] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e] [--program|-p],常用的组合有:-tan、-uan、-tnl、-unl
-t:tcp协议相关
-u:udp协议相关
-w:raw socket相关
-l:处于监听状态
-a:所有状态
-n:以数字显示ip和端口
-e:扩展格式
-p:显示相关进程及PID
显示路由表: netstat {--route|-r} [--numeric|-n] ,常用的组合有:
-r:显示内核路由表
-n:数字格式
显示接口统计数据: netstat {--interfaces|-I|-i} [--all|-a][--extend|-e] [--verbose|-v][--program|-p][--numeric|-n]
例如:netstat -i、netstat -I iface
ip命令可以查看或配置路由、设备、策略路由、和tunnel。一般使用格式ip [options] OBJECT {COMMAND|HELP},OBJECT={link|addr|route}
ip link:实现网络设备管理
ip link set dev Iface up|down:激活或禁用指定接口
ip link show:显示物理接口简要描述信息,也可以接上指定的设备,也可以后加使用up用于显示处于激活状态的接口
ip addr:ip地址管理
ip addr {add|del} IPADDR dev Iface:新增或删除指定设备的ip地址,一块网卡可以有多个地址,实际上,网卡地址是存在系统内核中的,并不属于接口。
[label LABEL]:新增地址时指明网卡别名
[scope {global|link|host}]:指明作用域,{全局可用|仅链接可用|本机可用}
[broadcast ADDRESS]:指明广播地址
ip addr show:显示所有设备ip地址和相关信息
[dev DEVICE]:查看指定设备ip地址和相关信息
[label PATTRN]
[primary|secondary]:显示主地址或第二地址
ip addr flush:清空地址,使用格式同show
ip route:路由表管理
ip route add TARGER via GW dev IFACE [src SOURCE_IP]:添加路由
TARGET主机路由ip
网络ip/mask
ip route add default via GW:设定默认路由
ip route show:
ip route delete TARGET:删除路由
ip route flush:清空路由表
[dev IFACE]: 仅清空与某个接口相关联的路由
[via PREFIX]:仅清空与指定网关相关的路由
ss:网络状态查看
ss的一般使用格式ss [option]...[filter]
常用选项
-t:tcp协议相关
-u:udp协议相关
-w:裸套接字相关
-x:unix sock相关
-l:listen状态的连接
-p:相关的程序及PID
-e:扩展的信息
-m:内存用量
-o:显示计时器的信息
filter:=[ state TCP-STATE ] [ EXPRESSION ]
EXPRESSION示例:'(dport=:ssh or sport=:ssh)'
ss的常用组合有:-tan、-tanl、-tanlp、-uan
tcp的常见状态:listen、established、fin_wait_1、syn_sent、syn_recv、closed
在redhat系列中,和ip、mask、GW、DNS相关的配置文件在/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相关的配置文件在/etc/sysconfig/network-scripts/route-IFACE, 默认不存在,需要手动添加
和IP相关的配置文件内容
DEVICE="ens33"--此配置文件应用到的设备
HWADDR--对应设备的mac地址
BOOTPROTO="none"--激活此设备时使用的地址配置协议,常用的有none、dhcp、static、bootp
NM_CONTROLLED="no"--NM是nerworkManager的简写,在centos6中建议关闭
ONBOOT="yes"--在系统引导时是否激活此设备
TYPE="Ethernet"--接口类型;常见的有Ethernet、Bridge
UUID--设备的唯一标识
IPADDR--指明ip地址
NERMASK--子网掩码
GATEWAY--默认网关
DNS1--第一个DNS服务器
DNS2--第二个DNS服务器
DNS3--第三个DNS服务器,因为这是在接口配置的,所以优先级高于/etc/resolv.conf(普通用户无法修改)
USERCTL--普通用户处否可控制此设备
PEERDNS--如果BOOTPROTO的值为dhcp,是否允许dhcp服务器分配的dns 服务器指向信息直接覆盖至/etc/resolv.conf文件中
修改配置文件不会立即生效,要使用service network restart重启网络服务
和路由相关的配置文件内容
可以使用两种方法写配置文件,一种是TARGET via GW,另外一种是每三行定义一条路由。两种方法不能混合使用
ADDRESS0=
NETMASK0=
GATEWAY0=
修改配置文件不会立即生效,要使用service network restart重启网络服务
给网卡配置ip地址有三种方法,分别是ifconfig、ip和配置文件,前两种方法可以立即生效
ifconfig IFACE_ALIAS IPADDRESS/MASK up
ip addr add
配置文件把DEVICE改成别名,不需要指定网关、UUID,一块网卡一般只需要一个网关
注意:别名的IP地址不可以通过DHCP获得
没有安装setuptool的,要使用yum -y install setuptool;yum install system-config-securitylevel-tui;yum install system-config-network-tui;yum install ntsysv安装缺失的软件,直接使用setup命令配置,可以使用空格键启用一些服务,用*表示,也可以使用tab或箭头调整所选文本。重启网络服务后方能生效
在红帽系中,hostname的配置文件在/etc/sysconfig/network中,在该文件中还有一个条目是NERWORKING,这是整个网络的总开关。
在shell中,直接使用hostname,会显示主机的主机名,也可以通过hostname来自定义主机名
网卡名称在/etc/udev/rules.d/70-persistent-net.rules文件中,只需修改部分内容即可,不会立即成效,卸载网卡驱动再装载modprobe -r e1000;modprobe e1000。如果修改了网络接口命名,其他对应的文件也要相应的修改。centos7不适用
在centos7之前,传统的网络接口命名方式是网络类型加上数字,如eth0、wlan1,在CentOS7中采用了具有一致性和可预测的命名机制,udev支持多种不同的命名方式,可以基于Firmware、拓扑结构。
如果Firmware或bios为主板上集成的设备 提供的索引信息可用,且可预测则根据此索引进行命名,例如eno1;
如果Firmware或bios为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,例如ens1;
如果硬件接口的物理位置信息可用,则根据此信息进行命名,例如enp2s0;
如果用户显式启用,也可根据mac地址进行命名,例如enx2387a1dc56;
上述均不可用时,则使用传统命名机制
上述命名机制,有的需要biosdevname程序的参与
en:Ethernet;wl:wlan;ww:wwan
名称类型:
o<index>:集成设备的设备索引号
s<slot>:扩展槽的索引号
x<mac>:基于mac地址的命名
p<bus>s<slot>:enp2s1
第一步
udev有一个辅助工具/lib/udev/rename_device,会根据/usr/lib/udev/rules.d/60-net.rules的指示查询网卡的配置文件的相关信息进行命名,无法命名进行下一步
第二步
biosdevname启用的话,会根据/usr/lib/udev/rules.d/71-biosdevname.rules对网络接口命名,无法命名进行下一步
第三步
通过检测网络接口设备,根据/usr/lib/udev/rules.d/75-net-description对网络接口命名,如果还不能识别就按内核最初识别的名字
禁用网络设备重命名(回归传统命名方式)
1)编辑/etc/default/grub配置文件,将GRUB_CMDLINE_LINUX的值添加net.ifnames=0;
2)为grub2生成其配置文件:grub2-mkconfig -o /etc/grub2.cfg
3)重启系统
nmcli device :查看设备的相关信息
~ status:查看设备的状态
~ show Iface:查看具体设备的信息
nmcli connection:配置管理设备,connection可以简写为c
~ show [iface]:
~ modify iface ipv4.address IPADDRESS/MASK:修改iface接口的ip地址
~ modify +iface ipv4.address IPADDRESS/MASK:新增一个iface接口的ip地址
~ down|up iface:禁用或启用网卡
~ modify iface -ipv4.address IPADDRESS/MASK,删除接口的IP地址,将接口down和up后生效
同样的,也可以修改ipv4.gateway、ipv4.dns、ipv4.method manual\DHCP
在centos7中使用nmtui的图形文本工具来配置网络,而不是centos6中的setup,nmtui可以设置网络的各种属性,也可以修改主机名,另外查看主机名也可以使用hostnamectl status,这个命令可以详细查看关于hostname的属性,使用hostnamectl set-hostname HOSTNAME.
另外自行了解nmap、ncat、tcpdump工具
lftp是一个ftp客户端工具,命令的一般使用格式lftp [ -p port ] [ -u user[,password ] ] ftpServer,当连接到ftp服务器后,使用ls可以查看文件列表,cd可以切换目录,下载文件使用get命名,下载多个文件使用mget,下载全部文件使用mget *。
使用lftpget URL可以直接下载ftp的指定文件
ftp是一个古老的ftp客户端工具,当用户是匿名登录时,用户名是anonymous,密码随意填写
wget是一个非交互式的文件下载工具,支持多种协议,也支持多种选项-q静默模式、-c续传、-o保存位置