Linux网络学习笔记

本文详细介绍了Linux网络的相关知识,包括查看网络接口状态、路由表、应用层协议及端口、端口使用、抓包、孤儿连接、监听程序、TCP重传次数、TCP拥塞算法等,并提供了相关命令及操作示例。此外,还涵盖了IP地址规划、子网掩码计算、CIDR无类域间路由、网络配置命令以及动态路由协议等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【查看网络接口的协商状态】

mii-tool -v eth0
eth0: no autonegotiation, 100baseTx-FD, link ok
  product info: vendor 00:50:43, model 2 rev 4
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
  capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  advertising:  100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
  link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD

说明:
100baseTx-FD,100表示100MB,base表示基带传输,Tx表示双绞线,FD表示全双工Full Duplex

ethtool eth0

【查看路由表】
route -n

windows:
route print

【查看应用层协议或端口号】
cat /etc/services
ftp_data 20
ftp_cmd 21
ssh 22
telnet 23
smtp 25
dns 53
dhcp_server 67
dhcp_client 68
tftp 69
http 80
pop3 110
snmp 161
https 443
ms_sql_server 1433
oracle 1521
mysql 3306
mstsc 3389

49152-65535:动态/私有端口,这些端口是给客户端程序随机使用

其他协议或端口,参考:
https://blog.youkuaiyun.com/yu1336199790/article/details/53816093
https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml

【查看程序使用的端口号】
Windows:
tasklist //列出程序的进程号
netstat -no //查看进程对应的端口号

Linux:
客户端的随机端口在如下文件进行指定
cat /proc/sys/net/ipv4/ip_local_port_range
32768 60999

【抓包】
抓包软件wireshark
下载地址:https://pc.qq.com/detail/9/detail_6909.html
https://www.wireshark.org/download.html

【查看孤儿连接】
最大孤儿连接数:
cat /proc/sys/net/ipv4/tcp_max_orphans
孤儿连接在内核中生存时间(秒):
cat /proc/sys/net/ipv4/tcp_fin_timeout

【查看监听程序和端口号】
ss -ntul

说明:
t表示tcp协议,u表示udp协议

【查看TCP重传次数】
TCP最少重传次数
cat /proc/sys/net/ipv4/tcp_retries1
TCP最多重传次数
cat /proc/sys/net/ipv4/tcp_retries2

【查看TCP拥塞算法】
cat /proc/sys/net/ipv4/tcp_congestion_control

【指定ping包大小】
ping 192.168.0.106 -s 65507

说明:
s表示包大小,最大65507

ping 192.168.0.106 -s 65507 -f

说明:
f表示不等待对方回应,一直发包,这就是ddos攻击

【查看IP地址与MAC地址映射表】
arp -n
【查看ttl】
cat /proc/sys/net/ipv4/ip_default_ttl
修改ttl:
echo 255 > /proc/sys/net/ipv4/ip_default_ttl

【IP地址规划】
A类地址
0XXXXXXX.Y.Z.W
网段数量=2^7=128
主机数=2^24-2=1677,7214
1-126.x.x.x
子网掩码:255.0.0.0

B类地址
10XXXXXX.XXXXXXXX.Y.Z
网段数量=2^14=1,6384
主机数=2^16-2=65534
128-191.x.x.x
子网掩码:255.255.0.0

C类地址
110XXXXX.XXXXXXXX.XXXXXXXX.Y
网段数量=2^21=209,7152
主机数=2^8-2=254
192-223.x.x.x
子网掩码:255.255.255.0

D类地址
多播
224-239.x.x.x

E类地址
保留
240-254.x.x.x

以上是有类分类
以下是无类分类,CIDR无类域间路由
网络ID、主机ID不确定
子网掩码

00000000 0
10000000 128
11000000 192
11100000 224
11110000 240
11111000 248
11111100 252
11111110 254

如果网络ID为数是22位,那么子网掩码是
22=8+8+6(位)
255.255.252.0

“IP/网络ID位数”的写法(CIDR表示法)
172.20.0.123/22

练习:
200.222.123.23/26
1、子网掩码是多少?
26=8+8+8+2
255.255.255.192
2、主机数是多少?
32-26=6
2^6-2=62(个)

如果两个路由器之间通过一根网线连接,只需要2个IP地址,那么子网掩码配多少?
2^(32-网络ID位数)-2=2
网络ID位数=30
30=8+8+8+6
255.255.255.252

