网络基础命令大全

ifconfig命令 会被ip代替

该命令来自于net-tools包,建议使用 ip 代替

[root@ubuntu ~]# dpkg -S /sbin/ifconfig 
net-tools: /sbin/ifconfig

#常用选项
-a 								#显示所有
-s 								#以短格式显示
-v 								#显示详细错误信息

常用子命令
add 							#给设备添加IPV6地址
del 							#删除IPV6地址
broadcast|-broadcast 			#给设备添加广播地址|删除广播地址
pointtopoint|-pointtopoint 		#设定点对点通讯协议
netmask 						#设定子网掩码
dstaddr 						#设定目标地址
tunnel 							#建立隧道
hw 								#指定硬件类型
mtu 							#指定设备最大传输单元(单位:字节)
arp|-arp 						#指定设备是否支持ARP协议
allmulti|-allmulti 				#指定设备是否支持多播
multicast 						#指定组播
promisc|-promisc 				#指定设备支持promiscuous模式
up 								#启用设备
down 							#禁用设备
[root@ubuntu ~]# ifconfig -s eth0
Iface     MTU   RX-OK RX-ERR RX-DRP RX-OVR   TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0      1500      312      0      0 0           269      0      0      0 BMRU
#字段说明
Iface     			#网络设备
MTU   				#该接口设备最大传输单元,单位是字节,就是一个数据包不能超1500字节
RX-OK 				#收包时成功接收的数据包数量
RX-ERR 				#收包时出错的数据包的数量
RX-DRP 				#收包时丢弃的数据包的数量
RX-OVR   			#收包时由于过速(接收设备收不过来)而丢弃的数据包数量
TX-OK 				#发包时成功发送的包的数量
TX-ERR 				#发包时出错的数据包的数量
TX-DRP 				#发包时被丢弃的数据包的数量
TX-OVR 				#发包时由于过速而丢弃的数据包的数量
Flg 				#标志位

#Flg字段说明
B 					#该设备已经设置了广播地址
L 					#该设备是一个回环设备
M 					#该设备能接收所有经过它的数据包,而不论其目的地址是否是它本身(混乱模式)
N 					#该设备不能被追踪
O 					#在该设备上禁用ARP
P 					#这是一个点到点链接
R 					#当前设备正在运行
U 					#当前设备处于活动状态

route 命令 该命令来自于net-tools包,建议使用 ip 代替

查看路由表,以IP格式显示

