linux常用的网络命令实战分享

文章目录

  • ifup/down命令
  • ifconfig命令
    • 观察网络接口信息
    • 修改接口参数
    • 增加虚拟网络接口
  • route命令
    • 查看路由表
    • 增加路由表规则
    • 删除路由表规则
  • IP 命令
    • ip link
    • ip addr
    • 设定路由 ip route
  • arp 命令

在实际研发运维工作中常常会涉及到网关相关的操作和知识,这里对linux下常用的网关配置相关命令进行总结分享。

一般会用到如下命令

· ifconfig :查询、设定网络卡与 IP 网域等相关参数;
· ifup, ifdown:这两个档案是 script,透过更简单的方式来启动网络接口;
· route :查询、设定路由表 (route table)
· ip :复合式的指令, 可以直接修改上述提到的功能;

ifup/down命令

这两支程序其实是 script 而已,他会直接到/etc/sysconfig/network-scripts 目录下搜寻对应的配置文件,例如 ifup eth0
时,他会找出 ifcfg-eth0 这个档案的内容,然后来加以设定
如果以 ifconfig eth0 … 来设定或者是修改了网络接口后, 那就无法再以ifdown eth0 的方式来关闭了!因为 ifdown 会分析比对目前的网络参数与ifcfg-eth0 是否相符,不符的话,就会放弃该次动作。因此,使用ifconfig 修改完毕后,应该要以 ifconfig eth0 down 才能够关闭该接口喔。

[root@www ~]# ifup {interface}
[root@www ~]# ifdown {interface}
[root@www ~]# ifup ens33

ifdown lo 禁用lo接口

