ifconfig命令
用于配置网卡ip地址等网络参数信息,或者查看网络接口信息,类似于windows的ipconfig命令,还能够临时性的配置IP地址、子网掩码、广播地址、网关信息等。
注意:ifconfig命令只能用root去操作,且可能需要单独安装这个命令
安装
yum install net-tools
使用
1 查看网络地址信息
查看所有的网络接口信息
ifconfig
查看指定的网卡信息
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.192.128 netmask 255.255.255.0 broadcast 192.168.192.255
inet6 fe80::aeef:ebd8:49f6:fcce prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:30:1c:17 txqueuelen 1000 (Ethernet)
RX packets 66272 bytes 23677306 (22.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3751 bytes 619021 (604.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
第一块网卡的信息,设置名是,网卡配置文件路径是
- ipv4的地址inet 192.168.192.128
- 子网掩码地址是 255.255.255.0
- 广播地址是 192.168.192.255
- RX/TX packages 代表网卡收发的流量数据包大小
2 启动停止网卡
ifconfig 设备名称 down/up #终端软件慎用
3 修改、设置ip地址
ifconfig ens33:0 192.168.192.118 netmask 255.255.255.0 up
或者
ifconfig ens33:1 192.168.192.119/32 up
4 修改MAC地址信息
ifconfig ens33 hw ether 00:0c:29.18.CG
5 永久修改网络设备信息,ifconfig命令只是临时修改网络配置,要永久修改还得写入到配置文件中
/etc/sysconfig/network-scripts/ifcfg-设置名
route路由命令
什么是route路由?
计算机之间的数据传输必须经过网络,网络可以直接连接两台计算机,也可以通过一个一个的节点去链接路由可以理解为互联网的中转站,网络中的数据包就是通过一个一个的路由器转发到目的地的。
route程序对linux内地IP路由表进行一个操作。
路由分为静态和动态路由
- Linux机器上配置的都是静态路由,由运维人员通过route命令去管理,
- 动态路由无需认为干预,由路由器、交换机自动分配规则而来。
1 查看路由
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.192.1 0.0.0.0 UG 100 0 0 ens33
192.168.192.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
其中-n表示不进行dns解析。
参数解析
-
Destination: 表示网络号,network的意思
-
Gateway: 表示网关地址,网路是通过该IP出口,如果显示0.0.0.0的ip,表示该路由信息是从本机转发出去的
-
Genmask: 子网掩码地址的表示,IP地址配合子网掩码,才是一个完整的网络信息
-
Flags: 路由标记,标记当前的网络状态U
-
Up运行的状态
-
G 表示这是一个网关路由器
-
H 表示这个网关是一个主机
-
!表示当前这个路由器已禁止
-
2 添加删除网关信息
网关就是数据包不经过任何的设定路由表最后经过的地址关口,是网络的接口,数据只能通过网关地址出外网
删除网关
route del default
添加网关
route add default gw 192.168.192.1
ip命令
ip命令是iproute软件包中强大的网络管理工具,查看系统路由,网络设置,设置策略等功能。
[root@localhost ~]# ip --help
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
ip [ -force ] -batch filename
where OBJECT := { link | address | addrlabel | route | rule | neigh | ntable |
tunnel | tuntap | maddress | mroute | mrule | monitor | xfrm |
netns | l2tp | fou | macsec | tcp_metrics | token | netconf | ila |
vrf }
OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
-h[uman-readable] | -iec |
-f[amily] { inet | inet6 | ipx | dnet | mpls | bridge | link } |
-4 | -6 | -I | -D | -B | -0 |
-l[oops] { maximum-addr-flush-attempts } | -br[ief] |
-o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
-rc[vbuf] [size] | -n[etns] name | -a[ll] | -c[olor]}
ip命令可以操作的对象
- link 网络设备
- address 定义ipv4 ipv6的地址
- neighbour 查看ARP缓存地址(ARP用于解析MAC地址)
- route 路由表对象
- maddress 多播地址
- tunel IP上的通道
ip命令示例
1 查看
显示网路设备信息
ip addr show
ip a
查看指定设备信息
ip link show dev ens33
显示网络设备,详细的数据包收发大小情况
ip -s link show dev ens33
2 关闭、激活网络设备
ip link set ens33 down/up
3 修改MAC地址
ip link set ens33 address 0:0c:29:87:a0:d4
4 添加/删除ip地址
ip addr add/dev 192.168.192.119/32 dev ens33
5 ip命令给网卡添加别名
ip addr add/dev 192.168.192.119/32 dev ens33 label ens33:1
6 查看路由表信息
ip route
7 查看ARP缓存信息(显示网络邻居),检查MAC地址
ip neighbour
netstat命令
显示网络连接情况,路由表信息,端口状态,网络连接情况等。一个进程服务运行之后,会暴露一个端口号,以及产生相应的进程信息。
1 查看所有的网络连接情况
nestat -an
-a 显示所有的套接字(scoket)信息
-n 显示数字地址信息而非主机名
[root@localhost ~]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 192.168.192.128:5432 192.168.192.2:8282 ESTABLISHED
常见字段解释:
- proto 套接字使用的协议
- Recv-Q 连接这个套接字的用户,还未拷贝的字节数
- Send-Q 远程主机还未确认的字节数
- Local Address 套接字(一个连接情况)本地的地址和端口号
- Foreign Address 套接字的远程主机地址和端口号
- State 套接字的状态
- ESTABLISHED 套接字有一个有效连接
- SYN_SENT 套接字尝试建立一个连接
- SYN_RECV 从网络上收到一个连接请求
- FIN_WAIT1 套接字已关闭,连接正在断开
- FIN_WAIT2 连接已关闭,套接字等待远程方中止
- TIME_WAIT 在关闭之后,套接字等待处理仍然在网络中的分组
- CLOSED 套接字未使用
- CLOSE_WAIT 远程方已关闭,等待套接字关闭
- LAST_ACK 远程方中止,套接字已关闭。等待确认
- LISTEN 套接字监听进来的连接,如果不设置 --listening(-l)或者--all(-a)选项,将不显示出来这些连接
- CLOSING 套接字都已关闭,而还未把所有数据发出
- UNKNOW 套接字状态未知
2 常用的参数组合
netstat -tunlp #查看机器上正在运行的所有端口情况以及其他的进程情况
参数解释如下
- -t 显示出TCP的连接情况
- -u 显示出UDP的连接情况
- -n 不进行dns解析
- -l 只显示正在监听中的套接字情况
- -p 显示出套接字所属的进程和进程名情况
3 显示路由表信息
netstat -rn
建议使用ip route 来替代 netstat -r。
4 显示网络接口情况
[root@localhost ~]# netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33 1500 68787 0 0 0 4166 0 0 0 BMRU
ens33:1 1500 - no statistics available - BMRU
lo 65536 5168 0 0 0 5168 0 0 0 LRU
- Iface 网络设备的名字
- MTU 最大传输单元,单位是字节
- RX-OK/TX-OK 正确接受/发送了多少数据包
- RX-ERR/TX-ERR 接受、发送数据包的时候,丢弃了多少数据包
- RX-OVR/TX-OVR 由于错误遗失了多少的数据包
- Flg标记
- L:是回环地址的含义
- R:这个网络接口正在运行中
- U:接口正在处于活动的状态
- B:设置了广播地址
- M:接受所有的数据包
- O: 表示在该接口上禁止arp
- P:端对端的连接
查看RX-ERR/TX-ERR最好是0,否则表示网络情况不健康,有丢包的现象,推荐使用ip -s link来替代netstat -i。
5 查看服务监听
netstat -apn|grep 5432
netstat -apn|grep 80
netstat -apn|grep 443
...
ping命令
测试当前主机到目标机器的网络连通性
1 可以进行域名进行ping,查看能否通信,也可以用这个命令当作检测本机是否能够dns解析的命令。
ping www.baidu.com -c 4
2 ping ip地址,省去了dns解析的过程
[root@localhost ~]# ping 36.152.44.95 -c 4
PING 36.152.44.95 (36.152.44.95) 56(84) bytes of data.
64 bytes from 36.152.44.95: icmp_seq=1 ttl=128 time=30.4 ms
64 bytes from 36.152.44.95: icmp_seq=2 ttl=128 time=31.1 ms
64 bytes from 36.152.44.95: icmp_seq=3 ttl=128 time=30.4 ms
64 bytes from 36.152.44.95: icmp_seq=4 ttl=128 time=30.1 ms
--- 36.152.44.95 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3021ms
rtt min/avg/max/mdev = 30.164/30.556/31.179/0.396 ms
解释
- ping命令跟着域名或是ip地址,它会一直刷新ping命令的结果,-c可以指定次数
- ping命令发送给了远程主机56字节的数据
- 从目标机器收到了64字节的数据,icmp_seq表示收到的字节数据序列号,ttl是数据包的存活时间,单位为秒,time是两台机器收发数据的延迟时间
3 ping命令用于检测主机网络状态
检测本机是否能够进行dns解析
ping 出现未知的名称或服务
当出现如上情况,可能是机器无法上网了,也可能是机器无法进行dns域名解析了
验证步骤:
1,检查linux的nds客户端配置文件/etc/resolv.conf确保文件中,有dns服务器的地址
nameserver 114.114.114.114
2,此时再次验证能够进行域名解析,能否发送ping命令
3,当ping远程主机的时候,出现如下报错,就是你自己的机器,无法上外网了,说明网络配置有问题,得正确配置ip信息,以及路由网关地址
Destination Host Unreachable
telnet命令
telnet命令在以前用于登录远程主机的命令,以及检测远程主机的端口是否打开了,但是telnet命令采用的是明文传输,安全性太低,在远程登录的时候,容易丢失或者被黑客截取服务器的密码,因此后台被启用,采用了更安全的ssh远程登录命令
用于检测远程主机是否打开了某端口
telnet 192.168.192.128 80
一般需要先安装
yum install telnet -y
ssh命令
ssh命令是openssh软件包中的一个套件命令,使用ssh加密的协议进行远程登录,并且对服务器的远程管理,在windows平台,常用Xshell,CRT工具进行远程登录,linux、macos,可以直接在命令行终端,输入ssh指令即可,ssh连接的是服务器上运行的sshd这个应用程序,且后台监听的是22端口
语法
ssh 用户名@ip地址
- -p port 默认22
不用登录到服务器,可以直接输入命令查看
ssh 用户名@ip地址 “执行的命令”