热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux网络协议和管理·配置

Linux网络协议和管理配置网桥和交换机1网桥Bridge网桥(Bridge)也叫桥接器,是连接两个局域网的一种存储/转发设备,根据MAC地址表对数据帧进行转发,可隔离碰撞域 网桥将网络的多个网段在数

Linux网络协议和管理配置

网桥和交换机

1网桥Bridge

网桥(Bridge)也叫桥接器,是连接两个局域网的一种存储/转发设备,根据MAC地址表对数据帧进行转发,可隔离碰撞域
网桥将网络的多个网段在数据链路层连接起来,并对网络数据帧进行管理
优点:
过滤通信量
扩大了物理范围
提高了可靠性
可互连不同物理层、不同 MAC 子层和不同速率(如10 Mb/s 和 100 Mb/s 以太网)的局域网
缺点:
存储转发增加了时延
在MAC 子层并没有流量控制功能
具有不同 MAC 子层的网段桥接在一起时时延更大
网桥只适合于用户数不太多(不超过几百个)和通信量不太大的局域网,否则有时还会因传播过多的广播信息而产生网络拥塞。这就是所谓的广播风暴

2交换机switch:实现相同局域网主机通信

交换机是工作在OSI参考模型数据链路层的设备,外表和集线器相似
它通过判断数据帧的目的MAC地址,从而将数据帧从合适端口发送出去
交换机是通过MAC地址的学习和维护更新机制来实现数据帧的转发
工作原理:
(1)交换机根据收到数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中
(2)交换机将数据帧中的目的MAC地址同已建立的MAC地址表进行比较,以决定由哪个端口进行转发
(3)如数据帧中的目的MAC地址不在MAC地址表中,则向所有端口转发。这一过程称为泛洪(flood)
(4)广播帧和组播帧向所有的端口转发

集线器和交换机的比较

(1)交换机属于数据链路层设备,而集线器属于物理层设备
(2)集线器在转发帧时,不对传输介质进行检测,交换机在转发帧之前必须执行 CSMA/CD 算法。若在发送过程中出现碰撞,就必须停止发送和进行退避。所以交换机能隔离冲突,而集线器却只能增加冲突
(3) 交换机的每个端口可提供专用的带宽,而集线器的所有端口只能共享带宽
(4)集线器只能实现半双工传送,而交换机可支持全双工传送
(5)集线器和交换机都无法隔离广播域

路由器 router:实现不同局域网主机通信

为了实现路由,路由器需要做下列事情:
分隔广播域和冲突域
选择路由表中到达目标最好的路径
维护和检查路由信息
连接广域网
路由:把一个数据包从一个设备发送到不同网络里的另一个设备上去。这些工作依靠路由器来完成。
路由器只关心网络的状态和决定网络中的最佳路径。路由的实现依靠路由器中的路由表来完成

虚拟局域网VLAN

vlan原理
虚拟局域网 VLAN 是由一些局域网网段构成的与物理位置无关的逻辑组
这些网段具有某些共同的需求。每一个 VLAN 的帧都有一个明确的标识符,指明发送这个帧的工作站是属于哪一个 VLAN。虚拟局域网其实只是局域网给用户提供的一种服务,而并不是一种新型局域网
优点:
(1)更有效地共享网络资源。如果用交换机构成较大的局域网,大量的广播报文就会使网络性能下降。VLAN能将广播报文限制在本VLAN范围内,从而提升了网络的效能
(2)简化网络管理。当结点物理位置发生变化时,如跨越多个局域网,通过逻辑上配置VLAN即可形成网络设备的逻辑组,无需重新布线和改变IP地址等。这些逻辑组可以跨越一个或多个二层交换机
(3)提高网络的数据安全性。一个VLAN中的结点接收不到另一个VLAN中其他结点的帧

虚拟局域网的实现技术

(1)基于端口的VLAN
(2)基于MAC地址的VLAN
(3)基于协议的VLAN
(4)基于网络地址的VLAN

VLAN 标签各字段含义

