Linux学习-网络学习
Posted 丢爸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习-网络学习相关的知识,希望对你有一定的参考价值。
IP地址
A类
0 000 0000 - 0 111 1111:1-127
网络数:126
每个网络中的主机数:2^24-2
默认子网掩码:255.0.0.0
私网地址:10.0.0.0/8
B类
10 00 0000 - 10 11 1111:128-191
网络数:2^14
每个网络中的主机数:2^16-2
默认子网掩码:255.255.0.0
私网地址:172.16.0.0/16 - 172.31.0.0/16
C类
110 0 0000 - 110 1 1111:192-223
网络数:2^21
每个网络中的主机数:2^8-2
默认子网掩码:255.255.255.0
私网地址:192.168.0.0/24 - 192.168.255.0/24
D类(组播)
1110 0000 - 1110 1111:224-239
E类(剩余E类240-255)
常识
#跨网络通信:需要使用路由
# - 主机路由
# - 网络路由
# - 默认路由
路由选择:基于最佳匹配原则
#将Linux主机接入网络中
# 1. IP/MASK
# 2. 路由,默认网关
# 3. DNS服务器---主DNS服务器,次DNS服务器,第三DNS服务器
# 4. 主机名
#-------IP地址配置
#---静态分配
- ifcfg:ifconfig,route,netstat
- ip:link,addr,route,ss
- 配置文件:system-config-network-tui(setup)
CentOS7:
nmcli,nmtui
ifcfg命令配置
#-- 查看本机的活动网络接口配置
[root@nginx01 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.88.101 netmask 255.255.255.0 broadcast 192.168.88.255
inet6 fe80::b28c:edf9:5114:7241 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:fe:89:39 txqueuelen 1000 (Ethernet)
RX packets 203 bytes 19376 (18.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 195 bytes 50335 (49.1 KiB)
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 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
#-- 查看本机所有的网络接口配置
[root@nginx01 ~]# ifconfig -a
#-- 显示单个接口网络信息【ifconfig interface】
[root@nginx01 ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.88.101 netmask 255.255.255.0 broadcast 192.168.88.255
inet6 fe80::b28c:edf9:5114:7241 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:fe:89:39 txqueuelen 1000 (Ethernet)
RX packets 199 bytes 18822 (18.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 200 bytes 36528 (35.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# ifconfig interface IP/MASK [up|down]
# ifconfig interface IP netmask MASK [up|down]
# 给指定接口添加地址
[root@nginx01 ~]# ifconfig ens33:0 172.16.1.3/24
[root@nginx01 ~]# ifconfig ens33:0 172.16.1.3 netmask 255.255.255.0
# 启用混杂模式:[-]promisc
#---静态分配
#------------route路由管理命令
#查看路由
[root@nginx01 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
#默认网络路由条目
0.0.0.0 192.168.88.2 0.0.0.0 UG 100 0 0 ens33
#本地网络路由条目
192.168.88.0 0.0.0.0 255.255.255.0 U 100 0 0 ens3
#------添加路由
#---------------------------------------------------route add
route add [-net|-host] target [netmask Nm][gw Gw][[dev] If]
#本地网关必须与当前主机位于同一网络内
#-----添加主机路由
[root@nginx01 ~]# route add -host 172.16.1.3 gw 192.168.88.2 dev ens33
#-----添加网络路由
[root@nginx01 ~]# route add -net 172.16.1.0 netmask 255.255.255.0 gw 192.168.88.2 dev ens33
[root@nginx01 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.88.2 0.0.0.0 UG 100 0 0 ens33
172.16.1.0 192.168.88.2 255.255.255.0 UG 0 0 0 ens33
172.16.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
172.16.1.3 192.168.88.2 255.255.255.255 UGH 0 0 0 ens33
192.168.88.0 0.0.0.0 255.255.255.0 U 100 0 0 ens3
# 注:Flags标志位上U表示up,G表示gateway网关,H表示host主机路由
#-----添加默认网关
[root@nginx01 ~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.88.2
[root@nginx01 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.88.2 0.0.0.0 UG 0 0 0 ens3
[root@nginx01 ~]# route add default gw 192.168.88.2
[root@nginx01 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.88.2 0.0.0.0 UG 0 0 0 ens3
#---------------------------------------------------route add
#---------------------------------------------------route del
#删除主机路由
[root@nginx01 ~]# route del -host 172.16.1.3
# 网关地址 0.0.0.0 表示直连规则,当前记录对应的 Destination 跟本机在同一个网段,通信时不需要经过网关(路由器)。使用二层交换机通过MAC即可通信
[root@nginx01 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.88.2 0.0.0.0 UG 100 0 0 ens33
192.168.88.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
# 删除默认路由
[root@nginx01 ~]# route del default
#---------------------------------------------------route del
#------------route路由管理命令
#------------DNS服务器指定
#在/etc/resolv.conf中可以指定3个
[root@nginx01 ~]# vim /etc/resolv.conf
nameserver 8.8.8.8
#FQDN(fully qualified domain name)完全限定域名
正解:FQDN-->IP
dig -t A FQDN
[root@nginx01 ~]# dig -t A www.baidu.com
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.9 <<>> -t A www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56539
;; 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. 272 IN CNAME www.a.shifen.com.
www.a.shifen.com. 208 IN CNAME www.wshifen.com.
www.wshifen.com. 115 IN A 103.235.46.39
;; Query time: 70 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu May 26 22:51:07 CST 2022
;; MSG SIZE rcvd: 111
[root@nginx01 ~]# host -t A www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com is an alias for www.wshifen.com.
www.wshifen.com has address 103.235.46.39
反解:IP-->FQDN
dig -x IP
#------------DNS服务器指定
#---动态分配(DHCP)
DHCP(Dynamic Host Configuration Protocol)动态主机配置协议
#---动态分配(DHCP)
#-------IP地址配置
#netstat-显示网络连接,路由表,接口分析
netstat [address_family_options] [--tcp|-t] [--udp|-u]
[--udplite|-U] [--sctp|-S] [--raw|-w] [--listening|-l] [--all|-a]
[--numeric|-n] [--numeric-hosts] [--numeric-ports] [--numeric-users]
[--symbolic|-N] [--extend|-e[--extend|-e]] [--timers|-o] [--pro‐
gram|-p] [--verbose|-v] [--continuous|-c] [--wide|-W] [delay]
# -l:处于监听状态的连接
# -t:TCP协议相关连接
# -u:UDP协议相关连接
# -w: raw socket相关
# -a:所有状态
# -n:以数字形式显示IP和端口
# -e: 扩展格式显示信息
# -p:显示相关进程及PID
# 常用组合 -tan,-uan,-tnl,-unl
# netstat-显示路由表
netstat --route|-r [--numeric|-n]
# -r:显示内核路由表
# -n:数字格式显示
# netstat-显示接口统计信息
netstat --interfaces|-I|-i [--all|-a] [--extend|-e] [--verbose|-v]
[--program|-p] [--numeric|-n]
# 显示指定接口的统计信息
[root@nginx01 ~]# netstat -Iens33
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33 1500 466 0 0 0 368 0 0 0 BMRU
#显示所有接口统计数据
[root@nginx01 ~]# netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33 1500 489 0 0 0 381 0 0 0 BMRU
lo 65536 0 0 0 0 0 0 0 0 LRU
#显示已建立的TCP连接
[root@nginx01 ~]# netstat -tn
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 52 192.168.88.101:22 192.168.88.1:50688 ESTABLISHED
#显示已建立的UDP连接
[root@nginx01 ~]# netstat -un
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
#显示所有TCP连接
[root@nginx01 ~]# netstat -tan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 52 192.168.88.101:22 192.168.88.1:50688 ESTABLISHED
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
#显示所有UDP连接
[root@nginx01 ~]# netstat -uan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 127.0.0.1:323 0.0.0.0:*
udp6 0 0 ::1:323 :::*
#查看路由连接
[root@nginx01 ~]# netstat --route
以上是关于Linux学习-网络学习的主要内容,如果未能解决你的问题,请参考以下文章