赞
踩
目录
a.上线并初始化一台新服务器时
b.在服务器上部署服务时(例如配置LVS)
c.服务器上网络变动(地址修改、路由修改、故障排查)时
ip 查看网络接口相关信息,yum install iproute2
ifconfig 显示网卡信息,yum install net-tools
两者的对比:
linux的ip命令和ifconfig类似,但前者功能更强大,并旨在取代后者。ifconfig是net-tools中已被废弃使用的一个命令,许多年前就已经没有维护了。iproute2套件里提供了许多增强功能的命令,ip命令即是其中之一。
查看所有网卡的接口信息。
在这里a不是选项是对象(OBJECT):address。
- [root@localhost ~]# ip a
- 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
- link/loopback 00:00:00:00:00:00 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 qlen 1000
- link/ether 00:0c:29:d2:ca:67 brd ff:ff:ff:ff:ff:ff
- inet 172.16.230.224/24 brd 172.16.230.255 scope global noprefixroute dynamic ens33
- valid_lft 82828sec preferred_lft 82828sec
- inet6 fe80::4e92:349a:6f19:ff18/64 scope link noprefixroute
- valid_lft forever preferred_lft forever
- 3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
- link/ether 00:0c:29:d2:ca:71 brd ff:ff:ff:ff:ff:ff
- inet 172.16.230.251/24 brd 172.16.230.255 scope global noprefixroute dynamic ens37
- valid_lft 82828sec preferred_lft 82828sec
- inet6 fe80::3eae:dcdd:5ed8:5736/64 scope link noprefixroute
- valid_lft forever preferred_lft forever
需要清楚的点:
1.1.1 lo是linux中的虚拟网络接口
同一台机器的不同进程进行通信时会用到。实现了同一台机器的进程之间的socket通信。虚拟网络接口不需要驱动程序。
1.1.2 link/ether是二层协议
mac地址:00:0c:29:d2:ca:67
广播地址:ff:ff:ff:ff:ff:ff
1.1.3 inet(v4)是三层协议
ip地址:172.16.230.224/24
广播地址:172.16.230.255
1.1.4 inet6是三层协议
ipv6地址:fe80::4e92:349a:6f19:ff18/64
只显示网络接口与ipvx相关的信息
- [root@Tyson Lee ~]# ip -6 a
- 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1
- inet6 ::1/128 scope host
- valid_lft forever preferred_lft forever
- 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
- inet6 fe80::4e92:349a:6f19:ff18/64 scope link noprefixroute
- valid_lft forever preferred_lft forever
- 3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
- inet6 fe80::3eae:dcdd:5ed8:5736/64 scope link noprefixroute
- valid_lft forever preferred_lft forever
- [root@localhost ~]# ip -4 a
- 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
- inet 127.0.0.1/8 scope host lo
- valid_lft forever preferred_lft forever
- 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
- inet 172.16.230.224/24 brd 172.16.230.255 scope global noprefixroute dynamic ens33
- valid_lft 82486sec preferred_lft 82486sec
- 3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
- inet 172.16.230.251/24 brd 172.16.230.255 scope global noprefixroute dynamic ens37
- valid_lft 82486sec preferred_lft 82486sec
显示指定网卡的信息
- [root@localhost ~]# ip a show ens37
- 3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
- link/ether 00:0c:29:d2:ca:71 brd ff:ff:ff:ff:ff:ff
- inet 172.16.230.251/24 brd 172.16.230.255 scope global noprefixroute dynamic ens37
- valid_lft 82450sec preferred_lft 82450sec
- inet6 fe80::3eae:dcdd:5ed8:5736/64 scope link noprefixroute
- valid_lft forever preferred_lft forever
- #更整齐
- [root@localhost ~]# ifconfig ens37
- ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- inet 172.16.230.251 netmask 255.255.255.0 broadcast 172.16.230.255
- inet6 fe80::3eae:dcdd:5ed8:5736 prefixlen 64 scopeid 0x20<link>
- ether 00:0c:29:d2:ca:71 txqueuelen 1000 (Ethernet)
- RX packets 4648 bytes 454522 (443.8 KiB)
- RX errors 0 dropped 0 overruns 0 frame 0
- TX packets 15 bytes 1410 (1.3 KiB)
- TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
显示具体接口ipv4的信息
- [root@Tyson Lee ~]# ip -4 a show ens37
- 3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
- inet 192.168.0.128/24 brd 192.168.0.255 scope global noprefixroute dynamic ens37
- valid_lft 5612sec preferred_lft 5612sec
查看正在运行的接口的相关信息
ip link ls down(反之)
- [root@localhost ~]# ip link ls up
- 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
- 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 qlen 1000
- link/ether 00:0c:29:d2:ca:67 brd ff:ff:ff:ff:ff:ff
- 3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
- link/ether 00:0c:29:d2:ca:71 brd ff:ff:ff:ff:ff:ff
与ip a show ens37效果一样
2.1.1 给某个具体接口配置,也就是给网卡配ip。(需要有IP地址和对应的掩码。)
ip a(ddress) add 192.168.0.128/255.255.255.0 dev ens37
ip a(ddress) add 192.168.0.128/24 dev ens37
ifconfig ens37 192.168.0.128/24
ifconfig ens37 192.168.0.128 netmask 255.255.255.0
2.1.2 删除某个网络接口(网卡)
ip a(ddress) del 192.168.0.129/255.255.255.0 dev ens37
但是重复对同一个网络接口(网卡)配置ip地址时往往不会覆盖。
- [root@Tyson Lee ~]# ip a add 192.168.0.129/255.255.255.0 dev ens37
- [root@Tyson Lee ~]# ip a show ens37
- 3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
- link/ether 00:0c:29:d2:ca:71 brd ff:ff:ff:ff:ff:ff
- inet 192.168.0.128/24 brd 192.168.0.255 scope global noprefixroute dynamic ens37
- valid_lft 5323sec preferred_lft 5323sec
- inet 192.168.0.129/24 scope global secondary ens37
- valid_lft forever preferred_lft forever
- inet6 fe80::3eae:dcdd:5ed8:5736/64 scope link noprefixroute
- valid_lft forever preferred_lft forever
所以需要先删除先前配置好的IP地址。(或者选择一个删除)
- [root@Tyson Lee ~]# ip address del 192.168.0.129/255.255.255.0 dev ens37
- [root@Tyson Lee ~]# ip a show ens37
- 3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
- link/ether 00:0c:29:d2:ca:71 brd ff:ff:ff:ff:ff:ff
- inet 192.168.0.128/24 brd 192.168.0.255 scope global noprefixroute dynamic ens37
- valid_lft 5263sec preferred_lft 5263sec
- inet6 fe80::3eae:dcdd:5ed8:5736/64 scope link noprefixroute
- valid_lft forever preferred_lft forever
2.1.3 禁用或启用网络接口(网卡)
ip link set dev ens3 up
ip link set dev ens37 down
ifconfig ens37 down
ifconfig ens37 up
- [root@Tyson Lee ~]# ip link set ens37 down
- [root@Tyson Lee ~]# ip link ls up
- 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
- 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 qlen 1000
- link/ether 00:0c:29:d2:ca:67 brd ff:ff:ff:ff:ff:ff
- [root@Tyson Lee ~]# ip link set ens37 up
- [root@Tyson Lee ~]# ip link ls up
- 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
- 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 qlen 1000
- link/ether 00:0c:29:d2:ca:67 brd ff:ff:ff:ff:ff:ff
- 3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
- link/ether 00:0c:29:d2:ca:71 brd ff:ff:ff:ff:ff:ff
2.1.4 设置网卡的传输队列
ip link set txqueuelen 10000 dev ens37
- [root@Tyson Lee ~]# ifconfig |grep -n "txqu"
- 4: ether 00:0c:29:d2:ca:67 txqueuelen 1000 (Ethernet)
- 13: ether 00:0c:29:d2:ca:71 txqueuelen 1000 (Ethernet)
- 22: loop txqueuelen 1 (Local Loopback)
- [root@Tyson Lee ~]# ip link set txqueuelen 10000 dev ens37
- [root@Tyson Lee ~]# ifconfig |grep -n "txqu"
- 4: ether 00:0c:29:d2:ca:67 txqueuelen 1000 (Ethernet)
- 13: ether 00:0c:29:d2:ca:71 txqueuelen 10000 (Ethernet)
- 22: loop txqueuelen 1 (Local Loopback)
- [root@Tyson Lee ~]# ip link set txqueuelen 1000 dev ens37
2.1.5 设置网卡的最大传输单元(默认是1500字节)
ip link set mtu 9000 dev ens37
修改的方式相同,不做演示
- [root@Tyson Lee ~]# ifconfig |grep -n "mtu"
- 1:ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- 10:ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- 19:lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
巨型帧:
是帧长大于1522字节的以太网帧。这是一种厂商标准的超长帧格式,专门为千兆以太网而设计。巨型帧的长度各厂商有所不同,从9000字节~64000字节不等。采用巨型帧能够令千兆以太网性能充分发挥,使数据传输效率提高50%~100%。在网络存储的应用环境中,巨型帧更具有非同寻常的意义。
2.2.1 添加默认网关
ip route add 192.168.0.127 via 192.168.0.1 dev ens33
ip route add 目的网段 via 下一跳 dev 初接口
注意,这个是无法瞎设置的,生效前命令会检查网关是否可达或正确。
- [root@Tyson Lee ~]# ip route add 192.168.0.127 via 192.168.2.0 dev ens33
- RTNETLINK answers: Network is unreachable
- [root@Tyson Lee ~]# ip route add 192.168.0.127 via 192.168.0.0 dev ens33
- RTNETLINK answers: Invalid argument
- [root@Tyson Lee ~]# ip route add 192.168.0.127 via 192.168.0.1 dev ens33
添加了局域网的网关后我是可以ping通我的树莓派的
- [root@Tyson Lee ~]# ping -I ens33 myRaspberry
- PING myRaspberry (192.168.0.127) from 192.168.0.116 ens33: 56(84) bytes of data.
- 64 bytes from myRaspberry (192.168.0.127): icmp_seq=1 ttl=64 time=3.77 ms
- 64 bytes from myRaspberry (192.168.0.127): icmp_seq=2 ttl=64 time=3.92 ms
- ^C
- --- myRaspberry ping statistics ---
- 2 packets transmitted, 2 received, 0% packet loss, time 1002ms
- rtt min/avg/max/mdev = 3.770/3.847/3.925/0.099 ms
通常还需要设置子网掩码
例如:
A主机拥有两个运营商的ip:(telecom)202.116.128.222/24,(unicom)100.10.10.10/24
B主机拥有两个运营商的ip:(telecom)100.116.128.222/24,(unicom)200.20.20.10/24
当机器有多个IP且ISP不一样,就需要有明细路由。
在A主机中:ip route add default via 100.10.10.1 ,这样设置的话A主机在访问telecom运营商的网络时仍然用了unicom的网关100.10.10.1,跨网访问就有可能出现高延迟和丢包等问题。
在A主机中:ip route add 100.116.128.0 via 202.116.128.1 ,这样设置的话A主机在访问telecom运营商的网络时就用了telecom的网关202.116.128.1,不需要进行跨网。
2.2.2 删除默认网关
ip route del 192.168.0.127 via 192.168.0.1 dev ens33
可以看到删除后该条明细路由就消失了。
- [root@Tyson Lee ~]# ip route del 192.168.0.127 via 192.168.0.1 dev ens33
- [root@Tyson Lee ~]# route -n
- Kernel IP routing table
- Destination Gateway Genmask Flags Metric Ref Use Iface
- 0.0.0.0 192.168.0.1 0.0.0.0 UG 100 0 0 ens33
- 0.0.0.0 192.168.0.1 0.0.0.0 UG 101 0 0 ens37
- 192.168.0.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
- 192.168.0.0 0.0.0.0 255.255.255.0 U 101 0 0 ens37
2.2.3 查看路由表
route -n 更友好
- [root@Tyson Lee ~]# ip route show
- default via 192.168.0.1 dev ens33 proto dhcp metric 100
- default via 192.168.0.1 dev ens37 proto dhcp metric 101
- 192.168.0.0/24 dev ens33 proto kernel scope link src 192.168.0.116 metric 100
- 192.168.0.0/24 dev ens37 proto kernel scope link src 192.168.0.128 metric 101
- [root@localhost ~]# route -n
- Kernel IP routing table
- Destination Gateway Genmask Flags Metric Ref Use Iface
- 0.0.0.0 172.16.230.1 0.0.0.0 UG 100 0 0 ens33
- 0.0.0.0 172.16.230.1 0.0.0.0 UG 101 0 0 ens37
- 172.16.230.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
- 172.16.230.0 0.0.0.0 255.255.255.0 U 101 0 0 ens37
对于route -n这里各字段的说明:
Destination:目的地址
Gateway:默认网关
Genmask:目标ip对应的掩码(用于确定最精细的下一跳)
Flags:标签
Metric:开销
Use
Iface:下一跳的初接口
2.2.4 添加和删除具体路由
ip route add 192.168.1.0/24 dev ens33
ip route del 192.168.1.0/24 dev ens33
arp是局域网内实现ip地址到mac地址的转换。因为局域网内的端到端通信用mac地址(局域网内用二层通信)。
- #linux中
- [root@localhost ~]# ip neighbor show
- 172.16.230.233 dev ens33 lladdr 04:50:da:08:28:59 STALE
- 172.16.230.216 dev ens33 lladdr 9c:2e:a1:93:c8:c9 STALE
- 172.16.230.223 dev ens33 lladdr b8:81:98:65:be:81 DELAY
- 172.16.230.1 dev ens33 lladdr 00:12:7f:04:33:46 STALE
- 172.16.230.1 dev ens37 lladdr 00:12:7f:04:33:46 STALE
-
- #同一网段windows中
- windows中无线局域网适配器 WLAN:
-
- 连接特定的 DNS 后缀 . . . . . . . :
- 描述. . . . . . . . . . . . . . . : Intel(R) Dual Band Wireless-AC 3165
- 物理地址. . . . . . . . . . . . . : B8-81-98-65-BE-81
- DHCP 已启用 . . . . . . . . . . . : 是
- 自动配置已启用. . . . . . . . . . : 是
- 本地链接 IPv6 地址. . . . . . . . : fe80::1cd5:52f7:7452:3394%4(首选)
- IPv4 地址 . . . . . . . . . . . . : 172.16.230.223(首选)
- 子网掩码 . . . . . . . . . . . . : 255.255.255.0
- 获得租约的时间 . . . . . . . . . : 2019年1月12日 14:25:15
- 租约过期的时间 . . . . . . . . . : 2019年1月13日 15:17:21
- 默认网关. . . . . . . . . . . . . : 172.16.230.1
- DHCP 服务器 . . . . . . . . . . . : 172.16.230.1
- DHCPv6 IAID . . . . . . . . . . . : 62423448
- DHCPv6 客户端 DUID . . . . . . . : 00-01-00-01-1F-02-98-D9-C8-5B-76-23-D2-6C
- DNS 服务器 . . . . . . . . . . . : 114.114.114.114
- TCPIP 上的 NetBIOS . . . . . . . : 已启用
2.3.1 查看arp表信息
ip neighbor show
- [root@Tyson Lee ~]# ip neighbor show
- 192.168.0.127 dev ens33 lladdr b8:27:eb:c0:fa:23 STALE
- 192.168.0.103 dev ens33 lladdr 78:67:d7:9c:19:85 STALE
- 192.168.0.1 dev ens33 lladdr f4:83:cd:17:cb:49 DELAY
- 192.168.0.127 dev ens37 lladdr b8:27:eb:c0:fa:23 STALE
- 192.168.0.109 dev ens33 lladdr b8:81:98:65:be:81 DELAY
是查看arp表缓存中已有的ip地址和mac地址对应的信息。
而不是发请求广播请求获取mac地址。
2.3.2 看具体接口下的arp缓存条目
ip neighbor show dev ens33
2.3.3 看具体某个网段的arp缓存条目
ip neighbor show 192.168.0.0/24
- [root@Tyson Lee ~]# ip neighbor show 192.168.0.0/24
- 192.168.0.127 dev ens33 lladdr b8:27:eb:c0:fa:23 STALE
- 192.168.0.103 dev ens33 lladdr 78:67:d7:9c:19:85 STALE
- 192.168.0.1 dev ens33 lladdr f4:83:cd:17:cb:49 STALE
- 192.168.0.127 dev ens37 lladdr b8:27:eb:c0:fa:23 STALE
- 192.168.0.109 dev ens33 lladdr b8:81:98:65:be:81 REACHABLE
2.3.4 在arp缓存中写一个永久的他条目
ip neighbor add 192.168.0.0/24 lladdr 00:c0:7d:00:c8 dev ens37 nud permanent
ip neighbor add 192.168.0.0/24 lladdr mac地址 dev 对应接口 nud 是否永久
需要注意的是,在写入同一目标网段对应的mac地址信息时不是覆盖式的
所以需要先删除或者用ip neighbor change命令
删除指的是对应的mac地址删掉,ip地址还在
2.3.5 添加arp代理
ip neighbor add proxy 192.168.0.1 dev ens37
http://blog.51cto.com/chenxinjie/1961255
2.3.6 arp刷新
若发现缓存被污染或不正确了
ip neighbor flush dev ens33
刷新前:
- [root@Tyson Lee ~]# ip neighbor show
- 192.168.0.127 dev ens33 lladdr b8:27:eb:c0:fa:23 STALE
- 192.168.0.103 dev ens33 lladdr 78:67:d7:9c:19:85 STALE
- 192.168.0.1 dev ens33 lladdr f4:83:cd:17:cb:49 DELAY
- 192.168.0.127 dev ens37 lladdr b8:27:eb:c0:fa:23 STALE
- 192.168.0.109 dev ens33 lladdr b8:81:98:65:be:81 DELAY
刷新后:
mac地址就没有了,需要重新学习
- [root@Tyson Lee ~]# ip neighbor show
- 192.168.0.127 dev ens33 FAILED
- 192.168.0.103 dev ens33 FAILED
- 192.168.0.1 dev ens33 FAILED
- 192.168.0.127 dev ens37 lladdr b8:27:eb:c0:fa:23 STALE
- 192.168.0.109 dev ens33 lladdr b8:81:98:65:be:81 REACHABLE
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。