网络ID=IP“与”子网掩码
例如:
192.168.1.100
255.255.255.0
网络ID:
11000000.10101000.10101000.1100100
11111111.11111111.11111111.0000000
与运算
11000000.10101000.10101000.0000000
192.168.1.0

练习:
A机器:172.20.222.123/20
B机器:172.20.230.100/20
问AB机器是否在同一网段?
20=8+8+4
掩码:255.255.240.0
A机器的网络ID:
172.20.222.123
255.255.240.0
即:
172.20. 11011110.123
255.255.11110000.0
与运算:
172.20.11010000.0
172.20.208.0

B机器的网络ID:
72.20.230.100
255.255.240.0
即:
172.20. 11100110.100
255.255.11110000.0
与运算:
172.20.11100000.0
172.20.224.0
所以A的网络ID为172.20.208.0,B的网络ID为172.20.224.0,即为不同网段

练习:
192.168.199.111/21
1)网络ID
2)掩码?
3)主机数
4)最小IP,最大IP
1、2):
21=8+8+5
255.255.11111000.00000000
掩码:255.255.248.0
网络ID:
192.168.199.111
255.255.248.0
与运算:
192.168.11000111.111
255.255.11111000.0
192.168.11000000.0
网络ID=192.168.192.0
3):
主机数:2^(32-21)-2=2046
4):
最小IP:192.168.11000 000.00000001 192.168.192.1/21
最大IP:192.168.11000 111.11111110 192.168.199.254/21

练习:
222.111.188.123,掩码 255.255.255.192
1)网络ID
2)CIDR
3)主机数
4)最小IP,最大IP
1):
222.111.188.123
255.255.255.192
即:
222.111.188.01111011
255.255.255.11000000
与运算
222.111.188.01000000
222.111.188.64
2):
255.255.255.1100000
CIDR:8+8+8+2=26
3):
主机数=2^(32-26)-2=62
4):
最小IP:222.111.188.01 000001 222.111.188.65/26
最大IP:222.111.188.01 111110 222.111.188.126/26

划分子网实例:
10.0.0.0/8 划分为32个子网(中国移动划分32个省公司)
1)新的子网掩码是?
2)新的子网,最小网络ID,最大网络ID
3)新的子网存放最多的主机数是多少?
4)最大子网IP:最小IP,最大IP?
1):
32=2^5,那么需要借用5位主机ID,即:
10.00000 000.0.0
8+5=13 (CIDR)
掩码:
255.11111000.0.0 255.248.0.0
2):
最小网络ID:
10.0.0.0/13
最大网络ID:
10.11111 000.0.0/13
10.248.0.0/13
3):
10.00000 000.0.1
主机数:2^19-2=524286
4):
最大子网IP 10.248.0.0/13
min ip:10.11111 000.0.1 10.248.0.1
max Ip:10.11111 111.255.254 10.255.255.254

假设:河南省10.248.0.0/13,划分17个地市使用
问题同上
1)
17=2^4+1=16+1,所以需要至少借用5位主机ID,才能实现大于等于17个子网
原来是13位掩码,再借5位,就是18掩码
掩码:
255.255.11000000.0 255.255.192.0
13+5=18(CIDR)
2):
10.248.0.0/13
10.11111 000.00 000000.0 第0个子网
10.11111 100.00 000000.0 第16个子网
10.11111 111.11 000000.0 理论最大子网
min netid:
10.248.0.0/18
第17个子网:
10.252.0.0/18
max netid:
10.255.192.0/18
3):
主机数:2^(8+6)-2=16382
4)
最大子网IP 10.252.0.0/18
min ip:10.11111 100.00 000000.1 10.252.0.1
max IP:10.11111 100.00 111111.11111110 10.252.63.254

合并多个网络(划分超网),多个小网合并成一个大网,主机ID位向网络ID位借位
例如:
220.78.168.0 220.78.10101 000.0
220.78.169.0 220.78.10101 001.0

220.78.175.0 220.78.10101 111.0
借3位,新网络的网络ID:
220.78.10101 000.0 220.78.168.0/21

例如2:
192.168.1.0/24
192.168.2.0/24
合并超网:
192.168.000000 01.0/24
192.168.000000 10.0/24
192.168.000000 00.0
192.168.0.0/22

