ifconfig
是用来查看、配置、启用或禁用网络接口的工具。可以用这个工具来临时配置网卡的IP地址、掩码、广播地址、网关等。
语法######
ifconfig [interface]
参数######
up 启动指定网络设备/网卡
down 关闭指定网络设备/网卡
-a 显示全部接口信息
-s 显示摘要信息
add 设置指定网卡配置IPv6地址
del 删除指定网卡配置IPv6地址
mtu<字节数> 设置网卡的最大传输单元(bytes)
netmask<子网掩码>设置网卡的子网掩码
multicast 为网卡设置组播标志
实例######
为网卡配置和删除IPV6地址
ifconfig eth0 add 33ffe:3240:800:1005::2/64 #为网卡eth0配置IPv6地址
ifconfig eth0 del 33ffe:3240:800:1005::2/64 #为网卡eth0删除IPv6地址
用ifconfig修改MAC地址
ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE
配置IP地址
[root@qingcheng-app ~]#ifconfig eth0 192.168.2.10
[root@qingcheng-app ~]#ifconfig eth0 192.168.2.10 netmask 255.255.255.0
[root@qingcheng-app ~]#ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255
启用和关闭arp协议:
ifconfig eth0 arp //开启网卡eth0的arp协议
ifconfig eth0 -arp //关闭网卡eth0的arp协议
设置最大传输单元
ifconfig eth0 mtu 1500
route
route程序对内核的IP选路进行操作。它主要用于通过已用ifconfig程序配置好接口来指定主机或网络设置静态路由。
语法######
route [-CFvnNee] [-A family |-4|-6]
选项######
-A:设置地址类型
-C:打印将Linux核心路由缓存
-v:详细信息模式
-n:不执行DNS方向查找,直接显示数字形式的IP地址
-e:netstat格式路由表
-net:到一个网络的路由表
-host:到一个主机的路由表
参数######
Add:增加指定的路由记录
Del:删除指定的路由记录
Target:目的网络或目的主机;
gw:设置默认网关
mss:设置TCP最大区块长度,单位MB
window:指定通过路由表的TCP链接的TCP窗口大小
dev:路由记录所表示的网络接口
实例######
显示当前路由
[root@qingcheng-app ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 121.14.47.1 0.0.0.0 UG 0 0 0 br1
121.14.47.0 0.0.0.0 255.255.255.128 U 0 0 0 br1
169.254.0.0 0.0.0.0 255.255.0.0 U 1006 0 0 br0
169.254.0.0 0.0.0.0 255.255.0.0 U 1007 0 0 br1
172.19.47.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
添加网关/设置网关
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 //增加一条到达244.0.0.0的路由
屏蔽一条路由
route add -net 224.0.0.0 netmask 240.0.0.0 reject
删除路由记录
route del -net 224.0.0.0 netmask 240.0.0.0
route del -net 224.0.0.0 netmask 240.0.0.0 reject
删除和添加设置默认网关
route del default gw 192.168.120.240
route add default gw 192.168.120.240
netstat
显示网络连接、路由表、接口状态、伪装连接、网络链路信息和组播成员。
语法######
netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n]
[--numeric-hosts] [--numeric-ports] [--numeric-users] [--symbolic|-N] [--extend|-e[--extend|-e]] [--program|-p]
选项######
-t:tcp 协议相关
-u:udp协议相关
-r:raw socket相关
-l:处于监听状态
-a:所有状态
-n:已数字方式显示IP和端口
-e:扩展格式
-p:显示相关的进程和PID
常用组合:
-tan,uan,-tnl,unl
实例######
列出所有端口
netstat -a //列出所有端口
netstat -at //列出所有tcp端口
netstat -au //列出所有udp的端口
列出所有处于监听状态的sockets
netstat -l //只显示监听端口
netstat -lt //只列出所有监听tcp端口
netstat -lu //只列出所有监听udp端口
netstat -lx //只列出所有监听unix端口
显示每个协议的统计信息
netstat -s //显示所有端口的统计信息
netstat -st //显示TCP端口的统计信息
netstat -su //显示UDP端口的统计信息
在netstat 输出中不显示主机,端口和用户名(host,port or user)
netstat -an //不显示主机,端口,用户名
如果只是不想让着三个名称的一个被显示,使用以下命令
netstat -a --numeric-ports
netstat -a --numeric-hosts
netstat -a --numeric-users
持续输出netstat信息
netstat -c
显示核心路由信息
netstat -r
显示网络接口列表
netstat -i
ip
显示或操纵Linux主机路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。
语法######
ip [ OPTIONS ] OBJECT { COMMAND | help }
选项######
-V:显示指令版本信息
-s:输出更详细的信息
-f:强制使用指定的协议簇
-4:指定使用网络协议是IPv4协议;
-6:指定使用网络协议是IPv6协议;
-0:输出信息每条记录输出一行,即使内容多也不换行显示;
-r:显示主机时,不使用IP地址,而使用主机的域名。
参数######
网络对象:指定要管理的网络对象
具体操作:对指定的网络对象完成具体操作
help:显示网络对象支持的操作命令的帮助信息
实例######
用ip命令显示网络设备的运行状态
[root@qingcheng-app ~]# ip link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP mode DEFAULT qlen 1000
link/ether 80:18:44:ea:80:a8 brd ff:ff:ff:ff:ff:ff
3: em2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br1 state UP mode DEFAULT qlen 1000
link/ether 80:18:44:ea:80:a9 brd ff:ff:ff:ff:ff:ff
4: em3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000
link/ether 80:18:44:ea:80:aa brd ff:ff:ff:ff:ff:ff
显示更加详细的设备信息
[root@qingcheng-app ~]# ip -s link list|more
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
RX: bytes packets errors dropped overrun mcast
31597378 557905 0 0 0 0
TX: bytes packets errors dropped carrier collsns
31597378 557905 0 0 0 0
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP mode DEFAULT qlen 1000
link/ether 80:18:44:ea:80:a8 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
391717022510 928145510 0 146014 0 16244537
TX: bytes packets errors dropped carrier collsns
176477581378 928005445 0 0 0 0
显示核心路由表
[root@qingcheng-app ~]# ip route list
default via 121.14.47.1 dev br1
169.254.0.0/16 dev br0 scope link metric 1006
169.254.0.0/16 dev br1 scope link metric 1007
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
显示邻居表
[root@qingcheng-app ~]# ip neigh list
172.19.47.27 dev br0 lladdr 00:22:64:f7:9e:52 STALE
172.19.47.212 dev br0 lladdr 52:54:00:fa:ee:f2 STALE
121.14.47.3 dev br1 lladdr 74:1f:4a:7f:90:9a STALE
ss
用来显示处于活动状态套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
语法######
ss [options] [ FILTER ]
选项######
-t:只显示tcp套接字
-u:只显示udp套接字
-h:显示帮助信息
-V:显示指令版本信息
-a:显示所有的套接字
-l:显示处于监听状态的套接字
-o:显示计时器信息
-m:显示套接字的内存使用情况
-p:显示使用套接字的进程信息
-i:显示内部的TCP信息
-4:指定使用网络协议是IPv4协议
-6:指定使用网络协议是IPv6协议
-d:只显示DDCP套接字
-w:仅显示RAW套接字
-x:仅显示UNIX域套接字
实例######
显示TCP连接
[root@qingcheng-app ~]# ss -t -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 1 *:rfb *:*
LISTEN 0 1 *:5901 *:*
LISTEN 0 5 *:5902 *:*
LISTEN 0 5 *:5903 *:*
LISTEN 0 1 *:5904 *:*
LISTEN 0 1 *:5905 *:*
LISTEN 0 128 *:20050 *:*
LISTEN 0 128 *:6002 *:*
LISTEN 0 128 *:22898 *:*
LISTEN 0 128 *:6003 *:*
显示 Sockets摘要
[root@qingcheng-app ~]# ss -s
Total: 3196 (kernel 11861)
TCP: 102 (estab 1, closed 74, orphaned 0, synrecv 0, timewait 73/0), ports 0
Transport Total IP IPv6
* 11861 - -
RAW 2 0 2
UDP 12 9 3
TCP 28 21 7
INET 42 30 12
FRAG 0 0 0
列出所有打开的网络连接断开
[root@qingcheng-app ~]# ss -l|more
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
nl UNCONN 0 0 rtnl:mission-control/6366 *
nl UNCONN 0 0 rtnl:evolution-calen/135397 *
nl UNCONN 0 0 rtnl:gnome-software/135092 *
nl UNCONN 0 0 rtnl:mission-control/4058 *
nl UNCONN 0 0 rtnl:gnome-software/6409 *
nl UNCONN 0 0 rtnl:goa-daemon/6354 *
nl UNCONN 0 0 rtnl:evolution-calen/4452 *
nl UNCONN 0 0 rtnl:evolution-calen/6543 *
列出所有进程使用的socket
[root@qingcheng-app ~]# ss -pl|more
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
nl UNCONN 0 0 rtnl:mission-control/6366 *
nl UNCONN 0 0 rtnl:evolution-calen/135397 *
nl UNCONN 0 0 rtnl:gnome-software/135092 *
nl UNCONN 0 0 rtnl:mission-control/4058 *
nl UNCONN 0 0 rtnl:gnome-software/6409 *
nl UNCONN 0 0 rtnl:goa-daemon/6354 *
nl UNCONN 0 0 rtnl:evolution-calen/4452 *
显示所有UDP Sockets
root@qingcheng-app ~]# ss -u -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 *:31804 *:*
ESTAB 0 0 121.14.47.48:34330 193.228.143.14:ntp
UNCONN 0 0 *:53334 *:*
UNCONN 0 0 192.168.122.1:domain *:*
UNCONN 0 0 *%virbr0:bootps *:*
UNCONN 0 0 *:bootpc *:*
UNCONN 0 0 *:bootpc