文章最后更新时间:
![图片[1]- Linux常用命令之网络管理- 如烟笔记](https://blog.iosru.com/wp-content/uploads/2024/12/20241201204153835-c17c81a1543222c227e19e1d965c5958.webp)
本篇分享Linux中常用命令。主要分享Linux系统的网络管理相关的命令。
![图片[2]- Linux常用命令之网络管理- 如烟笔记](https://blog.iosru.com/wp-content/uploads/2024/12/20241201204343185-b50d7bc87cc115cc09e021bcc41a0cff.webp)
ifconfig命令——配置或显示网络接口信息
ifconfig命令用于配置网卡IP地址等网络参数或显示当前网络的接口状态,需要以root用户的身份来执行。
如果命令不存在则安装
yum install -y net-tools
使用ifconfig命令配置网卡信息仅会临时生效,重启网络或服务器就会失效。
选项:
up | 激活指定的网络接口 |
down | 关闭指定的网络接口 |
hw | 设置网卡的MAC地址 |
操作:
# 查看所有已启动的网卡信息
ifconfig
# 查看eth0网卡信息
ifconfig eth0
# 查看所有网卡信息(包括未开启的)
ifconfig -a
# 启动eth1网卡
ifconfig eth1 up
# 关闭eth1网卡
ifconfig eth1 down
# 为网卡配置信息
ifconfig eth0 172.16.1.30
# 为网卡配置多个IP
ifconfig eth0:0 172.16.1.28 netmask 255.255.255.0 up
ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.1.27 netmask 255.255.255.0 broadcast 172.16.1.255
inet6 fe80::ffaa:cae4:9cc0:3250 prefixlen 64 scopeid 0x20<link>
inet6 fe80::eb49:7220:1bb9:df4f prefixlen 64 scopeid 0x20<link>
inet6 fe80::21b6:b00:310a:19d3 prefixlen 64 scopeid 0x20<link>
ether 28:6e:d4:89:b3:85 txqueuelen 1000 (Ethernet)
RX packets 5035132 bytes 609739285 (581.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2070630 bytes 384120838 (366.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.1.28 netmask 255.255.255.0 broadcast 172.16.1.255
ether 28:6e:d4:89:b3:85 txqueuelen 1000 (Ethernet)
网卡的配置文件在/etc/sysconfig/network-scriprts/目录下。eth0对应的是ifcfg-eth0文件。
ifup命令——激活网络接口
ifup命令可读取配置文件/etc/sysconfig/network和/etc/sysconfig/network-scripts/ifcfg-<configuration>对网络接口进行相应的操作。
操作:
# 激活eth0网络接口,等同于ifconfig eth0 up
ifup eth0
# 查看eth0网络接口状态
ifconfig eth0
ifdown命令——用于禁用指定的网络接口。
操作:
# 关闭eth0网卡接口,该操作导致断开SSH连接,谨慎操作
ifdown eth0
# 重启网卡
ifdown eth0 && ifup eth0
route命令——管理路由表
route命令可以为服务器设置静态路由。
选项:
-n | 查看路由信息 |
-ee | 显示更详细的路由信息 |
add | 添加路由信息 |
del | 删除路由信息 |
-net | 到一个网络的路由,后面接网络号地址 |
-host | 到一个主机的路由,后面接一个主机地址 |
netmask | 添加子网掩码 |
gw | 指定网关 |
dev If | 指定由哪个网卡出去,如eth0 |
操作:
# 查看系统路由信息
route -n
# 删除路由信息
route del default //删除默认网关
route del default gw 172.16.1.254
route del default gw 172.16.1.254 dev eth0
# 添加路由信息
route add default gw 172.16.1.254
route add default gw 172.16.1.254 dev eth0
# 配置去往某一网络或网段的路由
172网段主机访问192网段的主机。
route add -net 192.168.4.0/24 gw 172.16.1.254
route add -net 192.168.4.0/24 netmask 255.255.255.0 dev eth1
删除路由
route del -net 192.168.4.0/24 dev eth1
# 配置去往某个主机的路由
route add -host 172.16.2.250 dev eth0
删除路由:
route del -host 172.16.2.250 dev eth0
以上配置在重启网络时都会失效需要写到配置中。
需要写到/etc/sysconfig/network-scripts/route-eth*或/etc/rc.local文件中,重启会重新加载。
192.168.4.0/24 via 172.16.1.254
arp命令——管理系统的arp缓存
arp是地址解析协议,主要是根据IP地址获取物理地址。arp可以显示缓存区中的所有条目、删除指定的条目或者添加静态的IP地址与MAC地址的对应关系。
选项:
-n | 显示IP地址对应的MAC地址信息 |
-s <主机><MAC> | 指定主机的IP地址与MAC地址的静态映射 |
-d <主机> | 删除制定主机的arp条目 |
操作:
# 显示arp缓存区的所有条目
[root@localhost ~]# arp -n
Address HWtype HWaddress Flags Mask Iface
172.16.1.20 ether 28:6e:d4:8a:02:c0 C eth0
172.16.1.25 ether 28:6e:d4:8a:15:61 C eth0
172.18.0.9 ether 02:42:ac:12:00:09 C br-7f15bb750845
172.16.1.254 (incomplete) eth0
172.16.1.22 ether 28:6e:d4:89:e0:09 C eth0
172.16.1.24 ether 28:6e:d4:88:eb:3d C eth0
# 查看指定主机的arp条目
arp -n 172.16.1.27
# 绑定IP地址和MAC地址(临时,)
[root@localhost ~]# arp -s 172.16.1.20 28:6e:d4:8a:02:c1
[root@localhost ~]# arp -n
Address HWtype HWaddress Flags Mask Iface
172.16.1.20 ether 28:6e:d4:8a:02:c1 CM eth0
# 删除静态ARP绑定
[root@localhost ~]# arp -d 172.16.1.20
ip命令——网络配置工具
ip命令用于显示或管理linux系统的路由、网络设备、策略路由和隧道。
语法格式:
ip [选项] [网络对象] [操作命令]
操作:
# 查看网卡信息
[root@localhost ~]# ip a
# 关闭网卡
[root@localhost ~]# ip link set eth0 down
# 开启网卡
[root@localhost ~]# ip link set eth0 up
# 添加IP地址
[root@localhost ~]# ip a add 172.16.1.31/24 dev eth0
# 删除IP地址
[root@localhost ~]# ip a del 172.16.1.31/24 dev eth0
# 查看路由
[root@localhost ~]# ip route
default via 172.16.1.254 dev eth0 proto static metric 100
172.16.1.0/24 dev eth0 proto kernel scope link src 172.16.1.27 metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
172.18.0.0/16 dev br-7f15bb750845 proto kernel scope link src 172.18.0.1
注意:
1、删除网卡的主IP地址,同时会删除该网卡的所有IP地址。
2、删除网卡的辅助IP地址,不会影响该网卡的其他IP地址。
3、ip命令集成了ifconfig和route的功能,逐渐替代这两个IP
netstat命令——查看网络端口信息
用于显示本机网络的连接状态、运行端口和路由表等信息。
选项:
-n | 显示数字形式的地址而不是去解析主机 |
-a | 显示处于监听状态和非监听状态的socket信息 |
-c <秒数> | 每隔几秒刷新一次 |
-l | 仅显示处于监听状态的网络状态 |
-t | 显示所有的TCP连接情况 |
-u | 显示所有的UDP连接情况 |
-p | 显示socket所属进程的PID和名称 |
常用组合:
# 列出所有处于监听状态的端口信息
[root@localhost ~]# netstat -lntup
# 列出所有处于监听和非监听状态的端口信息
[root@localhost ~]# netstat -antup
重要的两个状态:
1、ESTABLISHED:表示处于连接的状态,认为有一个EASTABLISHED是一个服务的并发连接。
2、LISTEN:socket正在监听连接请求。
ss命令——查看网络端口信息
ss命令和netstat功能类似,但它能显示更多更详细的网络连接信息,比netstat更快更高效
安装ss命令:
yum -y install iproute
# 列出所有处于监听状态的端口信息
[root@localhost ~]# ss -lntup
# 列出所有处于监听和非监听状态的端口信息
[root@localhost ~]# ss -antup
ping命令——测试主机之间网络的连通性
ping命令发出请求后,远端主机网络联通的话,就会收到回应消息。可判断主机是否正常或两者的网络是否可以互通。
选项:
-c <次数> | 指定发送ICMP报文的次数,默认一直发送报文 |
-i <时间> | 发送报文的间隔时间,默认是1s |
-t <生存期> | 设置发送的数据包其生存期TTL值 |
操作:
# 直接ping域名
[root@localhost ~]# ping harbor.liyb.com
# 测试IP地址
[root@localhost ~]# ping 172.16.1.27
# 每次ping间隔2秒,一共5次。
[root@localhost ~]# ping -t 2 -c 5 172.16.1.27
PING 172.16.1.27 (172.16.1.27) 56(84) bytes of data.
64 bytes from 172.16.1.27: icmp_seq=1 ttl=64 time=0.029 ms
64 bytes from 172.16.1.27: icmp_seq=2 ttl=64 time=0.032 ms
64 bytes from 172.16.1.27: icmp_seq=3 ttl=64 time=0.032 ms
64 bytes from 172.16.1.27: icmp_seq=4 ttl=64 time=0.028 ms
64 bytes from 172.16.1.27: icmp_seq=5 ttl=64 time=0.026 ms
--- 172.16.1.27 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3999ms
rtt min/avg/max/mdev = 0.026/0.029/0.032/0.005 ms
注意:如果不加-c参数会一直ping下去,这时需要使用Ctrl + c来终止。
traceroute命令——追踪数据传输路由状态
traceroute命令和window下的tracert命令类似,用于显示网络数据包传输到指定主机的路径信息
安装traceroute:
yum install -y traceroute
操作:
traceroute www.baidu.com
注意:
1、有时会看到一些星号。可能是因为网络设备封堵或丢弃了返回的信息,所以得不到返回信息。
2、traceroute默认使用UDP协议(受网络影响性能不太好),可以使用-I参数来调用icmp协议。
telnet命令——远程登录主机或检测远程端口
telnet命令使用23端口进行远程,但是使用明文传输,安全性不好。目前远程连接一般使用安全性更好的SSH服务。现在telnet的主要应用场景是判断远端服务器的端口是否开放。
操作:
# 端口放通的现象
[root@localhost ~]# telnet 172.16.1.20 22
Trying 172.16.1.20...
Connected to 172.16.1.20.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4 # 看到这种情况,代表22端口是放通的。
# 端口无法连接的现象
[root@localhost ~]# telnet 172.16.1.20 3306
Trying 172.16.1.20...
telnet: connect to address 172.16.1.20: Connection refused
ssh命令——远程登录主机
ssh命令可以使用ssh加密协议实现安全的远程登录服务器,实现对服务器的远程管理。
语法格式:
ssh [选项] [用户]@[主机名或IP地址] [远程执行的命令]
选项:
-p | 指定ssh登录端口,默认是22端口 |
-t | 强制分配伪终端 |
-v | 调试模式 |
操作:
# 首次连接会提示,再次连接就不会提示,输入正确密码就可以远程
[root@k8s-master03 ~]# ssh -p 22 root@172.16.1.20
The authenticity of host '172.16.1.20 (172.16.1.20)' can't be established.
ECDSA key fingerprint is SHA256:ANt+WLWZpyB8YH14ROYVMTS68fEcEqoIrdVAi2FtwvU.
ECDSA key fingerprint is MD5:d0:f1:19:71:df:cb:39:b3:b2:cb:9a:83:39:f2:05:cb.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.1.20' (ECDSA) to the list of known hosts.
root@172.16.1.20's password:
# 远程执行命令
[root@localhost ~]# ssh root@172.16.1.20 "free -h"
root@172.16.1.20's password: # 输入正常密码
total used free shared buff/cache available
Mem: 15G 1.4G 2.4G 743M 11G 13G
Swap: 0B 0B 0B
# 调试
[root@localhost ~]# ssh -v root@172.16.1.20
wget命令——命令行下载工具
wget命令用于从网络上下载某些资料,可以直接从网络上下载自己的所需要的文件
选项:
-o | 将文件的执行结果写入文件中 |
-O | 指定保存的文件名后下载文件 |
-c | 断点续传 |
–limit-rate | 限速下载 |
操作:
# 下载单个文件,直接后面加链接
wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.98/src/apache-tomcat-8.5.98-src.tar.gz
# 指定保存的文件后下载
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 限速下载
wget --limit-rate=5k -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
nslookup命令——域名解析查询工具
安装:yum -y install bind-utils
语法:
nslookup [选项] [域名/IP] [DNS服务器]
操作
# 查看DNS配置文件
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search liyb.com
nameserver 172.16.1.27
# 交互模式
[root@localhost ~]# nslookup
> server 172.16.1.27 # 指定DNS服务器
Default server: 172.16.1.27
Address: 172.16.1.27#53
> harbor.liyb.com # 解析域名
Server: 172.16.1.27
Address: 172.16.1.27#53
Name: harbor.liyb.com
Address: 172.16.1.26
# 非交互模式
[root@localhost ~]# nslookup harbor.liyb.com
Server: 172.16.1.27
Address: 172.16.1.27#53
Name: harbor.liyb.com
Address: 172.16.1.26
dig命令——域名查询工具
dig命令用于测试域名系统的工作是否正常
选项:
@<DNS的IP地址> | 指定DNS服务器来进行解析 |
-t | 指定要查询的DNS数据类型 |
+trace | 从根域名开始跟踪查询结果 |
+short | 仅输出最精简的CNAME和A记录 |
操作:
# 查询指定域名的IP地址
[root@localhost ~]# dig harbor.liyb.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7 <<>> harbor.liyb.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6359
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;harbor.liyb.com. IN A
;; ANSWER SECTION:
harbor.liyb.com. 86400 IN A 172.16.1.26
;; AUTHORITY SECTION:
liyb.com. 86400 IN NS www.liyb.com.
;; ADDITIONAL SECTION:
www.liyb.com. 86400 IN A 172.16.1.27
;; Query time: 0 msec
;; SERVER: 172.16.1.27#53(172.16.1.27)
;; WHEN: 五 1月 26 12:04:32 CST 2024
;; MSG SIZE rcvd: 94
# 指定DNS服务器
[root@localhost ~]# dig @172.16.1.27 harbor.liyb.com
# 精简输出
[root@localhost ~]# dig +short harbor.liyb.com
172.16.1.26
tcpdump命令——监听网络流量
tcpdump命令是一个截获网络数据包的包分析工具。tcpdump可以将网络中传送的数据包的“头”完全截获下来以提供分析。
选项:
-c <数量> | 接收到指定的数据包数目后退出 |
-i <网络接口> | 指定要监听的网络接口 |
-n | 不进行DNS解析,加快显示速度 |
-nn | 不将协议和端口数字等转换成名字 |
-q | 以更快速输出的方式运行。 |
-v | 显示命令执行的详细信息 |
操作:
# 不加参数将启动监视第一个网络接口所流过的数据包
[root@localhost ~]# tcpdump
# 指定网络接口进行监听
[root@localhost ~]# tcpdump -i eth0
# 指定监听主机的数据包
[root@localhost ~]# tcpdump -n host 172.16.1.26
# 监听指定端口的数据包
[root@localhost ~]# tcpdump -nn port 22
常见的协议关键字有ip、arp、icmp、tcp、udp等类型。
# 使用tcpdump对tcp数据进行抓包
[root@localhost ~]# tcpdump tcp dst port 80 or src 172.16.1.26 -i eth0 -n
以下是TCP状态机制:
![图片[3]- Linux常用命令之网络管理- 如烟笔记](https://blog.iosru.com/wp-content/uploads/2024/12/20241201205201398-b9185a87532e7f76f36872a4ab27315f.webp)
本篇Linux常用命令分析完结!
本站收集的资源仅供内部学习研究软件设计思想和原理使用,学习研究后请自觉删除,请勿传播,因未及时删除所造成的任何后果责任自负。
如果用于其他用途,请购买正版支持作者,谢谢!若您认为「RuYan」发布的内容若侵犯到您的权益,请联系站长邮箱: iosruyan@163.com 进行删除处理。
本站资源大多存储在云盘,如发现链接失效,请联系我们,我们会第一时间更新。
暂无评论内容