linux网络服务
linux网络服务
1. 网络配置命令
1.1 查看网络接口信息 ifconfig
ifconfig
[root@localhost ~]# ifconfig
# 直接输入 ifconfig 显示活动的网卡
ifconfig -a
[root@localhost ~]# ifconfig -a
# ifconfig 查看所有网卡
ifconfig ens33
[root@localhost ~]# ifconfig ens33
# 查看指定网卡信息
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.32.11 netmask 255.255.255.0 broadcast 192.168.32.255
inet6 fe80::58fa:a7f6:1a19:f5e1 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:e4:94:f4 txqueuelen 1000 (Ethernet)
RX packets 9965 bytes 692444 (676.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1470 bytes 147802 (144.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]#
UP 网卡接口已启动
BROADCAST 支持广播
RUNNING 正在运行
MULTICAST 支持组播,混杂模式
mtu 1500 最大传输1500字节
inet6 fe80::58fa:a7f6:1a19:f5e1 IPv6地址
prefixlen 64 子网长度
scopeid 0x20<link> 作用域,表示仅对该接口有效
ether 00:0c:29:e4:94:f4 mac地址
txqueuelen 1000 传输队列最大长度(传输缓存大小),比如当网卡同一时间接收了1500数据后,再有数据进来就要排队
(Ethernet) 接口类型
RX 接收
packets 9965 报文个数
bytes 692444 (676.2 KiB) 总和字节数
RX 接收
errors 0 错误个数
dropped 0 丢弃个数,当数据排队也排满了后,再来的数据就会被丢弃
overruns 0 溢出个数
frame 0 冲突帧数
TX 发送
packets 1470 报文个数
bytes 147802 (144.3 KiB) 总字节数
TX 发送
errors 0 错误
dropped 0 丢弃
overruns 0 溢出
carrier 0 载荷数
collisions 0 冲突书
为什么centos 6的网卡名用eth0,而centos 7的网卡名用ens33呢
centos 6 eth0,自定义网卡名,可以随便取
centos 7 ens33,表示以太网在该主板上的33号接口
"ens33"中的“en”表示 EtherNet,以太网(局域网的一种),互联网类型为以太网;“s”表示热插拔插槽上的设备(hot-plug Slot),数字“33”表示插槽编号
但是在生产环境中,我们还是把网卡改为eth0,为了统一标准,方便管理,为了自动化运维
开启或关闭网卡
ifconfig 网卡名 up 启动网卡
ip link set 网卡名 up 关闭网卡
[root@localhost ~]# ifconfig ens36 down
[root@localhost ~]# ip link set ens36 down
ifconfig 网卡名 down 关闭网卡
ip link set 网卡名 down 关闭网卡
[root@localhost ~]# ifconfig ens36 up
[root@localhost ~]# ip link set ens36 up
临时设置IP地址
ifconfig 网卡名 IP地址/子网掩码
[root@localhost ~]# ifconfig ens36 192.168.32.16/24
[root@localhost ~]# ping 192.168.32.16
PING 192.168.32.16 (192.168.32.16) 56(84) bytes of data.
64 bytes from 192.168.32.16: icmp_seq=1 ttl=64 time=0.050 ms
64 bytes from 192.168.32.16: icmp_seq=2 ttl=64 time=0.061 ms
^C
--- 192.168.32.16 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.050/0.055/0.061/0.009 ms
[root@localhost ~]#
临时为网卡设置IP地址,只能被使用一次,使用完一次后失效
设置虚拟网卡
ifconfig 网卡名:0 IP地址/子网掩码
[root@localhost ~]# ifconfig ens36:0 192.168.32.16/24
[root@localhost ~]# ping 192.168.32.16
PING 192.168.32.16 (192.168.32.16) 56(84) bytes of data.
64 bytes from 192.168.32.16: icmp_seq=1 ttl=64 time=0.031 ms
64 bytes from 192.168.32.16: icmp_seq=2 ttl=64 time=0.078 ms
^C
--- 192.168.32.16 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.031/0.054/0.078/0.024 ms
临时设置虚拟网卡,临时测试使用,重启后该IP地址失效
网络通信情况
[root@localhost ~]# ifconfig -s
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33 1500 228 0 0 0 143 0 0 0 BMRU
ens36 1500 103 0 0 0 48 0 0 0 BMRU
lo 65536 104 0 0 0 104 0 0 0 LRU
virbr0 1500 0 0 0 0 0 0 0 0 BMU
[root@localhost ~]#
查看网卡的通讯情况
nmcli
nmcli 修改IP地址,网关等信息
1.2 ip
ip link
link表示链路层,link可以简写为 l 或 li 或 lin
ip l 查看所有的网络设备(因为是链路层,只显示MAC地址)。其中,lo、ens33 等是真实的物理设备,通过 ip l add 命令创建的都是虚拟设备。
# ip link
[root@localhost ~]# ip link
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:e4:94:f4 brd ff:ff:ff:ff:ff:ff
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT qlen 1000
link/ether 52:54:00:3d:83:52 brd ff:ff:ff:ff:ff:ff
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN mode DEFAULT qlen 1000
link/ether 52:54:00:3d:83:52 brd ff:ff:ff:ff:ff:ff
5: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
link/ether 00:0c:29:e4:94:fe brd ff:ff:ff:ff:ff:ff
[root@localhost ~]#
修改网卡名称
① 临时修改
# 先将网卡关闭
ip link set ens36 down
# 然后给该网卡改名
ip link set ens36 name ab
# 最后再启动网卡
ip link set ab up
[root@localhost ~]# ip link set ens36 down
[root@localhost ~]# ifconfig ens36
ens36: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether 00:0c:29:e4:94:fe txqueuelen 1000 (Ethernet)
RX packets 2186 bytes 132747 (129.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 488 bytes 85872 (83.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# ip link set ens36 name ab
[root@localhost ~]# ifconfig ab
ab: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::c253:badf:d7b0:67b8 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:e4:94:fe txqueuelen 1000 (Ethernet)
RX packets 2191 bytes 133047 (129.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 496 bytes 87096 (85.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# 临时网卡改名总结
先关闭网卡
然后改名
再启动
② 永久修改网卡名称
vim /etc/default/grub
net.ifnames=0
grub2-mkconfig -o /boot/grub2/grub.cfg
-----------------------------------------------------------------------
[root@localhost ~]# vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0"
GRUB_DISABLE_RECOVERY="true"
# 一定要在 GRUB_CMDLINE_LINUX 这一行的最后面添加 net.ifnames=0
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-mkconfig 重新生成 grub.cfg 文件
[root@localhost ~]# reboot
[root@localhost ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::f604:49fb:b86f:a994 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:e4:94:f4 txqueuelen 1000 (Ethernet)
RX packets 65 bytes 7026 (6.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 27 bytes 5010 (4.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
NAME=eth0 # 删除
DEVICE=eth0
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.32.11 netmask 255.255.255.0 broadcast 192.168.32.255
inet6 fe80::7b3f:f958:459e:6266 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:e4:94:f4 txqueuelen 1000 (Ethernet)
RX packets 180 bytes 21541 (21.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 135 bytes 19028 (18.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ip address
address可以简写为 a
# ip a 查看所有网卡的IP地址
[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:e4:94:f4 brd ff:ff:ff:ff:ff:ff
inet 192.168.32.11/24 brd 192.168.32.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::58fa:a7f6:1a19:f5e1/64 scope link
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
link/ether 52:54:00:3d:83:52 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
link/ether 52:54:00:3d:83:52 brd ff:ff:ff:ff:ff:ff
5: ens36: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:e4:94:fe brd ff:ff:ff:ff:ff:ff
inet6 fe80::4678:1425:a871:930a/64 scope link
valid_lft forever preferred_lft forever
[root@localhost ~]#
# 查看指定网卡的IP地址
[root@localhost ~]# ip address show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:e4:94:f4 brd ff:ff:ff:ff:ff:ff
inet 192.168.32.11/24 brd 192.168.32.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::58fa:a7f6:1a19:f5e1/64 scope link
valid_lft forever preferred_lft forever
[root@localhost ~]# ip a show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:e4:94:f4 brd ff:ff:ff:ff:ff:ff
inet 192.168.32.11/24 brd 192.168.32.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::58fa:a7f6:1a19:f5e1/64 scope link
valid_lft forever preferred_lft forever
[root@localhost ~]#
ip route
route 可以简写为 r 或 ro 或 rou
# ip r 查看所有静态路由
[root@localhost ~]# ip r
default via 192.168.32.2 dev ens33 proto static metric 100
192.168.32.0/24 dev ens33 proto kernel scope link src 192.168.32.11 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
[root@localhost ~]#
[root@localhost ~]# ip route
default via 192.168.32.2 dev ens33 proto static metric 100
192.168.32.0/24 dev ens33 proto kernel scope link src 192.168.32.11 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
[root@localhost ~]#
1.3 开启路由转发功能
[root@localhost ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1
[root@localhost ~]# sysctl -p # 查看修改后的配置
net.ipv4.ip_forward = 1
[root@localhost ~]#
1.4 文件
/etc/hostname 主机名
/etc/hosts 域名解析文件,优先级最高
/etc/resolv.conf 域名解析服务器地址,保存本机需要使用的dns服务器IP地址
route -n 怎么看网关
ifconfig 看IP地址
nslookup 解析域名
1.5 网络接口配置文件
第一块以太网卡的配置文件位置:/etc/sysconfig/network-scripts/ifcfg-ens33
配置IP地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
------------------------------------------------------------
# 以下配置是最简配置,都是必不可少
BOOTPROTO=static
ONBOOT=yes
DEVICE=ens33
IPADDR=192.168.32.11
NETMASK=255.255.255.0
# PREFIX=24
GATEWAY=192.168.32.2
DNS1=114.114.114.114
# 重启网络服务
systemctl restart network
# 禁用、启用网络接口
ifdown ens33
ifup ens33
1.6 修改主机名 hostname
临时修改主机名
[root@localhost test]# hostname h1 # 临时修改主机名
[root@localhost test]# su
[root@h1 test]#
永久修改主机名
[root@localhost test]# hostnamectl set-hostname test1 # 永久修改主机名
[root@localhost test]#reboot # 重启后,更改主机名
[root@test1 ~]#
[root@localhost ~]# vim /etc/hostname # 永久修改主机名
test # 只有第一个生效
localhost
[root@localhost test]#reboot # 重启刷新主机名
[root@test ~]#
centos 6 上永久修改主机名
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
1.7 查看网卡信息 ethtool
ethtool -i ens33 查看指定网卡的信息
[root@localhost ~]# ethtool -i ens33
driver: e1000
version: 7.3.21-k8-NAPI
firmware-version:
expansion-rom-version:
bus-info: 0000:02:01.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
[root@localhost ~]#
ethtool -p ens33
[root@localhost ~]# ethtool -p ens33 # 让 ens33 网卡快速闪烁,在机房方便找到网卡
^C
[root@localhost ~]#
1.8 查看路由表条目 route
route 查看静态路由
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens33
192.168.32.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@localhost ~]#
Gateway 既是下一跳地址,也是网关
route -n 以数字形式查看静态路由
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.32.2 0.0.0.0 UG 100 0 0 ens33
192.168.32.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@localhost ~]#
route del -net 0.0.0.0/0
或者 route del default
route add -net IP地址 gw 下一跳地址
[root@localhost ~]# route add -net 192.168.31.0/24 gw 192.168.32.2
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.32.2 0.0.0.0 UG 100 0 0 ens33
192.168.31.0 192.168.32.2 255.255.255.0 UG 0 0 0 ens33
192.168.32.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@localhost ~]#
1.9 查看网络连接情况 netstat
选项
-a 显示主机中所有活动的网络连接信息
-n 以数字的形式显示相关的主机地址、端口等信息
-t 查看tcp(传输控制协议)相关的信息,只显示tcp协议
-u 查看udp(用户数据报协议)相关的信息,只显示udp协议
-p 显示与网络连接相关的进程号、进程名称信息(该选项需要root权限)
-a 所有
-r 显示路由表信息
-l 显示处于监听状态的网络连接及端口信息
用法
[root@localhost ~]# netstat -antp | grep tcp
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1351/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1038/sshd
[root@localhost ~]#
1.10 查看网络连接情况 ss
socket statistics
选项
-a 显示主机中所有活动的网络连接信息
-n 以数字的形式显示相关的主机地址、端口等信息
-t 查看tcp(传输控制协议)相关的信息,只显示tcp协议
-u 查看udp(用户数据报协议)相关的信息,只显示udp协议
-p 显示与网络连接相关的进程号、进程名称信息(该选项需要root权限)
-a 所有
-r 显示路由表信息
-l 显示处于监听状态的网络连接及端口信息
用法
[root@localhost ~]# ss -antp | head -n 5
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:111 *:* users:(("systemd",pid=1,fd=45))
LISTEN 0 5 192.168.122.1:53 *:* users:(("dnsmasq",pid=1351,fd=6))
LISTEN 0 128 *:22 *:* users:(("sshd",pid=1038,fd=3))
LISTEN 0 128 127.0.0.1:631 *:* users:(("cupsd",pid=1036,fd=12))
State 状态,tcp的11中状态机
Address:Port IP地址和端口号
Peer Address:Port 进程
netstat与ss的总结
ss 更靠近socket文件
netstat 遍历/proc/net/tcp文件
ss,是查看网络连接情况,主要用于获取socket(内核态)统计信息,能够显示更多更详细的有关TCP和连接状态的信息
netstat,也是查看网络连接情况,它是遍历"/proc/net/tcp"文件里面的内容
当服务器的链接数(socket)变得很多时,ss就会比netstat更加快速,更加高效;当链接数很少时,ss和netstat速度差不多
使用time来比较netstat与ss
[root@localhost ~]# time netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 36 192.168.32.11:22 192.168.32.1:61975 ESTABLISHED
tcp 0 0 192.168.32.11:22 192.168.32.1:61805 LISTEN
real 0m0.004s
user 0m0.000s
sys 0m0.004s
[root@localhost ~]# time ss -ant
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:111 *:*
LISTEN 0 5 192.168.122.1:53 *:*
ESTAB 0 36 192.168.32.11:22 192.168.32.1:61975
ESTAB 0 0 192.168.32.11:22 192.168.32.1:61805
real 0m0.004s
user 0m0.000s
sys 0m0.004s
1.11 ping
检测网络连通性
选项
-c ping多少个包,就是ping多少次
-w 等待时间
crtl+c 停止ping
ping -c
ping -c 3 192.168.32.12 # -c ping几次
[root@localhost ~]# ping 192.168.32.12 -c 3
PING 192.168.32.12 (192.168.32.12) 56(84) bytes of data.
64 bytes from 192.168.32.12: icmp_seq=1 ttl=64 time=1.19 ms
64 bytes from 192.168.32.12: icmp_seq=2 ttl=64 time=0.703 ms
64 bytes from 192.168.32.12: icmp_seq=3 ttl=64 time=1.08 ms
--- 192.168.32.12 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.703/0.993/1.196/0.210 ms
[root@localhost ~]#
ping -w
ping 192.168.32.12 -w 10 # -w 等待10秒
1.12 traceroute
路由追踪
traceroute IP地址
[root@localhost ~]# traceroute 192.168.32.12
traceroute to 192.168.32.12 (192.168.32.12), 30 hops max, 60 byte packets
1 192.168.32.12 (192.168.32.12) 0.482 ms !X 0.472 ms !X 1.171 ms !X
[root@localhost ~]#
1.13 域名解析
nslookup 域名 域名解析
[root@localhost ~]# nslookup www.baidu.com
Server: 114.114.114.114
Address: 114.114.114.114#53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 153.3.238.102
Name: www.a.shifen.com
Address: 153.3.238.110
dig 域名 域名解析
[root@localhost ~]# dig www.baidu.com
; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27567
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com. IN A
;; ANSWER SECTION:
www.baidu.com. 1064 IN CNAME www.a.shifen.com.
www.a.shifen.com. 73 IN A 153.3.238.102
www.a.shifen.com. 73 IN A 153.3.238.110
;; Query time: 21 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: 四 11月 09 21:18:40 CST 2023
;; MSG SIZE rcvd: 101
域名解析的过程
① 先访问域名服务器,域名服务器会告诉你百度的IP地址
② 然后你再用IP地址访问百度
1.14 内容分发网络 cdn
1.15 抓包 tcpdump
格式
tcpdump option proto dir type
tcpdump 选项 协议 数据的方向 抓取的数据类型
proto(协议)
1. tcp udp icmp
2. ip ipv6
3. arp
dir(方向)
1. src 源
2. dst 目的
3. src and dst 源和目的(默认)
type(类型)
1. host 主机
2. net 网段
3. port 端口
4. port range 端口范围
支持:and、or
tcpdump -i ens33 -nnn
[root@localhost ~]# tcpdump -i ens33 -nn # -n、-nn、-nnn
# 抓包,只抓ens33网卡的包
22:07:34.913121 IP 192.168.32.1.53021 > localhost.localdomain.ssh: Flags [.], ack 1170877, win 4095, length 0
22:07:34.913128 IP localhost.localdomain.ssh > 192.168.32.1.53021: Flags [P.], seq 1171153:1171317, ack 180, win 261, length 164
host选项
主机2 ping 主机1
[root@localhost data]#tcpdump -i ens33 host 192.168.91.101
#只关心 和 192.168.91.101 有关的流量
dst 选项 目的地址 src 选项 源地址
[root@localhost ~]#tcpdump -i ens33 dst 192.168.91.101
[root@localhost ~]#tcpdump -i ens33 src 192.168.91.101
net 选项 tcpdump net 192.168.91.0/24
[root@localhost ~]#tcpdump net 192.168.91.0/24 -i ens33
控制方向
[root@localhost ~]#tcpdump -i ens33 src net 192.168.91.0/24
[root@localhost ~]#tcpdump -i ens33 dst net 192.168.91.0/24
基于端口过滤
port 端口号 tcpdump port 80
[root@localhost ~]#tcpdump -i ens33 port 80
or
[root@localhost ~]#tcpdump -i ens33 port 80 or port 22
#80 和 22 端口
[root@localhost ~]#tcpdump -i ens33 src port 80 or port 22
[root@localhost ~]#tcpdump -i ens33 dst port 80 or port 22
范围的端口
[root@localhost ~]#tcpdump -i ens33 portrange 80-8080
#80 和 22 端口
[root@localhost ~]#tcpdump -i ens33 src portrange 80-8080
[root@localhost ~]#tcpdump -i ens33 dst portrange 80-8080
基于协议
protocal
协议种类:ip arp icmp tcp udp
应用层协议不可以直接抓取
[root@localhost ~]#ping www.baidu.com
[root@localhost ~]#tcpdump -i ens33 icmp
常见参数
-i 指定监听网络监听端口
[root@localhost ~]#tcpdump -i ens33
[root@localhost ~]#tcpdump -i any
1.16 Bond
多网卡绑定
实现高可用、负载均衡
实验
bond实现多网卡绑定
准备两块物理网卡,一个虚拟网卡
/etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=bond
NAME=bond0
BOOTPROTO=static
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.32.15
PREFIX=24
GATEWAY=192.168.32.2
DNS1=114.114.114.114
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路
/etc/sysconfig/network-scripts/ifcfg-ens33
NAME=ens33
DEVICE=ens33
BOOTPROTO=static
MASTER=bond0
SLAVE=yes
NOBOOT=yes
/etc/sysconfig/network-scripts/ifcfg-ens36
NAME=ens36
DEVICE=ens36
BOOTPROTO=static
MASTER=bond0
SLAVE=yes
NOBOOT=yes
查看bond0状态
cat /proc/net/bonding/bond0
删除bond0
ifconfig bond0 down
rmmod bonding
系统调优
做Bonding
统一主机名
统一网卡名称
内核调优
开启路由转发功能
掌握
修改主机名 hostnamectl set
查看系统连接状态 ss -antp
添加路由 route add -net 192.168.32.0/24 gw 192.168.32.2
删除路由 route del -net 192.168.32.0/24
修改网卡配置
DEVICE
BOOTPROTO
ONBOOT
IPADDR
NETMASK(PREFIX)
GATEWAY
DNS1
绑定网卡 bond
抓包 tcpdump
排障工具
ping
traceroute
ss
nmap
ifconfig
修改网卡名
作业
永久添加路由
故障案例
xshell连不上虚拟机?
第一步:虚拟机ping百度,看是否能ping通
ping百度成功,说明 /etc/sysconfig/network-scripts/ifcfg-ens33 配置文件没有问题
第二步:在虚拟机使用ssh尝试连接
第三步:考虑是否是真机的问题
XShell是装在真机上面的,说明真机上面有问题
因为我们使用了VM8,NAT模式,查看DHCP服务器是开启还是关闭;
如果dhcp是开启,那么真机上面的vm8使用自动获取IP地址;
如果dhcp是关闭,那么真机上面的vm8必须使用手动获取IP地址
因为这里将dhcp去掉,没有使用DHCP,所以检查真机的vm8配置信息
可以看到真机上vm8使用的是自动获取IP地址,但是我们又把dhcp服务器关闭了,所以vm8获取了一个169.254.X.X网段的IP地址,这是一个错误的IP地址,所以导致了连不上XShell
修改真机的VM8模式的IPv4为手动获取IP地址,输入相应的IP地址
XShell尝试再次连接虚拟机
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)