Linux 网络属性管理
Linux网络基础管理-1:
IPv4 地址分类:
点分十进制:0.0.0.0-255.255.255.255
A类:
0 0000000 - 0 1111111: 1-127
网络数:126, 127开头为环回地址
每个网络中的主机数:2^24-2
默认子网掩码:255.0.0.0
私网地址:10.0.0.0/8
B类:
10 000000 - 10 111111:128-191
网络数:2^14
每个网络中的主机数:2^16-2
默认子网掩码:255.255.0.0
私网地址:172.16.0.0/16-172.31.0.0/16
C类:
110 00000 - 110 11111: 192-223
网络数:2^21
每个网络中的主机数:2^8-2
默认子网掩码:255.255.255.0
私网地址:192.168.0.0/24-192.168.255.0/24
D类:组播
1110 0000 - 1110 1111: 224-239
E类:240-255
跨网络通信需要路由,一般主机上的路由有三种:主机路由、网络路由、默认路由
将Linux主机接入到网络中需配置以下信息:IP/mask、默认网关、DNS服务器(Linux可以配置三个)
Linux下配置网络方式:
静态指定:
ifcfg系列:ifconfig、route、netstat
ip系列:ip {link, addr, route}、ss、tc
通过修改配置文件
system-config-network-tui图形工具(setup工具)
CentOS 7配置工具:nmcli、nmtui
动态分配:DHCP(Dynamic Host Configuration Protocol)
配置网络接口:
接口命名方式:
CentOS 6:
以太网:eth[0,1,2,...]
ppp:ppp[0,1,2,...]
IP地址配置及查看:
ifconfig命令:查看IP地址和配置IP地址命令
ifconfig [interface]
# ifconfig -a 查看所有网络接口配置信息
# ifconfig eth0 [up|down] 查看指定网络接口配置信息
ifconfig interface [aftype] options | address ...
# ifconfig eth0 192.168.1.1/24 [up] 配置指定网络接口的ip地址
# ifconfig eth0 192.168.1.1 netmask 255.255.255.0
[-]promisc 启用混杂模式(加-表示关闭),开启混杂模式在抓包时如果收到的报文不是发给该接口的也能被抓到,就是抓取所有收到的报文
ifconfig eth0 promisc 开启混杂模式
ifconfig eth0 -promisc 关闭混杂模式
route命令:路由管理命令
route -n 查看内核路由表信息(路由的标志位:U表示启用状态,G表示默认网关,H表示主机路由 )
route add 手动添加路由
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
主机路由:192.168.1.3 网关:172.16.0.1
# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
网络路由:192.168.0.0 网关:172.16.0.1
# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
默认路由:网关:172.16.0.1
# 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 删除路由
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
主机路由:192.168.1.3 网关:172.16.0.1
# route del -host 192.168.1.3
网络路由:192.168.0.0 网关:172.16.0.1
# route del -net 192.168.0.0 netmask 255.255.255.0
DNS服务器指定:
/etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
FQDN(Fully Qualified Domain Name)完全合格域名/全称域名
正向解析:FQDN—>IP
# dig -t A FQDN
# host -t A FQDN
反向解析:IP—>FQDN
# dig -x IP
# host -t PTR IP
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相关
-l 显示处于监听状态
-a 显示所有状态连接
-n 以数字显示IP和端口号(不进行反向解析)
-e 扩展格式
-p 显示相关进程及PID
显示路由表:
netstat {--route|-r} [--numeric|-n]
-r 显示内核路由表
-n 数字格式(不进行反向解析)
显示接口统计数据:
netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]
# netstat -i 显示所有接口统计
# netstat -Ieth0 显示指定接口统计(注意选项和参数之间不能有空格)
ifup/ifdown [Interface_Name] 用来启用/禁用一个接口
ethtool eth0 显示接口设备属性
ethtool -S eth0 显示接口设备的统计数据
Linux网络基础管理-2:
ip命令:
ip - show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT = { link | addr | route }
ip link - network device configuration
ip link help 显示配置帮助信息
ip link set eth0 [up|down] 激活或禁用指定接口
ip link set eth0 multicast [on | off] 开启关闭接口组播功能(开启关闭功能)
ip link set eth0 name New_Name 重命名接口(需要接口为Down状态)
ip link set eth0 mtu MTU_Number 设置接口的MTU
ip link set eth0 netns [PID | Name] 将接口移动至指定的网络名称空间中
ip link show 显示所有接口状态
ip link show eth0 显示指定接口状态
ip link show up 仅显示处于激活状态的接口
ip address - protocol address management
ip addr { add | del } IFADDR dev STRING
ip addr add 192.168.1.1/24 dev eth0 配置IP地址
ip addr add 192.168.1.1/24 dev eth0 broadcast 192.168.1.255 指定广播地址
ip addr add 192.168.0.1/24 dev eth0 label eth0:0 配置地址时指明网卡标签(标签格式必须是这种格式)
ip addr add 192.168.0.1/24 dev eth0 scope {global|link|host} 指定作用域
global 全局可用(如果从另外一个网卡进来的数据也可以与该地址通信)
link 仅链接可用(只能是该网卡直连的设备通信,同一个广播域)
host 本机可用(只能自己通信,不能与其它任何地址通信)
ip address show - look at protocol addresses
ip addr show 查看所有设备的IP
ip addr show dev eth0 查看指定设备IP
ip addr show label eth0:0 查看指定标签设备IP
ip addr show dev eth0 primary 查看指定设备主IP
ip address flush - flush protocol addresses
ip addr flush dev eth0 清空指定设备的所有ip地址
ip route - routing table management
ip route add
ip route add 192.168.0.0/24 via 192.168.1.1 dev eth0 添加网段路由
ip route add 192.168.0.10 via 192.168.1.1 dev eth0 添加主机路由
ip route add defalt via 192.168.1.1 dev eth0 添加默认路由
ip route add 192.168.0.0/24 via 192.168.1.1 dev eth0 src 192.168.1.10 添加路由是指定发报文的源地址
ip route change 192.168.0.0/24 via 192.168.1.1 dev eth0 src 192.168.2.10 修改路由信息(如果路由不存在则提示不存在)
ip route replace 192.168.0.0/24 via 192.168.1.1 dev eth0 src 192.168.2.10 修改路由信息(如果路由不存在则直接创建)
ip route delete
ip route del 192.168.0.0/24 删除路由
ip route show 查看路由表
ip route get 192.168.1.0/24 查看指定路由的详细信息
ip route flush 清空所有路由,可以通过dev清空指定设备
ip route flush 192.168.1.0/24 清空指定路由
ss命令:查看网络套接字工具
ss [OPTION]... [FILTER]
-t 显示tcp协议相关连接
-u 显示udp协议相关连接
-w 显示裸套接字相关连接
-x 显示unix sock相关连接
-l 显示listen状态的连接
-a 显示所有状态的连接
-n 以数字格式显示ip和port(不进行反向解析)
-p 显示对应的程序名及PID
-e 以扩展格式显示
-m 显示内存用量
-o 显示计时器信息
指定过滤状态查看FILTER [ state TCP-STATE ] [ EXPRESSION ]
TCP的常见状态(tcp finite state machine)
LISTEN 监听
ESTABLISHED 已建立的连接
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED
ss -tan state established 显示连接状态为ESTABLISHED的连接
指定表达式过滤EXPRESSION:
dport = :22
sport = :1025
ss -tan sport = :22 显示源端口为22的连接
ss -tan dport = :51471 显示目的端口为51417的连接
ss -tan dport = :51471 or sport = :22 显示目的端口为51417或源端口为22的连接
ss -tan dport = :51471 and sport = :22 显示目的端口为51417且源端口为22的连接
Linux网络配置文件修改
IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-Interface_Name
路由相关的配置文件(默认没有须手动创建):/etc/sysconfig/network-scripts/route-Interface_Name
/etc/sysconfig/network-scripts/ifcfg-IFACE:
DEVICE=eth0 此配置文件应用到的设备
HWADDR=00:0C:29:3F:16:62 对应的设备的MAC地址
BOOTPROTO=static 激活此设备时使用的地址配置协议(dhcp, static, none, bootp)
NM_CONTROLLED=no NM是NetworkManager的简写,此网卡是否接受NM控制;CentOS6建议为"no"
ONBOOT=yes 在系统引导时是否激活此设备
TYPE=Ethernet 接口类型,常见有的Ethernet, Bridge
UUID=6f404499-c071-4191-a5bd-fc29d8008783 设备的惟一标识
IPADDR=192.168.10.1 指明IP地址
NETMASK=255.255.255.0 子网掩码
GATEWAY=192.168.10.254 默认网关
DNS1=202.96.134.133 第一个DNS服务器指向
DNS2=114.114.114.114 第二个DNS服务器指向
USERCTL=no 普通用户是否可控制此设备
PEERDNS=yes 如果BOOTPROTO的值为"dhcp",是否允许dhcp server分配的dns服务器信息直接覆盖至/etc/resolv.conf文件中
/etc/sysconfig/network-scripts/route-IFACE
两种风格:两种不能混用,只能固定使用其中某一种
第一种:TARGET via GW
192.168.0.0/24 via 192.168.10.254
第二种:每三行定义一条路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
ADDRESS0=192.168.0.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.10.254
重启网络服务:
/etc/init.d/network restart或service network restart
/etc/init.d/NetworkManager restart或service NetworkManager restart
给网卡配置多地址:
ifconfig
ifconfig eth0:0 192.168.0.1/24
ip
ip addr add 192.168.0.1/24 dev eth0 label eth0:0
配置文件:
/etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
注意:网卡别名不能使用dhcp协议引导;
Linux网络属性配置工具tui(text user interface):
system-config-network-tui,也可以使用setup命令调用system-config-network-tui;注意:记得重启网络服务方能生效;
修改当前主机的主机名:
hostname [HOSTNAME]
/etc/sysconfig/network
HOSTNAME=New_Name
/etc/hosts
127.0.0.1 New_Name
网络接口识别并命名相关的udev配置文件:可以用于修改网卡的设备名称,不过要重新装载网卡驱动生效
/etc/udev/rules.d/70-persistent-net.rules
lsmod 查看内核装载的模块
卸载网卡驱动:
modprobe -r e1000
装载网卡驱动:
modprobe e1000
Centos 7网络配置:
一致性网络设备命名(Consistent Network Device Naming),为什么需要这个:
服务器通常有多块网卡,有板载集成的,同时也有插在PCIe插槽的。Linux系统的命名原来是eth0,eth1这样的形式,但是这个编号往往不一定准确对应网卡接口的物理顺序。为解决这类问题,dell开发了biosdevname方案。systemd v197版本中将dell的方案作了进一步的拓展。目前的Centos既支持dell的biosdevname,也支持systemd的方案。
Centos7中的网卡命名策略:
Scheme 1:如果从Firmware或BIOS中能够取到可用的板载网卡的索引号,则使用这个索引号命名,例如: eno1,如不能则尝试Scheme 2
Scheme 2:如果从Firmware或BIOS中能够取到可以用的网卡所在的PCI-E热插拔插槽的索引号,则使用这个索引号命名,例如: ens1,如不能则尝试Scheme 3
Scheme 3:如果能拿到设备所连接的物理位置信息,则使用这个信息命名,例如:enp2s0,如不能则尝试Scheme 5
Scheme 5:传统的kernel命名方法,例如: eth0,这种命名方法的结果不可预知的,即可能第二块网卡对应eth0,第一块网卡对应eth1。
Scheme 4:使用网卡的MAC地址来命名,这个方法一般不使用。例如enx2387a1dc5607
biosdevname和net.ifnames两种命名规范
net.ifnames的命名规范为: 设备类型+设备位置+数字
设备类型:
en 表示Ethernet
wl 表示WLAN
ww 表示无线广域网WWAN
设备位置:
实际的例子:
eno1 板载网卡
enp0s2 pci网卡(插槽上网卡适配器有多个接口)
ens33 pci网卡(插槽上网卡适配器只有一个接口)
wlp3s0 PCI无线网卡
wwp0s29f7u2i2 4G modem
wlp0s2f1u4u1 连接在USB Hub上的无线网卡
enx78e7d1ea46da pci网卡
biosdevname的命名规范为:
实际的例子:
em1 板载网卡
p3p4 pci网卡
p3p4_1 虚拟网卡
前面的Scheme策略顺序是系统默认的
如果系统BIOS符合要求且系统中安装了biosdevname,同时biosdevname=1启用,则biosdevname优先
如果BIOS不符合或biosdevname没安装或安装了但是biosdevname=0,则仍然是systemd的规则优先
如果用户自己定义了udev rule来修改内核设备名字,则用户规则优先
内核参数组合使用的时候,其结果如下:
biosdevname=0,net.ifnames=1 网卡名 "enp5s2" systemd优先
biosdevname=1,net.ifnames=0 网卡名 "em1" biosdevname优先
biosdevname=0,net.ifnames=0 网卡名 "eth0" 传统方式优先
网卡设备命名过程:
核心流程:linux内核启动过程中,会默认给网卡以ethX方式随机命名,然后再通过systemd去rename成其它名称;systemd按照如下顺序执行udev的rule
/usr/lib/udev/rules.d/60-net.rules
/usr/lib/udev/rules.d/71-biosdevname.rules
/usr/lib/udev/rules.d/75-net-description.rules
/usr/lib/udev/rules.d/80-net-name-slot.rules
60-net.rules
使用/lib/udev/rename_device这个程序,去查询/etc/sysconfig/network-scripts/下所有以ifcfg-开头的文件,如果在ifcfg-xx中匹配到HWADDR=xx:xx:xx:xx:xx:xx参数的网卡接口则选取DEVICE=yyyy中设置的名字作为网卡名称。
71-biosdevname.rules
如果系统中安装了biosdevname,且内核参数未指定biosdevname=0,且上一步没有重命名网卡,则按照biosdevname的命名规范,从BIOS中取相关信息来命名网卡。主要是取SMBIOS中的type 9(System Slot) 和type 41(Onboard Devices Extended Information)不过要求SMBIOS的版本要高于2.6,且系统中要安装biosdevname程序。
75-net-description.rules
udev工具通过检查网卡属性信息,填写如下这些udev的属性值
ID_NET_NAME_ONBOARD
ID_NET_NAME_SLOT
ID_NET_NAME_PATH
ID_NET_NAME_MAC
80-net-name-slot.rules
如果在60-net.rules、71-biosdevname.rules这两条规则中没有重命名网卡,且内核未指定net.ifnames=0参数则udev依次尝试使用以下属性值来命名网卡,如果这些属性值都没有(75-net-description.rules会填写这些信息),则网卡不会被重命名。
ID_NET_NAME_ONBOARD
ID_NET_NAME_SLOT
ID_NET_NAME_PATH
上边的71-biosdevname.rules是实际执行biosdevname的policy;75-net-description.rules和80-net-name-slot.rules实际执行Scheme 1,2,3
根据上述的过程,可见网卡命名受 biosdevname和net.ifnames这两个内核参数影响;这两个参数都可以在grub配置中提供。biosdevname=0是系统默认值(dell服务器默认是1),net.ifnames=1是系统默认值:
#cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel_king/root rd.lvm.lv=rhel_king/swap crashkernel=auto net.ifnames=0 biosdevname=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
Centos 7网卡命名改为传统模式:
如果不习惯使用新的命名规则,可以恢复使用传统的方式命名,编辑 grub 文件,增加两个变量,再使用grub2-mkconfig 重新生成grub 配置文件即可。
1、编辑 grub 配置文件
vim /etc/sysconfig/grub(是/etc/default/grub的软连接)
# 为GRUB_CMDLINE_LINUX变量增加2个参数,具体内容如下(加粗):
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=cl/root rd.lvm.lv=cl/swap net.ifnames=0 biosdevname=0 rhgb quiet"
2、重新生成 grub 配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
然后重新启动 Linux 操作系统,通过 ip addr 可以看到网卡名称已经变为eth0
3、修改网卡配置文件
原来网卡配置文件名称为ifcfg-ens33,这里需要修改为ethx 的格式,并适当调整网卡配置文件。
mv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-eth0
# 修改ifcfg-eth0文件如下内容(其它内容不变)
NAME=eth0
DEVICE=eth0
# systemctl restart network.service # 重启网络服务
Centos 7 IP地址配置工具:nmcli、nmtui
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
nmcli device status 查看所有网卡状态
nmcli device show 查看所有网卡信息
nmcli device show eth0 查看指定网卡信息
nmcli device connect eth0 连接指定网卡
nmcli device disconnect eth0 断开指定网卡
connection - start, stop, and manage network connections
nmcli connection show 查看所有设备连接信息
nmcli c show eth0 查看指定设备详细信息
如何修改IP地址等属性:
#nmcli connection modify IFACE [+|-]setting.property value
nmcli c modify eth0 ipv4.addresses 192.168.1.1/24
nmcli c modify eth0 ipv4.gateway 192.168.1.254
nmcli c modify eth0 ipv4.dns1 202.96.134.133
nmcli c modify eth0 ipv4.method manual 指定网络信息获取方式,这里为手动指定
网络配置tui工具:nmtui
主机名称配置工具:hostnamectl
hostnamectl 查看系统主机名和相关信息
hostnamectl status 查看系统主机名和相关信息信息
hostnamectl set-hostname New_Hostname 配置新的主机名
网络客户端工具:lftp, ftp, lftpget, wget
# lftp [-p port] [-u user[,password]] SERVER
子命令:
get 下载单个文件
mget 下载多个文件
ls 显示当前目录文件
help 显示帮助信息
# lftpget URL 直接跟URL地址下载文件到当前目录
# ftp 传统的ftp客户端工具,能用lftp就不用这个
# wget
wget [option]... [URL]...
-q 静默模式
-c 断点续传
-O 指定下载到指定路径
--limit-rates= 限制传输速率
课外作业:nmap、ncat、tcpdump工具
Linux 网络属性管理的更多相关文章
- Linux网络属性管理
Linux网络属性管理 局域网:以太网,令牌环网 Ethernet: CSMA/CD 冲突域 广播域 MAC:Media Access Control 48bits: 24bits: 24bits: ...
- Linux网络属性配置命令和管理详解
一.Linux网络属性配置 1.Linux主机接入到网络方式 IP/NETMASK:实现本地网络通信 路由(网关):可以进行跨网络通信 DNS服务器地址:基于主机名的通信,Linux可以有三个DNS地 ...
- Linux网络属性配置
目录 IP地址分类 如何将Linux主机接入到网络中 网络接口的命名方式 ifcfg系列命令 如何配置主机名 如何配置DNS服务器指向 iproute2系列命令 Linux管理网络服务 永久生效配置路 ...
- Linux网络技术管理及进程管理(week2_day4)--技术流ken
OSI七层模型和TCP/IP四层模型 OSI七层模型:OSI(Open System Interconnection)开放系统互连参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联 ...
- Linux网络技术管理及进程管理
OSI七层模型和TCP/IP四层模型 OSI七层模型:OSI(Open System Interconnection)开放系统互连参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联 ...
- Linux网络技术管理
1. OSI七层模型和TCP/IP四层模型 1.1 osi 七层模型 Open System interconnection,开放系统互连参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系 ...
- Linux网络共享管理(ssh,nfs,samba)
OpenSSH服务器: ssh协议:提供安全的ssh环境用于远程管理,默认端口:22: 服务名称:sshd openssh-server包的安装文件: 使用ssh客户端程序: 连接目标主机: ssh ...
- Linux网络服务管理命令
netstat命令 示例:查看指定的服务是否开启netstat | grep ssh | grep -v grep 网络下载器————wget wget是一个Linux环境下用于从WWW上提取文件的工 ...
- Linux—网络通讯管理命令
一.ping命令 . ping 主机名 . ping 域名 [root@localhost ~]# ping www.baidu.com . ping IP地址 [root@localhost ~]# ...
随机推荐
- python第七周:反射、异常
1.反射: 1.1定义:通过字符串映射或修改程序运行时的状态.属性.方法 1.2有以下四个方法: (1)hasattr(object,str) 判断object对象中是否有对应的方法或属性,返回值:T ...
- <url-pattern>/</url-pattern> 拦截请求
一.springmvc 前端控制器 <!-- springmvc的前端控制器 --> <servlet> <servlet-name>fw-sso-web</ ...
- COCOS学习笔记--Cocod2dx内存管理(三)-Coco2d-x内存执行原理
通过上两篇博客.我们对Cocos引用计数和Ref类.PoolManager类以及AutoreleasePool类已有所了解,那么接下来就通过举栗子来进一步看看Coco2d-x内存执行原理是如何的. / ...
- iOS-UIImageView载入网络下载的图片(异步+多线程)
最原始的载入网络下载的图片方式: //最原始载入网络图片方法,相当堵塞主线程,界面卡顿 -(void)setImageWithURL:(NSString *)imageDownloadUrl{ UII ...
- apiCloud中的数据库操作mcm-js-sdk的使用
1.引入js <!-- 引入mcm-js-sdk Begin --> <script type="text/javascript" src="../pl ...
- 英语发音规则---R字母
英语发音规则---R字母 一.总结 一句话总结: 1.在词首和词中时,字母r常读作摩擦辅音/r/? red /red/ n. 红色 ruler /'ruːlə/ n. 尺:统治者 rub /rʌb/ ...
- Java-MyBatis:MyBatis 3 | SQL 语句构建器类
ylbtech-Java-MyBatis:MyBatis 3 | SQL 语句构建器类 1.返回顶部 1. SQL语句构建器类 问题 Java程序员面对的最痛苦的事情之一就是在Java代码中嵌入SQL ...
- POJ 3260 DP
只需要对John的付款数做一次多重背包,对shopkeeper的找零钱数做一次完全背包即可. 最重要的是上界的处理.可以注意到,John的付款数最多为maxv*maxv+m,也就是24400元.同理, ...
- 阿里云主机ssh 免密码登录
云主机配置: 操作系统: CentOS 7.0 64位CPU: 1 核公网IP: 78.129.23.45用户名: root密码:bugaosuni 本地环境:我在VMware下安装的Ubuntu 1 ...
- Java高级——交通灯管理系统
本方法模拟了现实生活中的交通信号灯的情况 1.先构建Road类,此类可以创建12个方向的路 代码如下: package com.springtie.traffic; import java.util. ...