[root@localhost ~]# ifdown lo
[root@localhost ~]# ifconfig lo
lo: flags=8<LOOPBACK>  mtu 6000
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1559  bytes 157696 (154.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1559  bytes 157696 (154.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@localhost ~]# ifup lo
[root@localhost ~]# ifconfig lo
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 6000
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1559  bytes 157696 (154.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1559  bytes 157696 (154.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0 

ifconfig命令

ifconfig 可以直接手动给予某个接口 IP 或调整其网络参数,包括 IP 参数以及 MTU 等等都可以修改

语法如下:

[root@www ~]# ifconfig {interface} {up|down} <== 观察与启动停止接口
[root@www ~]# ifconfig interface {options} <== 设定与修改接口
选项与参数:
interface:网络卡接口代号,包括 eth0, eth1, ppp0 等等
options :可以接的参数,包括如下:
up, down :启动 (up) 或关闭 (down) 该网络接口(不涉及任何参数)
mtu :可以设定不同的 MTU 数值,例如 mtu 1500 (单位为 byte)
netmask :就是子屏蔽网络;
broadcast:就是广播地址啊!

ifconfig 用于实时修改网络参数,执行 systemctl restart network后配置会失效。

观察网络接口信息

一般来说,直接输入 ifconfig 就会列出目前已经被启动的卡,不论这个卡是否有给予IP,都会被显示出来。而如果是输入 fconfig XXX(接口名:如ens33),则仅会秀出这张接口的相关数据

[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.126.11  netmask 255.255.255.0  broadcast 192.168.126.255
        inet6 fe80::afb9:dd2b:a39b:120a  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:df:0a:1d  txqueuelen 1000  (Ethernet)
        RX packets 505335  bytes 127387681 (121.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 541208  bytes 46638277 (44.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 992  bytes 109824 (107.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 992  bytes 109824 (107.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        
 [root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.126.11  netmask 255.255.255.0  broadcast 192.168.126.255
        inet6 fe80::afb9:dd2b:a39b:120a  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:df:0a:1d  txqueuelen 1000  (Ethernet)
        RX packets 505385  bytes 127391417 (121.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 541229  bytes 46641471 (44.4 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

修改接口参数

[root@localhost ~]# ifconfig ens33 192.168.126.201

再次查看接口信息 接口ip 已经由 192.168.126.11 变更为 192.168.126.201
如果不加任何其他参数,则系统会依照该 IP 所在的 class 范围,自动的计算出netmask 以及 network, broadcast 等 IP 参数
在这里插入图片描述
修改后 改服务器无法ping通,如下(后续找一下原因)

[root@localhost html]# ping 192.168.126.201
PING 192.168.126.201 (192.168.126.201) 56(84) bytes of data.
From 192.168.126.12 icmp_seq=1 Destination Host Unreachable

如果想要同时修改其他参数

ifconfig eth0 192.168.126.11  netmask 255.255.255.0 mtu 8000

再次查看 接口相关信息已经变动

在这里插入图片描述
ip改回来了,但是这个虚拟机还是ping不通。重启网络服务后就正常了

增加虚拟网络接口

在网卡ens33上,仿真一个网络接 ens33:0,这样一张网卡就可以有多个IP了

[root@localhost ~]#  ifconfig  ens33:0 192.168.126.101

[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.126.11  netmask 255.255.255.0  broadcast 192.168.126.255
        inet6 fe80::afb9:dd2b:a39b:120a  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:df:0a:1d  txqueuelen 1000  (Ethernet)
        RX packets 509625  bytes 127660541 (121.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 541424  bytes 46664366 (44.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.126.101  netmask 255.255.255.0  broadcast 192.168.126.255
        ether 00:0c:29:df:0a:1d  txqueuelen 1000  (Ethernet)

可以通过两个ip访问该服务器了

可以禁用虚拟接口,不影响原接口

[root@localhost ~]# ifconfig ens33:0 down
[root@localhost ~]# ifcondfig
-bash: ifcondfig: command not found
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.126.11  netmask 255.255.255.0  broadcast 192.168.126.255
        inet6 fe80::afb9:dd2b:a39b:120a  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:df:0a:1d  txqueuelen 1000  (Ethernet)
        RX packets 509737  bytes 127668760 (121.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 541465  bytes 46669736 (44.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

route命令

route命令来实现路由操作

[root@www ~]# route [-nee]   # 查看路由表
[root@www ~]# route add [-net|-host] [网域或主机] netmask [mask][gw|dev] # 添加路由条目
[root@www ~]# route del [-net|-host] [网域或主机] netmask [mask][gw|dev]  # 删除路由条目

查看路由表的参数:
-n :不要使用通讯协议或主机名,直接使用 IP 或 port number;
-ee :使用更详细的信息来显示
增加 (add) 与删除 (del) 路由的相关参数:
-net :表示后面接的路由为一个网域;
-host :表示后面接的为连接到单部主机的路由;
netmask :与网域有关,可以设定 netmask 决定网域的大小;
gw :gateway 的简写,后续接的是 IP 的数值喔,与 dev 不同;
net.qiang@hotmail.com
dev :如果只是要指定由那一块网络卡联机出去,则使用这个设定,
后面接 eth0 等

查看路由表

[root@localhost ~]# route -nee
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface    MSS   Window irtt
0.0.0.0         192.168.126.2   0.0.0.0         UG    100    0        0 ens33    0     0      0
192.168.126.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33    0     0      0
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.126.2   0.0.0.0         UG    100    0        0 ens33
192.168.126.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

route 与 route -n 的输出对比:加 -n 参数的主要是显示出 IP ,只使用 route 的话,显示的是『主机名』。也就是说,预设的情况下, route 会自动找出该 IP 的主机名,如果找不到 就显示的钝钝的(有点小慢),所以,一般直接使用 route -n
还可以使用 -4 -6 参数分别查看ipv4 ipv6 路由 内容

输出内容字段说明如下:
**Destination, Genmask:**这两个玩意儿就是分别是 network 与 netmask啦!
**Gateway:**网关 ,访问上述Destination时通过哪个 gateway 连接出去,如果显示 0.0.0.0表示该路由是直接由本机传送,亦即可以透过局域网络的 MAC 直接传讯;如果有显示 IP 的话,表示该路由需要经过路由器 (通讯闸) 的帮忙才能够传送出去。
**Flags:**总共有多个旗标,代表的意义如下:
U (route is up):该路由是启动的;
H (target is a host):目标是一部主机 (IP) 而非网域;
G (use gateway):需要透过外部的主机 (gateway) 来转递封包;
R (reinstate route for dynamic routing):使用动态路由时,恢复路由信息的旗标;
D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为动态路由
M (modified from routing daemon or redirect):路由已经被修改了;
! (reject route):这个路由将不会被接受(用来抵挡不安全的网域!)
Iface: 这个路由传递封包的接口。

路由表一般由小网域逐渐到大网域 最后则是预设路由(0.0.0.0/0.0.0.0)。 然后当我们要判断某个网络封包应该如何传送的时
候,该封包会经由这个路由的过程来判断。当你重复设定多个同样的路由时, 例如在你的主机上的两张网络卡设定为相
同网域的 IP 时,也是按照上述顺序来排列与传送的。不论封包是由那个接口 所接收,都会由路由表中第一条策略来处理

增加路由表规则

[root@localhost ~]# route add default gw 192.168.126.1
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.126.1   0.0.0.0         UG    0      0        0 ens33
0.0.0.0         192.168.126.2   0.0.0.0         UG    100    0        0 ens33
192.168.126.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

[root@localhost ~]# route add -net 192.168.254.0 netmask 255.255.254.0  dev ens33
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.126.1   0.0.0.0         UG    0      0        0 ens33
0.0.0.0         192.168.126.2   0.0.0.0         UG    100    0        0 ens33
192.168.126.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.254.0   0.0.0.0         255.255.254.0   U     0      0        0 ens33
[root@localhost ~]# route add -net 192.168.126.0 netmask 255.255.254.0  dev ens33
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.126.1   0.0.0.0         UG    0      0        0 ens33
0.0.0.0         192.168.126.2   0.0.0.0         UG    100    0        0 ens33
192.168.126.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.126.0   0.0.0.0         255.255.254.0   U     0      0        0 ens33
192.168.252.0   0.0.0.0         255.255.252.0   U     0      0        0 ens33
192.168.254.0   0.0.0.0         255.255.254.0   U     0      0        0 ens33

[root@localhost ~]# route add -net 192.168.254.0 netmask 255.255.254.0  gw 192.168.126.10  ens33
[root@localhost ~]# route -n 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.126.2   0.0.0.0         UG    100    0        0 ens33
192.168.4.0     0.0.0.0         255.255.252.0   U     0      0        0 ens33
192.168.126.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
192.168.254.0   192.168.126.10  255.255.254.0   UG    0      0        0 ens33
[root@localhost ~]# 

当添加记录时,很容易提示 如下错误,解决方式是,
Destination IP必须和掩码相对应,即IP:8.8.8.8 & 255.255.255.0(逻辑与操作) 才是真正的DestinationIP,
直白一些 就是 目标IP 二进制最后一位1一定要对应掩码最后一位也是1

如目标IP: 192.168.126.0 掩码:255.255.254.0
192.168.126.0二进制: 1100 0000 -1010 1000-0111 1110-0000 0000
255.255.254.0二进制:1111 1111 - 1111 1111 -1111 1110-0000 0000
最后一位是对应的所以这一对不会报错,如果IP变为 192.168.126.1,
192.168.126.1二进制: 1100 0000 -1010 1000-0111 1110-0000 0001
255.255.254.0二进制:1111 1111 - 1111 1111 -1111 1110-0000 0000
最后一位不对应所以就会报错

[root@localhost ~]# route add -net 192.168.253.0 netmask 255.255.254.0  dev     ens33
route: netmask doesn't match route address

删除路由表规则

示例如下:

[root@localhost ~]# route del -net 192.168.254.0 netmask 255.255.254.0
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.126.1   0.0.0.0         UG    0      0        0 ens33
0.0.0.0         192.168.126.2   0.0.0.0         UG    100    0        0 ens33
192.168.4.0     0.0.0.0         255.255.252.0   U     0      0        0 ens33
192.168.126.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
[root@localhost ~]# route del -net 0.0.0.0 gw 192.168.126.1
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.126.2   0.0.0.0         UG    100    0        0 ens33
192.168.4.0     0.0.0.0         255.255.252.0   U     0      0        0 ens33
192.168.126.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

IP 命令

ip 指令基本上整合了 ifconfig 与 route 这两个指令, 甚至可以实现更多的功能。ifup 命令就是基于IP命令实现的。

[root@localhost network-scripts]# ip
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

ip link 可以设定与装置 (device) 有关的相关参数,包括 MTU 以及该网络接口的 MAC 等等,当然也可以启动 (up) 或关闭 (down) 某个网络接口。

[root@www ~]# ip [-s] link show <== 单纯的查阅该装置相关的信息
[root@www ~]# ip link set [device] [动作与参数]

show:仅显示出这个装置的相关内容,如果加上 -s 会显示更多统计数据;
set :可以开始设定项目, device 指的是 ens33, eth1 等接口名称;
动作与参数:包括有底下的这些动作:
up|down :启动 (up) 或关闭 (down) 某个接口,其他参数使用默认的以太网络;
address :如果这个装置可以更改 MAC 的话,用这个参数修改!
name :给予这个装置一个特殊的名字;
mtu :就是最大传输单元啊!

查看显示出所有的网卡信息

[root@localhost network-scripts]# ip  link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:df:0a:1d brd ff:ff:ff:ff:ff:ff
    
[root@localhost network-scripts]# ip -s -h  link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast   
    157k       1.55k    0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    157k       1.55k    0       0       0       0       
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:df:0a:1d brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    130M       543k     0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    47.1M      545k     0       0       0       0    

启动、关闭与设定接口的信息

关闭ens33接口
ip link set ens33 down
在这里插入图片描述
启动 ens33接口 ip link set ens33 up
在这里插入图片描述

更改lo 接口mtu值为6000

[root@localhost network-scripts]#  ip link set lo mtu 6000
[root@localhost network-scripts]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 6000 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:df:0a:1d brd ff:ff:ff:ff:ff:ff

修改lo 网卡名称为test

[root@localhost network-scripts]# ip link set lo down   先关闭网卡
[root@localhost network-scripts]# ip link show
1: lo: <LOOPBACK> mtu 6000 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:df:0a:1d brd ff:ff:ff:ff:ff:ff
[root@localhost network-scripts]# ip link set lo name test
[root@localhost network-scripts]# ip link show
1: test: <LOOPBACK> mtu 6000 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:df:0a:1d brd ff:ff:ff:ff:ff:ff
[root@localhost network-scripts]# ip link set test up
[root@localhost network-scripts]# ip link show
1: test: <LOOPBACK,UP,LOWER_UP> mtu 6000 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:df:0a:1d brd ff:ff:ff:ff:ff:ff

修改mac地址

[root@localhost ~]# ip link show lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 6000 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
[root@localhost ~]# ip link set lo address aa:aa:aa:aa:aa:aa
[root@localhost ~]# ip link show lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 6000 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback aa:aa:aa:aa:aa:aa brd 00:00:00:00:00:00

ip addr

如果说ip link 对应OSI七层模型中 第二层相关设定的话,那么ip addr 就是针对 OSI七层模型中第三层的设定。主要是在设定
与 IP 有关的各项参数,包括 netmask, broadcast 等等

[root@www ~]# ip address show <==就是查阅 IP 参数啊!
[root@www ~]# ip address [add|del] [IP 参数] [dev 装置名] [相关参数]
选项与参数:
show :单纯的显示出接口的 IP 信息啊;
add|del :进行相关参数的增加 (add) 或删除 (del) 设定,主要有:
IP 参数:主要就是网域的设定,例如 192.168.100.100/24 之类的设定;
dev :这个 IP 参数所要设定的接口,例如 eth0, eth1 等等;
相关参数:主要有底下这些:
broadcast:设定广播地址,如果设定值是 + 表示『让系统自动计算』
label :亦即是这个装置的别名,例如 eth0:0 就是了!
scope :这个接口的领域,通常是这几个大类:
global :允许来自所有来源的联机;
site :仅支持 IPv6 ,仅允许本主机的联机;
link :仅允许本装置自我联机;
host :仅允许本主机内部的联机;
一般使用 global

显示所有的ip参数

[root@localhost ~]# ip address show  都可以
[root@localhost ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 6000 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback aa:aa:aa:aa:aa:aa brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:df:0a:1d brd ff:ff:ff:ff:ff:ff
    inet 192.168.126.11/24 brd 192.168.126.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::afb9:dd2b:a39b:120a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

新增一个网卡 ens33:test0

[root@localhost ~]# ip address add 192.168.126.100/24 broadcast +  dev ens33 label ens33:test0
[root@localhost ~]# ip address add 192.168.126.101/24 broadcast +  dev ens33 label ens33
[root@localhost ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 6000 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback aa:aa:aa:aa:aa:aa brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:df:0a:1d brd ff:ff:ff:ff:ff:ff
    inet 192.168.126.11/24 brd 192.168.126.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.126.100/24 brd 192.168.126.255 scope global secondary ens33:test0
       valid_lft forever preferred_lft forever
    inet 192.168.126.101/24 brd 192.168.126.255 scope global secondary ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::afb9:dd2b:a39b:120a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@localhost ~]# ip address add 192.168.126.102/24 broadcast   dev ens33 label ens33
Error: inet address is expected rather than "dev".
[root@localhost ~]# ip address add 192.168.126.102/24 broadcast +   dev ens33 label ens33
[root@localhost ~]# ip address add 192.168.126.103/24    dev ens33 label ens33
[root@localhost ~]# 

broadcast + 也可以写成 broadcast xx.xx.xx.xx

删除新建的虚拟接口IP

[root@localhost ~]# ip addr del 192.168.126.100/24 dev ens33
RTNETLINK answers: Cannot assign requested address
[root@localhost ~]# ip address  del 192.168.126.102/24 dev ens33
[root@localhost ~]# ip address  del 192.168.126.103/24 dev ens33
[root@localhost ~]# ip addr 
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:df:0a:1d brd ff:ff:ff:ff:ff:ff
    inet 192.168.126.11/24 brd 192.168.126.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.126.101/24 brd 192.168.126.255 scope global secondary ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::afb9:dd2b:a39b:120a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

设定路由 ip route

ip route 的功能几乎与 route这个指令差不多,但是,他还可以进行额外的参数设计,例如 MTU

[root@www ~]# ip route show <==单纯的显示出路由的设定而已
[root@www ~]# ip route [add|del] [IP 或网域] [via gateway] [dev 装置]
选项与参数:
show :单纯的显示出路由表,也可以使用 list ;
add|del :增加 (add) 或删除 (del) 路由的意思。
IP 或网域:可使用 192.168.50.0/24 之类的网域或者是单纯的 IP ;
via :从那个 gateway 出去,不一定需要;
dev :由那个装置连出去,这就需要了!
mtu :可以额外的设定 MTU 的数值喔!

查看路由信息

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.126.2   0.0.0.0         UG    100    0        0 ens33
192.168.126.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33
[root@localhost ~]# ip route show
default via 192.168.126.2 dev ens33 proto static metric 100 
192.168.126.0/24 dev ens33 proto kernel scope link src 192.168.126.11 metric 100 

说明
proto:此路由的路由协议,主要有 redirect, kernel, boot, static, ra等, 其中 kernel 指的是直接由核心判断自动设定。
scope:路由的范围,主要是 link ,亦即是与本装置有关的直接联机

添加路由信息

添加 该IP 对应的路由 通过设备直连

[root@localhost ~]# ip route add 192.168.126.200/31 dev  ens33
[root@localhost ~]# ip route
default via 192.168.126.2 dev ens33 proto static metric 100 
192.168.126.0/24 dev ens33 proto kernel scope link src 192.168.126.11 metric 100 
192.168.126.200/31 dev ens33 scope link 

添加10.238.126.0/23 该网段 都通过网关 192.168.126.2 访问

[root@localhost ~]# ip route add 10.238.126.0/23 via 192.168.126.2 dev ens33
[root@localhost ~]# ip route
default via 192.168.126.2 dev ens33 proto static metric 100 
10.238.126.0/23 via 192.168.126.2 dev ens33 
192.168.126.0/24 dev ens33 proto kernel scope link src 192.168.126.11 metric 100 
192.168.126.200/31 dev ens33 scope link 

同route命令相同,添加路由时 ip 和子网掩码必须匹配,具体规则参照上述 route命令部分

增加默认路由
如下看到了两条默认路由 ,其实保留一条就行

[root@localhost ~]# ip route add default via 192.168.126.2 dev ens33
[root@localhost ~]# ip route
default via 192.168.126.2 dev ens33 
default via 192.168.126.2 dev ens33 proto static metric 100 
10.238.126.0/23 via 192.168.126.2 dev ens33 
192.168.126.0/24 dev ens33 proto kernel scope link src 192.168.126.11 metric 100 
192.168.126.200/31 dev ens33 scope link 

删除路由

[root@localhost ~]# ip route del 10.238.126.0/23
[root@localhost ~]# ip route del 192.168.126.200/31
[root@localhost ~]# ip route del default via 192.168.126.2
[root@localhost ~]# ip route
default via 192.168.126.2 dev ens33 proto static metric 100 
192.168.126.0/24 dev ens33 proto kernel scope link src 192.168.126.11 metric 100 

arp 命令

可以查看本机的缓存的mac地址和ip对应关系

[root@localhost ~]# arp 
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.126.254          ether   00:50:56:ef:d2:80   C                     ens33
192.168.126.1            ether   00:50:56:c0:00:08   C                     ens33
gateway                  ether   00:50:56:e9:cc:e8   C                     ens33

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/409505.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(详细使用指南)Linux下交叉编译带ffmpeg的opencv并移植到RK3588等ARM端

一 问题背景 瑞芯微RK3588等嵌入式板作为边缘端设备为算法模型的部署提供了便利&#xff0c;目前很多分类或好检测模型针对边缘端做了优化或量化&#xff0c;使得在边缘端也能达到实时稳定的识别和检测效果。 但嵌入式设备普遍的flash emmc不大&#xff0c;一般在32G左…

【数据结构与算法】(20)高级数据结构与算法设计之 Greedy Algorithm 贪心算法 代码示例与详细讲解

目录 4.2 Greedy Algorithm1) 贪心例子DijkstraPrimKruskal 2) 零钱兑换问题有几个解&#xff08;零钱兑换 II&#xff09;Leetcode 518最优解&#xff08;零钱兑换&#xff09;- 穷举法 Leetcode 322最优解&#xff08;零钱兑换&#xff09;- 贪心法 Leetcode 322 3) Huffman …

9.5K Star,又一款超棒开源轻量自动化运维平台

Hi&#xff0c;骚年&#xff0c;我是大 G&#xff0c;公众号「GitHub指北」会推荐 GitHub 上有趣有用的项目&#xff0c;一分钟 get 一个优秀的开源项目&#xff0c;挖掘开源的价值&#xff0c;欢迎关注。 一个好的运维平台就变得非常重要了&#xff0c;可以节省大量的人力和物…

【HarmonyOS】低代码开发—使用低代码开发服务卡片

DevEco Studio还支持使用低代码开发功能开发服务卡片&#xff0c;目前只支持JS语言&#xff0c;且compileSdkVersion必须为7或以上。 下面以创建一个新的服务卡片为例进行说明。 1.打开一个工程&#xff0c;创建服务卡片&#xff0c;创建方法包括如下两种方式&#xff1a; 选…

SpringBoot自带的tomcat的最大连接数和最大的并发数

先说结果&#xff1a;springboot自带的tomcat的最大并发数是200&#xff0c; 最大连接数是&#xff1a;max-connectionsaccept-count的值 再说一下和连接数相关的几个配置&#xff1a; 以下都是默认值&#xff1a; server.tomcat.threads.min-spare10 server.tomcat.threa…

老隋蓝海项目temu跨境电商好不好做?

近年来&#xff0c;跨境电商成为我国对外贸易的新亮点&#xff0c;其中Temu作为拼多多旗下的新兴跨境电商平台&#xff0c;吸引了众多国内卖家参与。老隋作为行业内的知名人士&#xff0c;他对Temu跨境电商项目的评价备受关注。本文将分析老隋对Temu跨境电商的看法&#xff0c;…

RDMA内核态函数ib_post_send()源码分析

最近调用linux内核下RDMA的Verb API ib_post_send()出现了问题&#xff0c;因此从源码分析一下这个函数的调用过程。 我使用的内核版本为5.15.0-94 这是函数ib_post_send的头文件定义&#xff0c;这个函数的意义是向发送队列提交发送请求&#xff0c;他会调用qp对应设备的post_…

Pyglet综合应用|推箱子游戏地图编辑器之图片跟随鼠标

目录 推箱子游戏 升级一&#xff1a;鼠标操作 升级二&#xff1a;增加网格 升级三&#xff1a;模拟按钮 综合应用&#xff1a;地图编辑器 关卡地图洗数 推箱子游戏 本篇为之前写的博客《Pyglet综合应用&#xff5c;推箱子游戏之关卡图片载入内存》的续篇&#xff0c;内容…

项目:shell实现多级菜单脚本编写

目录 1. 提示 2. 演示效果 2.1. 一级菜单 2.2. 二级菜单 2.3. 执行操作 3. 参考代码 1. 提示 本脚本主要实现多级菜单效果&#xff0c;并没有安装LAMP、LNMP环境&#xff0c;如果要用在实际生成环境中部署LNMP、LAMP环境&#xff0c;只需要简单修改一下就可以了。 2. 演…

ASCII编码的影响与作用:数字化时代的不可或缺之物

title: ASCII编码的影响与作用&#xff1a;数字化时代的不可或缺之物 date: 2024/2/25 16:03:37 updated: 2024/2/25 16:03:37 tags: ASCII起源标准化字符文本处理基础编程语言基石数据库存储标准跨平台兼容多语言编码基础 一、ASCII编码的起源 ASCII&#xff08;American St…

matlab 三质量-弹簧系统受激振力

1、内容简介 略 44-可以交流、咨询、答疑 建立系统运动方程&#xff0c;研究固有频率和对应主振型 2、内容说明 略 三质量&#xff0d;弹簧系统受激振力&#xff0c;并不考虑各自的阻尼。建立系统运动方程。 解&#xff1a;由于阻尼对固有频率没有影响&#xff0c;故本文不…

浅谈数据分析工具在智慧城市中的作用

随着城市化、技术进步和人口不断增长&#xff0c;智慧城市已成为当今世界主要技术发展之一。 智慧城市设备依靠描述模型对城市环境产生的大量数据进行数据分析。 在这种城市景观中&#xff0c;智慧城市是技术和可持续的城市地区&#xff0c;利用信息和通信技术(ICT)来改善城市…

异步http和同步http原理和差异

开发服务器端程序时&#xff0c;一种常见的需求是&#xff0c;通过向另一个http服务器发送请求&#xff0c;获得数据。最常规的作法是使用同步http请求的方式&#xff0c;过程如下 这种方式简单好用&#xff0c;但是在高并发场景下有缺陷。在单线程环境下&#xff0c;程序发送h…

linux调用so库之一

任务&#xff1a;linux系统&#xff0c;已经生成so库&#xff0c;需要调用。 参考文献&#xff1a; Linux 调用动态库&#xff08;.SO文件&#xff09;总结_linux deviceio.so-CSDN博客 可以看他的第一部分&#xff0c;即显式调用。但是会报错&#xff0c;我的版本是64位的U…

【SpringBoot】Spring常用注解总结

目录 ⭐spring springmvc和springboot的区别 Autowired 和Resource的区别和联系 1. SpringBootApplication 2. Spring Bean 相关 2.1. Autowired 2.2. Component,Repository,Service, Controller 2.3. RestController 2.4. Scope 2.5. Configuration 3. 处理常见的 HT…

vue3(vite)+electron打包踩坑记录(1)

vue3(vite)electron打包踩坑记录 - 打包vue 第一步 编译vue 使用vite构建vue&#xff0c;package.json如下 {"name": "central-manager","private": true,"version": "0.0.0","type": "commonjs",&q…

Autosar 开篇

背景 AUTOSAR&#xff08;Automotive Open System Architecture&#xff09;是一个跨汽车行业的标准化软件架构&#xff0c;旨在促进汽车电子系统的开发和部署。下面是AUTOSAR发展的一些关键点&#xff1a; 起源和背景&#xff1a; AUTOSAR最初于2003年由汽车制造商宝马、戴姆…

x(x-1)的含义

一.二进制中x&(x-1)的含义 把x的二进制最后一个1变为0 找一下规律&#xff1a; 二.应用 我们可以利用这个特性&#xff0c;来数这个数字中有多少数字1 算法分析&#xff1a;放入一个计数器&#xff0c;每循环一次&#xff0c;就把这个数字的最后一个1变为0&#xff0c;计数…

【JavaEE】 spring boot的配置文件详解

spring boot的配置文件详解 文章目录 spring boot的配置文件详解常用配置spring boot的配置文件1. properties 文件2. YAML 文件3. 多环境配置4. 配置文件优先级5. 配置属性注入特殊说明 properties配置文件基本语法 例子peoperties文件的缺点 YML配置文件YML使用yml 配置不同数…

阿里云-系统盘-磁盘扩容

阿里云系统磁盘扩容 之前是测试环境磁盘用的默认的有 40G&#xff0c;后面升级到正式的 磁盘怕不够用打算升级到 100G&#xff0c; 系统镜像&#xff1a; Alibaba Cloud Linux 3.2104 LTS 64 位 磁盘 ESSD 40G 升级步骤&#xff1a; 扩容与创建快照 在阿里云后台首先去扩容…