例如3:
172.16.14.132/30
172.16.14.136/30
172.16.14.140/30
合并超网:
172.16.14.1000 0100/30
172.16.14.1000 1000/30
172.16.14.1000 1100/30
172.16.14.1000 0000/28
172.16.14.128/28

私有IP地址分3类
类 私有地址范围
A 10.0.0.0 到 10.255.255.255
B 172.16.0.0 到 172.31.255.255
C 192.168.0.0 到 192.168.255.255

公共IP地址分3类
类 公共IP地址范围
A 1.0.0.0 到 9.255.255.255
11.0.0.0 到 126.255.255.255
B 128.0.0.0 到 172.15.255.255
172.32.0.0 到 191.255.255.255
C 192.0.0.0 到 192.167.255.255
192.169.0.0 到 223.255.255.255
互联网会分配公有IP地址,是世界唯一,有路由,私有则不分配,也没有路由

【配置IP地址】
ip addr add <IP地址/ICDR> dev eth0

路由
跨网段互联互通
查看路由表:
route -n
路由表的构成:
1)目标 数据包发送的目标路径
2)掩码
3)接口 本路由器的出口
4)网关
a) 直连 不需要配置
b) 非直连 下一个路由器临近本路由器的接口地址

windows:
添加默认路由(目的是生成路由表的默认路由)
route add 0.0.0.0 mask 0.0.0.0 <网关IP>

删除默认路由
route delete 0.0.0.0 mask 0.0.0.0 <网关IP>

DHCP
discover
offer
request
ack

网卡命名文件:
/etc/udev/rules.d/70-persistent-net.rules

查看网卡
dmesg | grep -i eth
ethtool -i eth0

卸载网卡驱动
modprobe -r e1000
rmmod e1000

装载网卡驱动
modprobe e1000

【网络配置命令】
ip {addr,link,route}
system-config-network-tui
setup

配置网络接口
禁用网卡
ifconfig eth0 down
ifdown eth0

启用网卡
ifconfig eth0 up
ifup eth0

修改IP地址
ifconfig eth0 1.1.1.1/24 //临时生效

查看路由表
route -n

添加主机路由
route add -host 6.6.6.6 gw 3.3.3.100
说明:
主机路由是不用加子网掩码,默认是255.255.255.255

添加网段路由
route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.30.100
说明:
gw 网关必须是和本路由器(本机网卡)在相同的网段,否则会报错路由无法达到

添加默认路由
route add default gw 192.168.30.2

删除路由
route del default gw 192.168.30.2
route del -host 3.3.3.3
route del -net 10.0.0.0/8 gw 192.168.56.100

A机器 eth1:192.168.2.100/24
B机器 eth1:192.168.1.100/24

物理上两个网卡是连接在同一个交换机,默认是不能ping通,
但是,只要添加网卡的默认路由,就可以ping通
A机器:
route add default dev eth1
B机器
route add default dev eth1

抓包命令
tcpdump -i eth1 icmp

配置动态路由
安装quagga包
ospf协议

rpm -qa quagga
cp ospfd.conf.sample /etc/quagga
service ospfd start
vtysh
<思科命令配置>

以上配置ip和路由的命令都是临时生效,重启后就消失了,要彻底修改,就需要修改配置文件

修改IP地址:
/etc/sysconfig/network-scripts/
cat > ifcfg-eth1

DEVICE=eth1
BOOTPROTO=dhcp //修改为static或none表示配置静态IP,也可以删除
MACADDR=MAC //修改为真实的MAC地址,也可以删除
IPADDR=IP
PREFIX=16 //CIDR子网掩码
GATEWAY=172.20.0.1
DNS1=114.114.114.114
DNS2=1.1.1.1
DNS3=8.8.8.8

serivec network restart

如果报错:
Bringing up interface eth1: Error: Connection activation failed: The connection is not for this device.
是由于图形界面中网卡配置程序造成,关闭它就可以了
service NetworkManager stop

默认Linux服务器是不知此路由转发,所以不能当路由器用,如果要,则需要开启路由转发功能,方法如下:
cat /proc/sys/net/ipv4/ip_forward
0
echo 1 > /proc/sys/net/ipv4/ip_forward

查看经过哪些路由器:
traceroute <IP地址>
mtr <IP地址> //可以动态查看路由
tracepath <IP地址>

windwos命令:
tracert www.qq.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值