一:了解网络的基础概念
1:ip概念
ip地址:就是计算机在网络中的ip地址,计算机与计算机之间都是通过ip地址来进行访问的
ip地址又分为公网ip地址和私网ip地址
公网ip地址:就是互联网中的ip地址
私网ip地址:面向内部的ip地址
2:子网掩码
就是用于来划分ip属于哪个网段的(网络部分),有多少个ip地址(主机部分)
3:网关
就是不同网段之间沟通的桥梁,如果要访问不同的网段,就必须通过这个网关出去
4:dns
域名解析用的,ip对应一个域名,有时,因为ip地址不好记,域名好记,就通过访问域名就能访问到页面
,没有dns的话,就不能通过域名来访问了
二:linux中网络设备命令的规则
1:传统方式命名
eth0;eth1这些以eth开头的;缺点就是:系统启动时,会根据哪张网卡先被加载来命令,一但之前的网卡有ip地址的话,如果后被加载的话,那么这个ip地址就没有用了,所配置的服务就不会生效了
2:流行的命名
1)设备开头
en:是以太网的设备
wl:无线局域网设备
ww:无线广域网设备
2)设备的类型
s:就是热插拔的类型,就是在开机的时候,可以进行插拔(就是可以手动的添加网卡),并且系统没有启动
o:就是板载设备,就是焊在了主板上,服务器上
p:pcie插槽的
ens160:是以太网的设备,后面的数字是随机的
总结:就是传统的网卡,如果服务器没有启动的话,且不修改ip的话,就可以使用传统的方式
三:网络的管理
1:ifconfig命令
1)查看网络设备信息
[root@server /]# ifconfig ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.20.10 netmask 255.255.255.0 broadcast 192.168.20.255 inet6 fe80::20c:29ff:fe6c:7db6 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:6c:7d:b6 txqueuelen 1000 (Ethernet) RX packets 703 bytes 63295 (61.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0
ifconfig默认只能查看到哪些网卡是已经启动了的
使用ifconfig -a 可以查看到所有的网络设备(无论是否启动,都可以看得到)
2)管理设备
#启动设备 [root@server ~]# ifconfig ens160 up #关闭设备 [root@server ~]# ifconfig ens160 down
3)配置ip地址(临时配置的)
[root@server ~]# ifconfig ens224 192.168.10.10/24
重启的话,这个ip地址就没有了 up一下,就没有了
2:ip命令
1)查看网络设备的信息
[root@server ~]# ip link 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:0c:29:6c:7d:b6 brd ff:ff:ff:ff:ff:ff altname enp3s0 3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:0c:29:6c:7d:c0 brd ff:ff:ff:ff:ff:ff altname enp19s0 [root@server ~]#
只能看到网卡设备的状态,信息,不能看到ip地址
2)管理网络设备
#关闭网络设备 [root@server ~]# ip link set ens224 down #开启网络设备 [root@server ~]# ip link set ens224 up
3)配置ip地址
#添加ip地址 [root@server ~]# ip address add 192.168.10.100/24 dev ens224
添加多个ip地址
[root@server ~]# ip address add 192.168.10.101/24 dev ens224 #ifconfig只能看到一个设备的一个ip地址,此时,ip命令可以看到一个设备上的多个ip地址 [root@server ~]# ip address show ens224 3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0c:29:6c:7d:c0 brd ff:ff:ff:ff:ff:ff altname enp19s0 inet 192.168.10.100/24 scope global ens224 valid_lft forever preferred_lft forever inet 192.168.10.101/24 scope global secondary ens224 valid_lft forever preferred_lft forever [root@server ~]#
删除ip地址
[root@server ~]# ip address del 192.168.10.101/24 dev ens224 [root@server ~]# ip address show ens224 3: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0c:29:6c:7d:c0 brd ff:ff:ff:ff:ff:ff altname enp19s0 inet 192.168.10.100/24 scope global ens224 valid_lft forever preferred_lft forever [root@server ~]#
3:nmcli命令
上面的都是临时修改的操作,永久修改的操作要使用nmcli命令才行
红帽9的存放网卡的配置文件:
[root@server system-connections]# pwd /etc/NetworkManager/system-connections
1:添加网卡的配置文件
就是先在外面添加网卡设备,然后再手动的创建一个网卡的配置文件
[root@server /]# nmcli connection add con-name ens224 ifname ens224 type ethernet autoconnect yes
自动的创建网络的配置文件,就是如果是dhcp模式的,就可以,不是dhcp的话,也能自动的创建配置文件,只是会卡主
[root@server system-connections]# nmcli device up ens224 ^C错误:nmcli 被信号 中断 (2) 终止了 错误:连接激活失败:(0) 未给出原因。 [root@server system-connections]# nmcli connection show NAME UUID TYPE DEVICE ens224 1d67bd8c-2708-43cd-a6ac-9881ac38f1d0 ethernet ens224 ens160 36089308-d7e2-3902-b3e9-eddfc2a57d2e ethernet ens160
不是dhcp的话,就会显示黄色的
2:配置Ip地址
[root@server /]# nmcli connection modify ens224 ipv4.method manual ipv4.addresses 192.168.20.20/24 ipv4.gateway 192.168.20.2 ipv4.dns 8.8.8.8 [root@server /]# nmcli connection up ens224 连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/6) [root@server /]#
就是以命令的方式来配置ip的话,还需要up一下才生效
如果直接修改配置文件的话
[ipv4] address1=192.168.20.21/24,192.168.20.2 dns=8.8.8.8; method=manual [root@server system-connections]# nmcli connection reload [root@server system-connections]# nmcli connection up ens224 连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/8)
这样就能显示已经被修改的Ip地址了
3)添加多个ip地址和删除添加多个地址
[root@server system-connections]# nmcli connection modify ens224 +ipv4.addresses 192.168.20.23/24 删除这个ip地址 [root@server system-connections]# nmcli connection modify ens224 -ipv4.addresses 192.168.20.23/24 [root@server system-connections]# nmcli connection up ens224
4:删除网络的配置文件
[root@server /]# nmcli connection delete ens224
5:查看设备的状态
[root@server /]# nmcli device status DEVICE TYPE STATE CONNECTION ens160 ethernet 已连接 ens160 ens224 ethernet 已连接 ens224 lo loopback 未托管 -- [root@server /]#
6:断开网卡与配置文件的连接和启动与配置文件的连接
[root@server /]# nmcli device down ens224 成功断开设备 "ens224"
启动就是up
4:路由管理
1:查看路由表
[root@server /]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.20.2 0.0.0.0 UG 100 0 0 ens160 192.168.20.0 0.0.0.0 255.255.255.0 U 100 0 0 ens160 [root@server /]#
这个目的地址0.0.0.0代表着去往所有的地址都行
2:添加路由
添加一个默认的路由
[root@server /]# ip route default via 192.168.20.2 dev ens160 proto static metric 100 default via 192.168.20.2 dev ens224 proto static metric 101 192.168.20.0/24 dev ens160 proto kernel scope link src 192.168.20.10 metric 100 192.168.20.0/24 dev ens224 proto kernel scope link src 192.168.20.30 metric 101 [root@server /]# ip route add default via 192.168.20.254 dev ens224 [root@server /]# ip route default via 192.168.20.254 dev ens224 default via 192.168.20.2 dev ens160 proto static metric 100 default via 192.168.20.2 dev ens224 proto static metric 101 192.168.20.0/24 dev ens160 proto kernel scope link src 192.168.20.10 metric 100 192.168.20.0/24 dev ens224 proto kernel scope link src 192.168.20.30 metric 101 [root@server /]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.20.254 0.0.0.0 UG 0 0 0 ens224 0.0.0.0 192.168.20.2 0.0.0.0 UG 100 0 0 ens160 0.0.0.0 192.168.20.2 0.0.0.0 UG 101 0 0 ens224 192.168.20.0 0.0.0.0 255.255.255.0 U 100 0 0 ens160 192.168.20.0 0.0.0.0 255.255.255.0 U 101 0 0 ens224 [root@server /]#
ip route和route -n都能查看到路由表
添加一个指定主机出去的路由
就是访问目的主机必须从这个网关出去才行,也就是下一跳
[root@server /]# route add -host 10.0.0.20 gw 192.168.20.254 dev ens224
也就是要去访问10.0.0.10这个地址的话,必须要经过192.168.20.254这个地址才行
添加一个指定网段的路由
[root@server /]# route add -net 12.0.0.0/24 gw 192.168.20.2 dev ens224 [root@server /]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.20.254 0.0.0.0 UG 0 0 0 ens224 0.0.0.0 192.168.20.2 0.0.0.0 UG 100 0 0 ens160 0.0.0.0 192.168.20.2 0.0.0.0 UG 101 0 0 ens224 10.0.0.10 192.168.20.254 255.255.255.255 UGH 0 0 0 ens224 12.0.0.0 192.168.20.2 255.255.255.0 UG 0 0 0 ens224 192.168.20.0 0.0.0.0 255.255.255.0 U 100 0 0 ens160 192.168.20.0 0.0.0.0 255.255.255.0 U 101 0 0 ens224 [root@server /]#
当然,添加路由,这个网关也一定要是自己能够访问到的才行
四:三种模式
1:nat模式
就是能够去访问外网的
nat虚拟设备:就是将虚拟机的ip地址转换成主机的地址才去上网,就是将私网地址转换成公网的地址去访问外网
就是与vmnet8相连,就是能够是本机ping得了虚拟机,虚拟机内部能够访问外网,但是外网访问不了内网,因为,没有公网转换成私网地址的
,所以就算是vmnet8断开了,虚拟机也能访问外网
2:仅主机模式
就是用于内部通信用的,不能访问外网
因为交换机没有连接上这个物理网卡,所以访问不了外网,只能用于内部的通信
3:桥接模式
就是直接将虚拟机桥接到物理网卡上面去了,虚拟机的网络地址与真机的网络地址是属于同一个网段的
也就是,虚拟机与主机处于同一个网段
1)配置桥接模式
就是先把虚拟网络编辑器的桥接模式连接到物理网卡上面去
[root@server /]# nmcli connection modify ens224 ipv4.method manual ipv4.addresses 192.168.0.100/24 ipv4.gateway 192.168.0.1 ipv4.dns 192.168.1.1
地址处于同一个网段上,网关和dns与真机保持一致
这样就能访问外网了
五:监听端口
存放端口的配置文件/etc/service
1:netstat命令
netstat则是基于/proc/net/tcp获取信息
[root@server /]# netstat -pant Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 966/sshd: /usr/sbin tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 964/cupsd tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 1501/sshd: root@pts tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN 7323/sshd: root@pts tcp 0 280 192.168.20.10:22 192.168.20.1:65170 ESTABLISHED 7319/sshd: root [pr
-p:就是显示pid和命令
-a:显示所有的套接字
-n:以数字的形式显示端口和主机名
-t:显示tcp套接字
2:ss命令
它是从内核读取网络的信息,比较的快
[root@server /]# ss -pant State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=966,fd=3)) LISTEN 0 128 127.0.0.1:631 0.0.0.0:* users:(("cupsd",pid=964,fd=7)) LISTEN 0 128 127.0.0.1:6010 0.0.0.0:* users:(("sshd",pid=1501,fd=9)) LISTEN 0 128 127.0.0.1:6011 0.0.0.0:* users:(("sshd",pid=7323,fd=9)) ESTAB 0 68 192.168.20.10:22 192.168.20.1:65170 users:(("sshd",pid=7323,fd=4),("sshd",pid=7319,fd=4)) ESTAB 0 0 192.168.20.10:22 192.168.20.1:64303 users:(("sshd",pid=1501,fd=4),("sshd",pid=1473,fd=4)) LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=966,fd=4)) LISTEN 0 128 [::1]:631 [::]:* users:(("cupsd",pid=964,fd=6)) LISTEN 0 128 [::1]:6010 [::]:* users:(("sshd",pid=1501,fd=8)) LISTEN 0 128 [::1]:6011 [::]:* users:(("sshd",pid=7323,fd=8)) [root@server /]#
其中的local是0.0.0.0的话,就代表着所有的ip地址都可以访问
所以的话,在执行的效率上ss的速度比netstat的速度更快
注意的点:
就是检测你的dns是否正确的话,使用nslookup 域名 看能否成功
修改主机名,hostnamectl hostname 主机名,bash一下就可以修改了