本文目的主要是对学习 《Linux 实战技能 100 讲》过程中的内容做记录,防止忘记,即便忘记了也可以再回来查。
极客专栏地址: https://time.geekbang.org/course/intro/193
第三章: 系统管理篇
26 网络管理
网络状态查看工具
早期使用 net-tools
工具集,现在较新的 Linux 发行版使用 iproute2
工具集。
简要介绍如下:
1.net-tools
- ifconfig
- eth0 第一块网卡
- ens33 PCI-E 网卡
- enp0s3 无法获取物理信息的 PCI-E 网卡
- CentOS 7 使用了一致性网络设备命名,以上都不匹配则使用 eth0
- route
- netstat
2.iproute2
- ip
- ss
网卡接口命名修改
- 网卡命名规则受
biosdevname
和net.ifnames
两个参数影响 - 编辑
/etc/default/grub
文件,增加biosdevname=0 net.ifnames=0
- 更新 grub
#grub2-mkconfig -o /boot/grub2/grub.cfg
- 重启
#reboot
biosdevname | net.ifnames | 网卡名 | |
---|---|---|---|
默认 | 0 | 1 | ens33 |
组合 1 | 1 | 0 | em1 |
组合 2 | 0 | 0 | eth0 |
systemd 网络端口命名规则
https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/
27 查看网络配置
ifconfig 输出
ifconfig
/sbin/ifconfig
enp0s31f6: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether e8:6a:64:44:77:3c txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16 memory 0xee300000-ee320000
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 1425567 bytes 5078552462 (4.7 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1425567 bytes 5078552462 (4.7 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.9 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::92ed:8a43:7e6:6880 prefixlen 64 scopeid 0x20<link>
ether 1c:1b:b5:3f:4b:4d txqueuelen 1000 (Ethernet)
RX packets 78354285 bytes 111604642686 (103.9 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 40923681 bytes 4766853522 (4.4 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
inet
网卡的 ipv4 地址inet6
网卡的 ipv6 地址ether
网卡的 MAC 地址RX
TX
发送、接收数据包统计lo
代表本地环回 网卡,本地地址永远是127.0.0.1
查看网卡物理链接状态
mii-tool - view, manipulate media-independent interface status
# sudo mii-tool enp0s31f6
enp0s31f6: no link
查看网关命令
route -n
- 使用
-n
参数不解析主机名
-->$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 600 0 0 wlp2s0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br-a1bd391f73c0
192.168.1.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp2s0
default
表示默认网关
28 修改网络配置
网络配置命令
ifconfig <接口> <IP地址> [netmask 子网掩码]
ifup <接口>
ifdown <接口>
网关配置命令
添加网关
添加默认网关:route add default gw <网关ip>
添加明细路由:route add -host <指定ip> gw <网关ip>
route add -net <指定网段> netmask <子网掩码> gw <网关ip>
访问某个网段的明细路由
ip 命令
ip addr ls
=ifconfig
ip link set dev eth0 up
=ipup eth0
ip addr add 10.0.0.1/24 dev eth1
=ifconfig eth1 10.0.0.1/24 netmask 255.255.255.0
ip route add 10.0.0.1/24 via 192.168.0.1
=route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.0.1
29 网络故障排除
排除命令:
ping
检测网络是否可达 ,-c
指定次数traceroute
检测每一跳的情况 ;-w
等待时间mtr
检测包是否丢失My traceroute
nslookup
域名查看 iptelnet
检查端口连接状态telnet www.baidu.com 80
tcpdump
抓取数据包tcpdump -i any -n port 80
tcpdump -i any -n host 10.0.0.1
tcpdump -i any -n host 10,0.0.1 and port 80 -w /tmp/dump.txt
netstat
端口查看状态-n
显示 ip 地址,t
tcp-p
进程l
listenss
参数与 netstat 类似
30 网络管理和配置文件
网络服务管理
网络服务管理程序分为 SysV 和 systemd, 下面是常用的一些命令:
service network start/stop/restart
chkconfig -list network
chkconfig --level 2345 network off/on
systemctl list-unit-files NetworkManager.service
systemctl start/stop/restart NetworkManager
systemctl enable/disable NetworkManager
配置文件:
/et/sysconfig/network-scripts/ifcfg-**
BOOTPROTO=dhcp/static/none
ONBOOT="yes"/"no"
IPADDR
NETMASK
GATEWAY
DNS1
DNS2
DNS3
/etc/hosts
主机名
hostname # 展示主机名
hostname NAME # 临时设置主机名
hostnamectl set-hostname NAME # 永久设置主机名