TPID:Tag Protocol Identifier(标签协议标识符),2Byte,表示帧类型,取值为0x8100时表示IEEE 802.1Q的VLAN数据帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃,各设备厂商可以自定义该字段的值。当邻居设备将TPID值配置为非0x8100时, 为了能够识别这样的报文,实现互通,必须在本设备上修改TPID值,确保和邻居设备的TPID值配置一致
PRI:Priority,3bit,表示数据帧的802.1p(是IEEE 802.1Q的扩展协议)优先级。取值范围为0~7,值越大优先级越高。当网络阻塞时,交换机优先发送优先级高的数据帧
CFI:Canonical Format Indicator(标准格式指示位),1bit,表示MAC地址在不同的传输介质中是否以标准格式进行封装,用于兼容以太网和令牌环网。CFI取值为0表示MAC地址以标准格式进行封装,为1表示以非标准格式封装。在以太网中,CFI的值为0
VID:VLAN ID,12bit,表示该数据帧所属VLAN的编号。VLAN ID取值范围是0~4095。由于0和4095为协议保留取值,所以VLAN ID的有效取值范围是1~4094

OSI七层参考模型

第7层应用层—直接对应用程序提供服务,应用程序可以变化,但要包括电子消息传输

第6层表示层—格式化数据,以便为应用程序提供通用接口。这可以包括加密服务

第5层会话层—在两个节点之间建立端连接。此服务包括建立连接是以全双工还是以半双工的方式进行设置,尽管可以在层4中处理双工方式

第4层传输层—常规数据递送-面向连接或无连接。包括全双工或半双工、流控制和错误恢复服务

第3层网络层—本层通过寻址来建立两个节点之间的连接,它包括通过互连网络来路由和中继数据

第2层数据链路层—在此层将数据分帧,并处理流控制。本层指定拓扑结构并提供硬件寻址

第1层物理层—原始比特流的传输电子信号传输和硬件接口数据发送时,从第七层传到第一层,接受方则相反。

应用层……………….程序接口规范

表示层 ……………….对数据进行转换,加密,压缩

会话层 ……………….网络连接建立终止

传输层 ……………….保证数据传输的可靠性

网络层…………………路由器,防火墙、多层交换机

数据链路层 ……….网卡,网桥,交换机

物理层…………………中继器,集线器、网线、HUB

各层数据单元

传输层——数据段(Segment)

网络层——分组(数据包)(Packet)

数据链路层——数据帧(Frame)

物理层——比特(Bit)

TCP/IP模型

TCP三次握手

第一次握手:建立连接时,客户端发送syn包(syn=x)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

TCP四次挥手

1 发送断开连接的请求
2 确认,数据还没传完,继续发送
3 数据发送完毕,同意断开
4 确认断开连接

IP地址分类

IP地址包含网络号和主机号两部分,网络号代表一个子网络,主机号则表示该子网络下某一台具体的主机标号,IP地址根据功能和用途的不同可以划分为五类。
A 类地址:1 . 0 . 0 . 0 ~ 126 . 255 . 255 . 255,前 8 位为网络号,后 24 位为主机号
B 类地址:128 . 0 . 0 .0 ~ 191 . 255 . 255 . 255,前16位为主机号,后16位为主机号
C 类地址:192 . 0 . 0 . 0 ~ 223 . 255 . 255 . 255,前24位为网络号,后8位为主机号
D 类地址:224 . 0 . 0 .0 ~ 239 . 255 . 255 . 255
E 类地址:240 . 0 . 0 . 0 ~ 254 . 255 . 255 . 255
A、B、C三类地址是根据网络规模大小来分配给用户的,例如A类地址有24位的主机号,同一个网络下,一个 A 类地址可以容纳 2^24 - 2 = 16777213 台主机,但是A类地址一共只能分配 126 个网络(这里只是做一个理论上的运算,并不代表实际分配情况),所以这类地址一般分配给那些为数不多的大网络。D类地址用来多播,E类地址做保留地址
另外还有一些特殊地址:
①. 例如主机号全为 1 是该网络的广播地址(例如在一个C类地址的网络中,192. 192 . 192 . 255 , 网络号是前面三个字节, 主机号是后面的一个字节,8位全为1,那么这个地址则是 网络号位 192.192.192.0这个网络的广播地址)。其中 255 . 255 . 255 . 255也是主机所在网络的广播地址;
②. 主机号全为 0 则是该网络的网络地址;
③. 127 . 0 . 0 . 0 ~ 127 . 255 . 255 . 255是主机会送地址,通常用来做网络测试,调试主机与路由是否连接畅通;
④. 其中 10 . 0 . 0 . 0 ~ 10 . 255 . 255 . 255、172 . 16 . 0 . 0 ~ 172 . 31 . 255 . 255、192 . 168 . 0 . 0 ~ 192 . 168 . 255 . 255保留给内部网络使用。

