最近访客
暂无访客
暂无访客
详情
评论
问答

Linux常用命令之网络管理

文章最后更新时间:2024-12-01 20:53:04

图片[1]- Linux常用命令之网络管理- 如烟笔记

本篇分享Linux中常用命令。主要分享Linux系统的网络管理相关的命令。

图片[2]- Linux常用命令之网络管理- 如烟笔记

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常用命令之网络管理- 如烟笔记

本篇Linux常用命令分析完结!

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容