[root@ubuntu ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref   Use Iface
0.0.0.0         10.0.0.2        0.0.0.0         UG    100    0        0 eth0
10.0.0.0        0.0.0.0         255.255.255.0   U     100    0        0 eth0
10.0.0.2        0.0.0.0         255.255.255.255 UH    100    0        0 eth0

路由表个字段:

字段

说明

Destination

0.0.0.0 默认路由

Gateway

网关

Genmask

子网掩码

Flags

标记位 U(启用)|H(主机)|G(使用网关)|R(动态路由)|D(动态安装)|M(动态修改)|A(addrconf)|C(缓存)|!(拒绝)

Metric

开销cost,值越小,路由记录优先级最高

Ref

引用此路由的次数

Use

使用次数

Iface

接口,到达对应网络,应该从当前主机那个网卡发送

 

添加路由:

#添加路由:route add [-net|-host|default] target [netmask Nm] [gw GW] [[dev] If]
#目标:192.168.1.3 网关:172.16.0.1
route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
#目标:192.168.0.0 网关:172.16.0.1
route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0

#默认路由,网关:172.16.0.1
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
route add -net 0.0.0.0/0 gw 172.16.0.1
route add default gw 172.16.0.1

删除路由:

#删除路由:route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
#目标:192.168.1.3 网关:172.16.0.1
route del -host 192.168.1.3
#目标:192.168.0.0 网关:172.16.0.1
route del -net 192.168.0.0 netmask 255.255.255.0

ip route 命令实现:

#添加
ip route add 20.0.0.0/24 dev eth0 via 10.0.0.123
#查看
ip route
ip route show
#删除
ip route del 20.0.0.0/24 dev eth0 via 10.0.0.123

用主机实现软路由:

1.  主机1配置桥接,NAT两块网卡,充当路由
2.  主机2配置仅主机,NAT两块网卡,充当路由
3.  主机3配置一块桥接网卡,路由网关指向主机1桥接网卡上配置的IP地址
4.  主机4配置一块仅主机网卡,路由网关指向主机2仅主机网卡上配置的IP地址
5.  主机1和主机3的桥接网卡为一个网段
6.  主机1和主机2的NAT网卡为一个网段
7.  主机2和主机4的仅主机网卡为一个网段
8.  通过上述配置,让主机3和主机4之间,经由主机1和主机2中转,实现连通

具体实现过程:

#桥接网卡
[root@rocky86 network-scripts]# vim ifcfg-ens192
DEVICE=ens192
NAME=con-ens192
IPADDR=172.16.1.254
PREFIX=16
#NAT网卡
[root@rocky86 network-scripts]# vim ifcfg-ens160
DEVICE=ens160
NAME=con-ens160
IPADDR=10.0.0.8
PREFIX=8
#启用
[root@rocky86 network-scripts]# nmcli conn reload;nmcli con up con-ens160;nmcli con up con-ens192;

#查看
[root@rocky86 network-scripts]# ip a show ens160
[root@rocky86 network-scripts]# ip a show ens192

#添加路由      
[root@rocky86 network-scripts]# route add -net 10.0.0.0/8 dev ens160
[root@rocky86 network-scripts]# route add -net 172.16.0.0/16 dev ens192
#添加指向 192.168.10.0 网段的网关,其出口设备为本机NAT网卡,网关为主机2上的NAT网卡地址  
[root@rocky86 network-scripts]# route add -net 192.168.10.0/24 gw 10.0.0.88 dev 
ens160
              
[root@rocky86 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref   Use Iface
10.0.0.0        0.0.0.0         255.0.0.0       U     0      0        0 ens160
172.16.0.0      0.0.0.0         255.255.0.0     U     0      0        0 ens192
192.168.10.0    10.0.0.88       255.255.255.0   UG    0      0        0 ens160   
    
#开启路由转发
[root@rocky86 network-scripts]# echo 1 > /proc/sys/net/ipv4/ip_forward   (很重要)

配置主机2:

#NAT网卡
[root@rocky86 network-scripts]# vim ifcfg-eth0
DEVICE=eth0
NAME=con-eth0
IPADDR=10.0.0.88
PREFIX=8

#仅主机网卡
[root@rocky86 network-scripts]# vim ifcfg-eth1
DEVICE=eth1
NAME=con-eth1
IPADDR=192.168.10.254
PREFIX=24

#启用
[root@rocky86 network-scripts]# nmcli con reload;nmcli con up con-eth0;nmcli con 
up con-eth1;
#查看
[root@rocky86 network-scripts]# ip a show eth0
[root@rocky86 network-scripts]# ip a show eth1

      
#添加路由表
[root@rocky86 network-scripts]# route add -net 10.0.0.0/8 dev eth0
[root@rocky86 network-scripts]# route add -net 192.168.10.0/24 dev eth1
#添加指向 172.16.0.0 网段的网关,其出口设备为本机NAT网卡,网关为主机1上的NAT网卡地址
[root@rocky86 network-scripts]# route add -net 172.16.0.0/16 gw 10.0.0.8 dev eth0

[root@rocky86 network-scripts]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref   Use Iface
10.0.0.0        0.0.0.0         255.0.0.0       U     0      0        0 eth0
172.16.0.0      10.0.0.8        255.255.0.0     UG    0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
#开启路由转发
[root@rocky86 network-scripts]# echo 1 > /proc/sys/net/ipv4/ip_forward

配置主机3:

#桥接网卡
[root@ubuntu22:~]# cd /etc/netplan/
[root@ubuntu22:/etc/netplan]# vim eth0.yaml
network: 
 renderer: networkd
   eth0: 
     addresses: [172.16.1.110/16]
 version: 2
#刷新网卡  
[root@ubuntu22:/etc/netplan]# netplan apply
#添加路由和网关       
[root@ubuntu22:/etc/netplan]# route add -net 172.16.0.0/16 dev eth0 

[root@ubuntu22:/etc/netplan]# route add default gw 172.16.1.254 dev eth0

配置主机4:

#仅主机网卡
[root@ubuntu22:~]# cd /etc/netplan/
[root@ubuntu22:/etc/netplan]# vim ens33.yaml
network: 
 renderer: networkd
   eth0: 
     addresses: [192.168.10.110/24]
 version: 2
#刷新网卡  
[root@ubuntu22:/etc/netplan]# netplan apply
#添加路由和网关       
[root@ubuntu22:/etc/netplan]# route add -net 192.168.10.0/24 dev ens33       
[root@ubuntu22:/etc/netplan]# route add default gw 192.168.10.254 dev ens33

测试验证:

#主机3 ping 主机4
[root@ubuntu22:/etc/netplan]# ping 192.168.10.110
PING 192.168.10.110 (192.168.10.110) 56(84) bytes of data.
64 bytes from 192.168.10.110: icmp_seq=1 ttl=62 time=1.94 ms
64 bytes from 192.168.10.110: icmp_seq=2 ttl=62 time=2.47 ms
64 bytes from 192.168.10.110: icmp_seq=3 ttl=62 time=1.99 ms
......
#主机4 ping 主机3
[root@ubuntu22:/etc/netplan]# ping 172.16.1.110
PING 172.16.1.110 (172.16.1.110) 56(84) bytes of data.
64 bytes from 172.16.1.110: icmp_seq=1 ttl=62 time=2.21 ms
64 bytes from 172.16.1.110: icmp_seq=2 ttl=62 time=2.16 ms
64 bytes from 172.16.1.110: icmp_seq=3 ttl=62 time=1.85 ms

开启路由转发功能:

#查看
cat /proc/sys/net/ipv4/ip_forward
1
#如果此项没开启,则可以以修改配置文件开启
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
#生效
sysctl -p
net.ipv4.ip_forward = 1
#再次查看
sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1

#抓包工具:

tcpdump -i ens160 -nn icmp

#跟踪路由

mtr 192.168.10.254 -n

netstat命令: 来自于net-tools包,建议使用 ss 代替

#常用选项
-A 							#指定网络类型
inet|inet6|unix|ipx|ax25|netrom|econet|ddp|bluetooth
-r|--route 					#显示路由表
-t|--tcp 					#显示tcp端口数据
-u|--udp 					#显示udp端口数据
-w|--raw 					#raw socket相关
-l|--listening 				#仅显示处于监听状态的端口
-a|--all 					#所有数据
-n|--numeric 				#以数字显示IP和端口
-s|--statistice 			#显示统计数据
-p|--program 				#显示相关进程及PID
-x|--unix 					#同 -A unix
-ip|--inet 					#同 -A 
-I|--interfaces=<Iface> 	#指定设备
#常用组合
-tan, -uan, -tnl, -unl

仅显示Listen(监听) 状态的TCP,UDP连接,并显示进程ID和程序

#统计指定网卡数据
[root@Rocky86 ~]# netstat -I=eth0
[root@Rocky86 ~]# netstat -Ieth0

#ubuntu中没有 -I 选项,版本不一样

IP命令 来自于iproute包,可用于代替ifconfig

#主要用来查看链路层信息
[root@Rocky86 ~]# ip link 
[root@Rocky86 ~]# ip address 
[root@Rocky86 ~]# ip route
#禁用网卡
[root@ubuntu ~]# ip link set eth1 down
#改名
[root@ubuntu ~]# ip link set eth1 name eth1-test
#启用
[root@ubuntu ~]# ip link set eth1-test up
#查看
[root@ubuntu ~]# ip link show eth1-test
#查看网卡
[root@ubuntu ~]# ip address show eth1
#向设备添加IP地址
[root@ubuntu ~]# ip address add 10.0.0.110/24 dev eth1
#添加别名
[root@ubuntu ~]# ip address add 10.0.0.114/24 dev eth1 label eth1:114
#删除IP       
[root@ubuntu ~]# ip a del 10.0.0.119/24 dev eth1
#删除别名
[root@ubuntu ~]# ip a del 10.0.0.114/24 dev eth1 label eth1:114

CentOS 中的网卡配置上多个地址-永久有效

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens224
DEVICE=ens224
NAME=ens224
IPADDR=172.16.1.59
PREFIX=24
IPADDR2=172.16.1.49
PREFIX2=24
IPADDR3=172.16.1.39
PREFIX3=24
GATEWAY=172.16.1.254
BOOTPROTO=static
DNS1=8.8.8.8
#重新生效
[root@localhost ~]# nmcli connection reload;nmcli connection up ens224
#如果想删除该配置,则直接删除文件即可
[root@localhost network-scripts]# rm ifcfg-ens224:1

管理路由:

#添加路由
ip route add TARGET via GW dev IFACE src SOURCE_IP
#添加网关:
ip route add default via GW dev IFACE
#删除路由:
ip route del TARGET 
#显示路由:
ip route show|list
#清空路由表:
ip route flush [dev IFACE] [via PREFIX]
#查看路由过程
ip route get IP

ss 命令 来自于iproute包,代替netstat

#常用选项
-n|--numeric       					#不以主机名的格式显示
-r|--resolve       					#以主机名的形式显示IP
-a|--all           					#显示所有数据
-l|--listening     					#仅显示listen状态的连接
-m|--memory       					#显示连接内存使用情况
-p|--processes     					#显示对应的进程
-i|--info         					#显示TCP连接的详细信息
--tipcinfo     						#显示TIPC连接的详细信息
-s|--summary     					#显示统计信息
-4|--ipv4         					#仅显示IPV4连接数据
-6|--ipv6         					#仅显示IPV6连接数据
-0|--packet       					#仅显示PACKET数据
-t|--tcp           					#仅显示tcp数据
-M|--mptcp         					#仅显示mptcp数据
-S|--sctp         					#仅显示sctp数据
-u|--udp           					#仅显示udp数据
-d|--dccp         					#仅显示dccp数据
-w|--raw           					#仅显示原生套接字数据
-x|--unix         					#仅显示unix数据
--tipc         						#仅显示tipc数据
--vsock         					#仅显示vsock数据
-f|--family=FAMILY 					#根据类型过滤
{inet|inet6|link|unix|netlink|vsock|tipc|xdp|help}
-A|--query=QUERY|--socket=QUERY 	#根据连接类型过滤
{all|inet|tcp|mptcp|udp|raw|unix|unix_dgram|unix_stream|unix_seqpacket|packet|ne
tlink|vsock_stream|vsock_dgram|tipc}[,QUERY]
#常用组合
-tan, -uan, -tnl, -unl

网络配置工具 nmcli(rocky)

#常用选项
-a|--ask                        #询问
-c|--colors                 	#输出时是否显示颜色 auto|yes|no
-e|--escape                     #是否转义分隔符 yes|no
-f|--fields     				#指定输出列 <field,...>|all|common
-m|--mode             			#显示模式 tabular|multiline
-o|--overview                   #预览模式输出
-p|--pretty                     #完美格式输出
-t|--terse                      #简洁格式输出
-v|--version                    #显示版本信息
-h|--help 						#显示帮助
#OBJECT
g[eneral]       				#一般状态管理
n[etworking]   					#整体网络管理
r[adio]         				#网络连接切换
c[onnection]   					#网络连接管理
d[evice]       					#网络设备管理
a[gent]         				#网络中的代理
m[onitor]       				#网络中的流量数据监测
#查看网络连接
nmcli con
nmcli con show
#查看active 状态的连接
nmcli con show --active
#显示设备状态
nmcli dev status 
#显示网络接口属性
nmcli dev show eth1
#删除连接
nmcli con del con-eth1
#启用
nmcli con up con-eth1
#禁用
nmcli con down con-eth1
#刷新
nmcli connection reload;
#新增,从dhcp 获取IP地址
nmcli con add con-name con-dhcp type ethernet ifname eth1
#新增网卡配置,自动生成配置文件
[root@Rocky86 network-scripts]# nmcli con add con-name con-eth1 ipv4.addresses 10.0.0.110/24 ipv4.gateway 10.0.0.2 ipv4.dns 114.114.114.114 ipv4.method manual type ethernet ifname eth1
Connection 'con-eth1' (6b2c0337-7fca-4e61-854a-7d7fa916c6b0) successfully added.

#让新配置生效
[root@Rocky86 network-scripts]# nmcli co reload;nmcli con up con-eth1
#删除配置
[root@Rocky86 network-scripts]# nmcli con del eth1

在ubuntu中使用nmcli

[root@ubuntu ~]# apt install network-manager
[root@ubuntu ~]# vim /etc/NetworkManager/NetworkManager.conf
...
[ifupdown]
managed=false 修改为 managed=true
[root@ubuntu ~]# systemctl restart NetworkManager.service
#修改网卡配置
[root@ubuntu ~]# vim /etc/netplan/00-installer-config.yaml 
# This is the network config written by 'subiquity'
network:
 renderer: NetworkManager #添加此行
 ethernets:
   ens33:
     dhcp4: true
 version: 2
[root@ubuntu ~]# netplan apply    #刷新网卡

Ubuntu中配置DNS

[root@ubuntu ~]# cat /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
 renderer: NetworkManager
 ethernets:
   eth0:
      #dhcp4: true
     addresses: [10.0.0.206/24]
     gateway4: 10.0.0.2
     nameservers:
       search: [magedu.com,magedu.org]
       addresses: [223.5.5.5,8.8.8.8]
 version: 2
[root@ubuntu ~]# netplan apply
#查看
[root@ubuntu ~]# resolvectl status
#查看指定设备
[root@ubuntu ~]# resolvectl dns eth0
#尽管设备eth0上的DNS 发生了变化,但此处并没有变化
[root@ubuntu ~]# cat /etc/resolv.conf
#DNS 测试,还是使用本地DNS
[root@ubuntu ~]# dig www.baidu.com

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白了个白i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值