TCP数据报格式

IP数据报格式

IPV4编制

IP地址计算公式

分类地址划分

划分子网

内核参数优化

网络配置

将Linux主机接入到网络,需要配置网络相关设置
一般包括如下内容:
主机名
IP/netmask
路由:默认网关
DNS服务器
主DNS服务器
次DNS服务器
第三个DNS服务器

CentOS 6 之前版本网卡名称

接口命名方式:CentOS 6
以太网:eth[0,1,2,…]
ppp:ppp[0,1,2,…]
网络接口识别并命名相关的udev配置文件:
/etc/udev/rules.d/70-persistent-net.rules
查看网卡:
dmesg |grep –i eth
ethtool -i eth0
卸载网卡驱动:
modprobe -r e1000
rmmod e1000
装载网卡驱动:
modprobe e1000

网络接口识别并命名相关的udev配置文件:

/etc/udev/rules.d/70-persistent-net.rules

[root@centos6|~]#cat /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:b3:73:a0", ATTR{type}=="1", KERNEL=="eth*", NAME="XXXXX"
# PCI device 0x8086:0x100f (e1000) (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:b3:73:a0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

修改网卡名称:方法一

1,修改配置文件
vim /etc/udev/rules.d/70-persistent-net.rules

2,查看网卡驱动名称

[root@centos6|~]#dmesg |grep -i eth0
e1000 0000:02:01.0: eth0: (PCI:66MHz:32-bit) 00:0c:29:b3:73:a0
e1000 0000:02:01.0: eth0: Intel(R) PRO/1000 Network Connection
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
eth0: no IPv6 routers present
8021q: adding VLAN 0 to HW filter on device eth0
e1000: eth0 NIC Link is Down
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
e1000 0000:02:01.0: eth0: (PCI:66MHz:32-bit) 00:0c:29:b3:73:a0
e1000 0000:02:01.0: eth0: Intel(R) PRO/1000 Network Connection
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
8021q: adding VLAN 0 to HW filter on device eth0
eth0: no IPv6 routers present
[root@centos6|~]#ethtool -i eth0
driver: e1000
version: 7.3.21-k8-NAPI
firmware-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

3,卸载网卡驱动

[root@centos6|~]#modprobe -r e1000
[root@centos6|~]# rmmod e1000

4,装载网卡驱动:

[root@centos6|~]# modprobe e1000修改网卡名称:方法二

1,禁用网卡

ip a 查看eth0网卡为UP
ip link set eth0 down 禁用
ip a 查看eth0网卡变为DOWN
ip link set eth0 name eth1
ip a
ip link set eth0 up
ip a

网络配置命令

静态指定:
ifconfig, route, netstat
ip: object {link, addr, route}, ss, tc
system-config-network-tui,setup

ifconfig命令
ifconfig [interface]
ifconfig -a
ifconfig IFACE [up|down]
ifconfig interface [aftype] options | address …
ifconfig IFACE IP/netmask [up]
ifconfig IFACE IP netmask NETMASK

