ifconfig功能:
ifconfig命令是一个古老的命令,它能够简单的获取网卡设备的网络接口配置信息,并且能够修改这些配置,临时或永久生效。
安装时如果使用的是最小化安装CentOS 7,安装完成后是没有ifconfig命令,检查/sbin下也没有这个命令。这时我们可安装ifconfig命令:
#yum install -y net-tools\*
ifconfig命令:ifconfig [INTERFACE]
#ifconfig默认只显示激活的网络接口
-a:显示所有接口,包括inactive非激活状态的接口。
lo是表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。
网卡配置信息:/etc/sysconfig/network-scripts/ifcfg-eno16777736
DEVICE 物理设备名,和文件ifcfg-eno里的eno要一致
BROADCAST 广播地址
IPADDR IP地址
HWADDR 物理地址
NETMASK 子网掩码
NETWORK 网络地址
GATEWAY 网关地址
TYPE 类型(Ethernet 以太网)
ONBOOT 启动或者重启网络时,是否启动该设备,yes是启动,no是不启动
BOOTPROTO 开机协议,最常见的三个参数如下:
tatic(静态IP)
none(不指定)
dhcp(动态获取网络配置相关信息)
历来Linux系统中修改这些参数的方式通常有:命令、配置文件两种。其中通过命令设置可以立即生效但重启后将失效,通过配置文件修改实现永久生效,但不会立即生效。
配置网络临时生效命令:
~]# ifconfig eht0 192.168.1.111 netmask 255.255.255.0
配置网络永久生效方式:
vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 修改此文件
i编辑此文件
DEVICE=eth0 设备名
IPADDR=192.168.1.98 修改IP地址
NETMASK=255.255.255.0 修改子网掩码
GATEWAY=192.168.1.1 修改网关
DNS1=8.8.8.8 修改DNS服务器
ONBOOT=yes 开机启动网卡服务
wq保存退出
重启网络服务:
要想生效,必须重启Linux或者重启网络服务,我们重启网络服务,执行如下命令:
service network restart
开启网卡服务:
CentOS默认网卡是没有启动的,执行如下命令,修改网卡配置文件可开启网卡服务:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
将ONBOOT="no"改为ONBOOT="yes"
命令格式:ifconfig[网络设备][参数]
命令参数:
up 启动指定网络设备/网卡。
~]# ifconfig eth0 up 激活
down 关闭指定网络设备/网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除。
~]# ifconfig eth0 down 停止
arp 设置指定网卡是否支持ARP协议。
~]# ifconfig eth0 arp 启用arp协议
~]# ifconfig eth0 -arp 关闭arp协议
-promisc 设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包
~]# ifconfig eth0 -promisc
-allmulti 设置是否支持多播模式,如果选择此参数,网卡将接收网络中所有的多播数据
~]# ifconfig eth0 -allmulti
-a 显示全部接口信息包含活动的与非活动的
~]# ifconfig -a
-s 显示摘要信息(类似于 netstat -i)
IP命令
语法格式:
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT:= { link | addr | route | netns }
ip link 设备 (device) 的相关设定
~]# ip [-s] link show 查看主机上网络接口设备相关的信息.缩写:show、list、lst、sh、ls
show:仅显示出这个设备的相关内容,如果加上 -s 会显示更多统计数据,显示出整个设备的硬件相关信息,如上所示,包括 MAC地址、MTU,接收 (RX) 及传送 (TX) 的封包数量等,详细内容与 ifconfig 所输出的结果相同。
-s选项出现两次或者更多次,ip会输出更为详细的错误信息统计
~]# ip -s -s link ls eno16777736
ip link set [device] [参数] 改变设备的属性,缩写:set、s
启动、关闭网络接口设备的相关信息
~]#ip link set eth1 up 启动eth1设备
~]#ip link set eth1 down 关闭eth1这个设备
就像ifconfig的用法一样这个等于传统的ifconfig eth0 up | ifconfig eth0 down
设置MTU的大小,默认为1500
~]#ip link set eth1 mtu 1000
# 更改 MTU为1000 bytes,单位就是 bytes
重命名网络接口名称(在重命名前首先要关闭该网络设备)
~]#ip link set eth0 down 关闭设备
~]#ip link set eth1 name eth2 重新设定
~]#ip link show 查看信息
启用或禁用多播功能:
ip link set eth0 multicast on 禁用
ip link set eth0 multicast off 启用
ip address
ip link 是与 OSI 七层模型的第二层数据链路层有关的配置命令,ip addr 就是与第三层网络层有关的配置命令。主要是设定与 IP 有关的各项参数,包括 netmask, broadcast 等等。
语法格式:
ip address [add|del] [IP参数] [dev 设备名] [相关参数]
修改网络设备的MAC地址。
~]#ip link set dev eth1 address 00:01:4f:00:15:f1
显示出所有接口设备的 IP 信息
~]#ip address show
显示单个网卡接口设备
~]#ip addr list eth1
ip address add 添加一个新的协议地址 缩写:add 、a
label 用来给设备设定一个标签别名,有别名才可以在ifconfig命令下显示此接口设备。
示例: 在以太网接口eno16777736上增加一个地址192.168.1.100,掩码长度为24位(155.155.155.0),标签为 eno16777736:1
~]#ip addr add 192.168.1.100/24 brd + dev eno16777736 label eno16777736:1
这个命令等于传统的ifconfig eth1:1 192.168.4.2/24
删除一个协议地址. 缩写:delete、del、d
~]#ip addr del 192.168.1.100/24 brd + dev eno16777736 label eno16777736:1
ip address flush清除协议地址. 缩写:flush、f
示例: 删除属于私网10.0.0.0/8的所有地址:
ip -s -s a f to 10/8
给一个网卡接口设备添加多个IP
route:路由的查看与设定
语法格式:
ip route add TYPE PREFIX via GW [dev IFACE][src SOURCE_IP]
显示路由设定信息
~]#ip route show
proto:此路由的路由协定
kernel:指的是直接由核心判断自动设定。
scope:路由的范围
添加新路由
~]#ip route add 192.168.1.100/24 dev eth1
修改路由
~]#ip route change
删除路由
ip route del 192.168.5.0/24 dev eth1
清除所有ipv4路由cache
ip route flush cache
列出某个路由表的内容
ip route ls table fddi153
all 列出所有表的路由
ip route ls table all
cache 列出路由缓存的内容
ip ro ls 192.168.2.220 tab cache
netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;
CentOS 6不支持此配置
~]#ip netns add mynet 添加一个网络名称空间叫mynet
~]#ip link set eth1 netns mynet 添加到mynet网络名称空间
~]#ipnetns exec mynet ip link show 查看该空间的网络配置
~]#ip netns del mynet删除网络空间删除后回到原有网络名称空间
SS命令
原来netstat已经是明日黄花了,官方已经不再更新了,它已经被ss命令和ip命令所取代,或许在不久的将来在Linux发行版中就将见不到netstat的身影了。所以,如果还有人在用netstat,你要建议他使用ss和ip
替代方案简单的示意图:
ss命令用来显示接口的统计数据。它可以显示的统计数据包套接字,TCP套接netstat命字,UDP套接字,DCCP插口,RAW插槽,Unix域套接字,等。它可以显示出类似的信息令 ,显示比其他工具更快速更高效的TCP和状态信息。它是用于跟踪TCP连接状态的,非常有用的工具。
大多数Linux发行版都带有SS和许多监控工具。
语法格式: ss[选项]
选项:
-h:显示帮助信息
-V:显示指令版本信息
-n:不解析服务名称,以数字方式显示
-a:显示所有的套接字
-l:显示处于监听状态的套接字
-o:显示计时器信息
-m:显示套接字的内存使用情况
-p:显示使用套接字的进程信息
-i:显示内部的TCP信息
-4:只显示ipv4的套接字
-6:只显示ipv6的套接字
-t:只显示tcp套接字
-u:只显示udp套接字
-d:只显示DCCP套接字
-w:仅显示RAW套接字
-x:仅显示UNIX域套接字
显示套接字摘要,当前建立列表,封闭,孤立,等待TCP套接字
~]#ss -s
显示所有打开的网络端口
~# ss -l
显示所有UDP Sockets
~]# ss -u -a
找出打开套接字/端口应用程序
~]# ss -pl | grep 8860
过滤tcp连接状态中源端口或目的端口是22的
~]# ss -tan '( dport = :22 or sport = :22 )'
本文出自 “Jet'aime” 博客,谢绝转载!