[root@centos8|27|~]#ifconfig -a
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.1.150 netmask 255.255.0.0 broadcast 172.16.255.255
inet6 fe80::45d2:397a:c907:67b prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:a9:94:a5 txqueuelen 1000 (Ethernet)
RX packets 38131 bytes 3669374 (3.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2826 bytes 353823 (345.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@centos8 ~]#ifconfig eth0 10.0.0.68 netmask 255.255.0.0
[root@centos8 ~]#ifconfig eth0 0.0.0.0/0 #清除eth0上面的IP地址
[root@centos8 ~]#ifconfig eth0 down #启用和禁用网卡
[root@centos8 ~]#ifconfig eth0 up
[root@centos8 ~]#ifconfig eth0:1 172.16.0.8/24 #别名
[root@centos8 ~]#ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.8 netmask 255.0.0.0 broadcast 10.255.255.255
inet6 fe80::20c:29ff:fe45:a8a1 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:45:a8:a1 txqueuelen 1000 (Ethernet)
RX packets 813 bytes 75898 (74.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 563 bytes 76262 (74.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.0.8 netmask 255.255.255.0 broadcast 172.16.0.255
ether 00:0c:29:45:a8:a1 txqueuelen 1000 (Ethernet)
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 2 bytes 140 (140.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2 bytes 140 (140.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@centos8 ~]#ifconfig eth0:1 down 取消别名
[root@centos8 ~]#ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.8 netmask 255.0.0.0 broadcast 10.255.255.255
inet6 fe80::20c:29ff:fe45:a8a1 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:45:a8:a1 txqueuelen 1000 (Ethernet)
RX packets 864 bytes 80572 (78.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 601 bytes 81681 (79.7 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 2 bytes 140 (140.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2 bytes 140 (140.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

统计连接流量

[root@centos8 ~]#ifconfig -s
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 673005 0 0 0 672688 0 0
0 BMRU
lo 65536 70 0 0 0 70 0 0
0 LRU
[root@centos8 ~]#ifconfig -s eth0
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 673011 0 0 0 672694 0 0
0 BMRU

route命令

网关:一个主机想访问其他网络主机的必经之路

路由器的接口:网关接口

路由器的地址:网关地址

路由表管理命令
route -n
路由表主要构成:
Destination: 目标网络ID,表示可以到达的目标网络ID,0.0.0.0/0 表示所有未知网络,又称为默认路由,优先级最低
Genmask:目标网络对应的netmask
Iface: 到达对应网络,应该从当前主机哪个网卡发送出来
Gateway: 到达非直连的网络,将数据发送到临近(下一个)路由器的临近本主机的接口的IP地址,如果是直连网络,gateway是0.0.0.0
Metric: 开销cost,值越小,路由记录的优先级最高

添加:route add

route add [-net|-host|default] target [netmask Nm] [gw GW] [[dev] If]

删除: route del

route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]

范例:

#目标:192.168.1.3 网关:172.16.0.1
route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
#目标:192.168.0.0 网关:172.16.0.1
route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0
route add -net 192.168.8.0/24 dev eth1 metric 200
#默认路由,网关:172.16.0.1
route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
route add default gw 172.16.0.1
#目标:192.168.1.3 网关:172.16.0.1
route del -host 192.168.1.3
#目标:192.168.0.0 网关:172.16.0.1
route del -net 192.168.0.0 netmask 255.255.255.0

实现静态路由

思科

配置网址后:
输入systemctl restart network重启网络
1,网络环境规划
主机1-->交换机-->路由器R1->路由器R2-->路由器R3-->交换机-->主机2
2,两台主机 #g0/0#g0/1
主机01 192.168.1.1
=网关192.168.1.254
主机02 192.168.4.1
=网关192.168.4.254
3,两台交换机
4,三台路由器

第一个里程:路由器配置(接口地址配置)

R1 路由器
Router> en 命令提示符 用户模式提示符
Router#conf t 特权模式提示符 系统配置查看
Router(config)#int g0/0 配置模式提示符
g0/0接口配置
Router(config-if)#ip add 192.168.1.254 255.255.255.0
no shutdown
g0/1接口配置
ip add 192.168.2.1 255.255.255.0
no shutdown
检查确认:
CTRL+Z
show ip int br #只显示ip地址信息
Router#show ip int br
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0 192.168.1.254 YES manual up up
GigabitEthernet0/1 192.168.2.1 YES manual up down
Vlan1 unassigned YES unset administratively down down

R2

R2#show ip int br
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0 192.168.2.2 YES manual administratively down down
GigabitEthernet0/1 192.168.3.1 YES manual up down
Vlan1 unassigned YES unset administratively down down

R3

Router#
Router#show ip int br
Interface IP-Address OK? Method Status Protocol
GigabitEthernet0/0 192.168.3.2 YES manual up up
GigabitEthernet0/1 192.168.4.254 YES manual up up
Vlan1 unassigned YES unset administratively down down

R1路由表

192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.2.0/24 is directly connected, GigabitEthernet0/1
L 192.168.2.1/32 is directly connected, GigabitEthernet0/1
S 192.168.4.0/24 [1/0] via 192.168.2.2

路由配置
ip route 去往网络地址信息 网络掩码 去往目标的下一条接口地址
ip route 192.168.4.0 255.255.255.0 192.168.2.2

R2 路由表信息

S 192.168.1.0/24 [1/0] via 192.168.2.1
192.168.2.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.2.0/24 is directly connected, GigabitEthernet0/0
L 192.168.2.2/32 is directly connected, GigabitEthernet0/0
192.168.3.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.3.0/24 is directly connected, GigabitEthernet0/1
L 192.168.3.1/32 is directly connected, GigabitEthernet0/1
S 192.168.4.0/24 [1/0] via 192.168.3.2
路由配置
ip route 去往网络地址信息 网络掩码 去往目标的下一条接口地址
ip route 192.168.4.0 255.255.255.0 192.168.3.2
ip route 192.168.1.0 255.255.255.0 192.168.2.1

R3 路由表信息

192.168.3.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.3.0/24 is directly connected, GigabitEthernet0/0
L 192.168.3.2/32 is directly connected, GigabitEthernet0/0
192.168.4.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.4.0/24 is directly connected, GigabitEthernet0/1
L 192.168.4.254/32 is directly connected, GigabitEthernet0/1
S 192.168.1.0/24 [1/0] via 192.168.3.1
#有去4的的地址了,但是要联通要有去有回
路由配置
ip route 去往网络地址信息 网络掩码 去往目标的下一条接口地址
ip route 192.168.1.0 255.255.255.0 192.168.3.1

删除静态路由配置
no ip route 192.168.4.0 255.255.255.0 192.168.2.2

动态路由配置方法:

默认R1-R3路由表情况:
R1路由表:
192.168.1.0 =g0/0
192.168.2.0 =g0/1 R1 g0/1--> R2 g0/0
R2路由表:
192.168.2.0 =g0/0 R1 g0/1--> R2 g0/0
192.168.3.0 =g0/1 R3 g0/0--> R2 g0/1
R3路由表:
192.168.3.0 =g0/0 R3 g0/0--> R2 g0/1
192.168.4.0 =g0/1

R1动态路由配置:
route rip —指定配置使用什么路由协议
network 192.168.1.0 —宣告过程
network 192.168.2.0

R2动态路由配置:
route rip —指定配置使用什么路由协议
network 192.168.2.0 —宣告过程
network 192.168.3.0

R3动态路由配置:
route rip —指定配置使用什么路由协议
network 192.168.3.0 —宣告过程
network 192.168.4.0

配置动态路由

通过守护进程获取动态路由
安装quagga包,通过命令vtysh配置
支持多种路由协议:RIP、OSPF和BGP

netstat命令 基本被ss替代
-t: tcp协议相关
-u: udp协议相关
-w: raw socket相关
-l: 处于监听状态
-a: 所有状态
-n: 以数字显示IP和端口
-e:扩展格式
-p: 显示相关进程及PID

[root@centos7|17|~]#netstat -tn
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 52 192.168.247.147:22 192.168.247.1:61132 ESTABLISHED
只看监听状态的
[root@centos8|24|~]#netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN
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 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:49513 0.0.0.0:* LISTEN

显示应用程序使用哪个端口

[root@centos8|25|~]#netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN 1341/systemd-resolv
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 1956/dnsmasq
# lsof -i :22
显示所有
[root@centos8|31|~]#netstat -tuna
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:5355 0.0.0.0:* LISTEN
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 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:49513 0.0.0.0:* LISTEN
tcp 0 52 192.168.247.130:22 192

[root@centos8|36|~]#netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.247.2 0.0.0.0 UG 0 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
192.168.247.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

ip命令

ip link
数据链路层状态 网线
[root@centos8|42|~]#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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:a9:94:a5 brd ff:ff:ff:ff:ff:ff
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
link/ether 52:54:00:af:d6:59 brd ff:ff:ff:ff:ff:ff
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000
link/ether 52:54:00:af:d6:59 brd ff:ff:ff:ff:ff:ff
禁用网卡
[root@centos8|45|~]#ip link set eth0 down
启用
[root@centos8|45|~]#ip link set eth0 up
#网卡改名:
ip link set eth1 name wangnet
#增加逻辑地址
ip address add
[root@centos8|47|~]#ip address add 11.0.0.8/24 dev eth0
link:网络有效
host:同一台电脑有效
global:全局生效
#网卡别名
ip addr add 172.16.100.100/16 dev eth0 label eth0:0
ip addr del 172.16.100.100/16 dev eth0 label eth0:0 删除
#清除网络地址
ip addr flush dev eth0
ip地址和MAC地址对应关系
[root@centos8|50|~]#ip neigh
192.168.247.254 dev eth0 lladdr 00:50:56:ec:64:cd STALE
192.168.247.1 dev eth0 lladdr 00:50:56:c0:00:08 REACHABLE
192.168.247.2 dev eth0 lladdr 00:50:56:fc:c5:f9 STALE
192.168.247.147 dev eth0 lladdr 00:0c:29:87:be:8d STALE
fe80::5858:6fbb:f6b3:34ab dev eth0 lladdr 00:50:56:c0:00:08 STALE
[root@centos8|51|~]#arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.247.254 ether 00:50:56:ec:64:cd C eth0
192.168.247.1 ether 00:50:56:c0:00:08 C eth0
192.168.247.2 ether 00:50:56:fc:c5:f9 C eth0
192.168.247.147 ether 00:0c:29:87:be:8d C eth0

ip route 查看路由表

#添加路由:
ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主机路由:IP
网络路由:NETWORK/MASK
#添加网关:
ip route add default via GW dev IFACE
#删除路由:
ip route del TARGET
#显示路由:
ip route show|list
#清空路由表:
ip route flush [dev IFACE] [via PREFIX]

范例:

ip route add 192.168.0.0/24 via 172.16.0.1
ip route add 192.168.1.100 via 172.16.0.1
ip route add default via 172.16.0.1
ip route flush dev eth0
ss命令

netstat 通过遍历 /proc来获取 socket信息,ss 使用 netlink与内核 tcp_diag 模块通信获取 socket 信息
选项:

-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息

常用组合:

-tan, -tanl, -tanlp, -uan

范例:常见用法

#显示本地打开的所有端口
ss -l
#显示每个进程具体打开的socket
ss -pl
#显示所有tcp socket
ss -t -a
#显示所有的UDP Socekt
ss -u -a
#显示所有已建立的ssh连接
ss -o state established '( dport = :ssh or sport = :ssh )'
#显示所有已建立的HTTP连接
ss -o state established '( dport = :http or sport = :http )'
[root@centos8 ~]#ss -no state established '( dport = :21 or sport = :21 )'
Netid Recv-Q Send-Q
Local Address:Port Peer Address:Port

tcp 0 0
[::ffff:10.0.0.8]:21 [::ffff:10.0.0.7]:46638
timer:(keepalive,119min,0)
#列出当前socket详细信息
ss -s
[root@centos8|59|~]#ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:5355 0.0.0.0:*
LISTEN 0 128 0.0.0.0:111 0.0.0.0:*
网络配置文件 centos6

设置 说明
TYPE 接口类型;常见有的Ethernet, Bridge
NAME 此配置文件应用到的设备
DEVICE 设备名
HWADDR 对应的设备的MAC地址
UUID 设备的惟一标识
BOOTPROTO: 激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
IPADDR 指明IP地址
NETMASK 子网掩码,如:255.255.255.0
PREFIX 网络ID的位数, 如:24
GATEWAY 默认网关
DNS1 第一个DNS服务器地址
DNS2 第二个DNS服务器地址
DOMAIN 主机不完整时,自动搜索的域名后缀
ONBOOT 在系统引导时是否激活此设备
USERCTL 普通用户是否可控制此设备
PEERDNS
如果BOOTPROTO的值为“dhcp”,YES将允许dhcp server分配的dns服务
器信息直接覆盖至/etc/resolv.conf文件,NO不允许修改resolv.conf
NM_CONTROLLED NM是NetworkManager的简写,此网卡是否接受NM控制

/etc/sysconfig/network-scripts/ifcfg-IFACE
DEVICE=eth0 #针对哪个网卡
NAME=eth0 #链接名建议和网卡同名可省略
BOOTPROTO=dhcp #网卡地址时手工还是自动获取 static none都可以
IPADDR=10.0.0.8 IP
PREFIX=24 子网掩码可替换为NETMASK=255.255.255.0
GATEWAY=10.0.0.2 建议网关和IP在同一网段
DNS1=10.0.0.2 域名解析 180.76.76.76
DNS2=180.76.76.76 223.6.6.6
ONBOOT=yes 网卡启用还是禁用
[root@centos6|25|~]#service network restart 重启网络服务
DNS

[root@centos8|73|~]#cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.247.2

修改主机名

#centos6 之前版本
/etc/sysconfig/network
HOSTNAME=
#centos7 以后版
/etc/hostname
HOSTNAME
[root@centos8|78|~]#hostnamectl status
Static hostname: centos8
Icon name: computer-vm
Chassis: vm
Machine ID: 0ac210d0f71d49f588add06531a36c15
Boot ID: cafc3e24293a450cbbc55cf5cbe0d69d
Virtualization: vmware
Operating System: CentOS Linux 8 (Core)
CPE OS Name: cpe:/o:centos:centos:8
Kernel: Linux 4.18.0-147.3.1.el8_1.x86_64
Architecture: x86-64
[root@centos8|79|~]#hostnamectl set-hostname Centos8
[root@centos8|81|~]#vim /etc/hosts DNS

网卡别名

[root@centos8 ~]#cat /etc/sysconfig/network-scripts/ifcfg-eth0:1
DEVICE=eth0:1
BOOTPROTO=static
IPADDR=3.3.3.3
PREFIX=24
#物理自动获取 别名手动指定
多网卡绑定 bonding

共7种模式:0-6 Mode
Mode 0 (balance-rr): 轮询(Round-robin)策略,从头到尾顺序的在每一个slave接口上面发送
数据包。本模式提供负载均衡和容错的能力
Mode 1 (active-backup): 活动-备份(主备)策略,只有一个slave被激活,当且仅当活动的
slave接口失败时才会激活其他slave.为了避免交换机发生混乱此时绑定的MAC地址只有一个外部
端口上可见
Mode 3 (broadcast):广播策略,在所有的slave接口上传送所有的报文,提供容错能力

配置文件

/etc/sysconfig/network-scripts/ifcfg-bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=8
BONDING_OPTS="mode=1 miimon=100" 工作在哪种模式下
#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路
# 加进来两个网卡参与进来
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
# 加进来两个网卡参与进来
/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes

查看bond0状态:

/proc/net/bonding/bond0
删除bond0
ifconfig bond0 down
rmmod bonding
查看
[root@centos8|90|network-scripts]#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: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:a9:94:a5 brd ff:ff:ff:ff:ff:ff
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
link/ether 52:54:00:af:d6:59 brd ff:ff:ff:ff:ff:ff
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000
link/ether 52:54:00:af:d6:59 brd ff:ff:ff:ff:ff:ff
[root@centos8|91|network-scripts]#ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 1000baseT/Full
10000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 10000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: off
MDI-X: Unknown
Supports Wake-on: uag
Wake-on: d
Link detected: yes

删除bond设备

rm -rf bond
rm -rf eth1 eth2
ifconfig bond0 down
rmmod bonding

cetos6 service network restart

centos8

[root@centos7|20|~]#nmcli connection reload
[root@centos7|21|~]#nmcli connection up eth0

CentOS 7 以上版网络配置

CentOS 6之前,网络接口使用连续号码命名:eth0、eth1等,当增加或删除网卡时,名称可能会发生变

CentOS 7以上版使用基于硬件,设备拓扑和设置类型命名
改名
使用传统命名方式:改名
(1) 编辑/etc/default/grub配置文件
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
(2) 为grub2生成其配置文件
grub2-mkconfig -o /etc/grub2.cfg
(3) 重启系统
nmcli

修改配置文件执行生效

nmcli con reload
nmcli con up con-name

范例:

#查看帮助
nmcli con add help
#使用nmcli配置网络
nmcli con show
#显示所有活动连接
nmcli con show --active
#显示网络连接配置
nmcli con show "System eth0“
#显示设备状态
nmcli dev status
#显示网络接口属性
nmcli dev show eth0
#创建新连接default,IP自动通过dhcp获取
nmcli con add con-name default type Ethernet ifname eth0
#删除连接
nmcli con del default
#创建新连接static ,指定静态IP,不自动连接
nmcti con add con-name static ifname eth0 autoconnect no type Ethernet
ipv4.addresses 172.25.X.10/24 ipv4.gateway 172.25.X.254
#启用static连接配置
nmcli con up static
#启用default连接配置
nmcli con up default
#修改连接设置
nmcli con mod “static” connection.autoconnect no
nmcli con mod “static” ipv4.dns 172.25.X.254
nmcli con mod “static” +ipv4.dns 8.8.8.8
nmcli con mod “static” -ipv4.dns 8.8.8.8
nmcli con mod “static” ipv4.addresses “172.16.X.10/24 172.16.X.254”
nmcli con mod “static” +ipv4.addresses 10.10.10.10/16
#DNS设置存放在/etc/resolv.conf,PEERDNS=no 表示当IP通过dhcp自动获取时,dns仍是手动设
置,不自动获取等价于下面命令
nmcli con mod “system eth0” ipv4.ignore-auto-dns yes

查看网卡状态

[root@centos8|96|~]#nmcli device
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected Wired connection 1
virbr0 bridge connected virbr0
lo loopback unmanaged --
virbr0-nic tun unmanaged --
[root@centos8|97|~]#nmcli connection
NAME UUID TYPE DEVICE
Wired connection 1 353d5403-9fb0-4c63-a83b-078b508d1664 ethernet eth0
virbr0 c7371537-0880-4efa-9031-eb4363a145cf bridge virbr0
ens160 7072916a-f38a-44f4-9a1e-fdb191ba8561 ethernet --
改名
[root@centos8|104|network-scripts]#nmcli connection modify ens33 eth0
改地址:
nmcli con mod ifcfg**-*** 文件
ipv4.method manual BOOTPROTO=none
ipv4.method auto BOOTPROTO=dhcp
ipv4.addresses 192.168.2.1/24 IPADDR=192.168.2.1 PREFIX=24
ipv4.gateway 172.16.0.200 GATEWAY=192.0.2.254
ipv4.dns 8.8.8.8 DNS0=8.8.8.8
ipv4.dns-search example.com DOMAIN=example.com
ipv4.ignore-auto-dns true PEERDNS=no
connection.autoconnect yes ONBOOT=yes
connection.id eth0 NAME=eth0
connection.interface-name eth0 DEVICE=eth0

网络组Network Teaming(类似bonding)

centos7之后才支持

网桥(类似于交换机,隔离冲突域)

centos7 (两个网卡)一个桥接一个NAT
centos6(10.0.0.6/24)NAT
centos8(10.0.0.8/24)桥接
cetos6pingcentos8
把centos7配置成交换机用

配置实现网桥
工具包:bridge-utils,目前CentOS 8无此包


[root@centos7|29|~]#brctl show
#添加和删除网桥
brctl addbr | delbr br0
#添加和删除网桥中网卡
brctl addif | delif br0 eth0
brctl addif | delif br0 eth1
ip link set br0 up #启用网卡
ip a a 10.0.0.7/24 dev br0
启用生成树协议防止回环
brctl stp br0 on
brctl show
#查看CAM(content addressable memory内容可寻址存储器)表
brctl showmacs br0

写入文件创建网桥

#cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
STP=yes
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.0.100
PREFIX=24
cat /etc/sysconfig/network-scripts/ifcfg-br0-port0
TYPE=Ethernet
NAME=br0-port0
DEVICE=eth0
ONBOOT=yes
BRIDGE=br0
UUID=23f41d3b-b57c-4e26-9b17-d5f02dafd12d

删除br0

nmcli con down br0
rm /etc/sysconfig/network-scripts/ifcfg-br0*
nmcli con reload


版权声明:本文为qq_45414629原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_45414629/article/details/104083666
推荐阅读
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • 这篇文章 | 夕阳下的防火墙命令全解 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 过去查询Mysql的时候,都见3306对所有端口开放着,感觉不安全。netstat&nbsp;-anlp&nbsp;|&nbsp;grep&nbsp;mysqltcp&nbsp;0&am ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • 在CentOS 7上部署WebRTC网关Janus
    在CentOS 7上部署WebRTC网关Janus ... [详细]
  • 利用Apache构建高效稳定的Web服务器环境
    本文详细介绍了如何利用Apache构建高效稳定的Web服务器环境。首先,概述了Apache服务器的基本概念及其安装步骤,并深入探讨了相关配置文件的设置方法。接着,通过具体的实验环境示例,展示了服务端(域名:zhangpp63.cn,IP地址:192.168.1.63)和客户端的配置过程,确保读者能够全面理解并实际应用这些技术。此外,还提供了一些优化建议,以提高服务器的性能和稳定性。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • Vue + WangEditor 遇到 “无法读取未定义的属性 'menus'” 错误的解决方案 ... [详细]
author-avatar
XhiaoSai_263
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有