SUSE linux 15的网络管理

news2024/11/26 16:28:18

1 手工配置网络

wicked提供了一种新的网络配置框架。自SUSE 12起,SUSE使用了新的网络管理工具wicked,这个是区别与其他常见发行版的。常见的发行版目前大多使用的是NetworkManager服务进行网络管理。

1.1 wicked网络配置

传统网络接口管理面临的挑战之一是网络管理的不同层被混杂成一个脚本,或者最多两个不同的脚本。这些脚本以一种没有明确定义的方式相互交互。这会导致不可预测的问题、模糊的约束和约定等。正在使用的地址配置协议是通过dhcpcd等守护进程实现的,这些守护进程与基础设施的其余部分交互相当差。引入了需要大量udev支持的流行的接口命名方案,以实现接口的持久识别。

wicked的思想是通过几种方式来分解问题。它们都不是完全新颖的,但是尝试将来自不同项目的想法结合在一起有望创造出更好的整体解决方案。

一种方法是使用客户端/服务器模型。这允许wicked为诸如地址配置之类的东西定义标准化的设施,这些设施与整体框架很好地集成在一起。例如,使用特定的地址配置,管理员可能会请求通过DHCP或IPv4 zeroconf配置接口。在这种情况下,地址配置服务只是从其服务器获取租约并将其传递给安装请求的地址和路由。

分解问题的另一种方法是强制分层方面。对于任何类型的网络接口,都可以定义一个dbus服务来配置网络接口的设备层——VLAN、网桥、绑定或半虚拟化设备。通用功能(例如地址配置)由位于这些设备特定服务之上的联合服务实现,而无需专门实现它们。wicked框架通过使用各种dbus服务来实现这两个方面,这些服务根据其类型附加到网络接口上。这是wicked中当前对象层次结构的粗略概述。

每个网络接口都通过/org/opensuse/Network/Interfaces的子对象表示。子对象的名称由其ifindex给出。例如,通常获取ifindex1的环回接口是/org/opensuse/Network/Interfaces/1,注册的第一个以太网接口是/org/opensuse/Network/Interfaces/2。

每个网络接口都有一个与之关联的“类”,用于选择它支持的dbus接口。默认情况下,每个网络接口都属于netif类,wickedd将自动附加所有与此类兼容的接口。在当前的实现中,这包括以下接口:

  • org.opensuse.Network.Interface:通用网络接口功能,例如链路的启用或停用,分配MTU等。
  • org.opensuse.Network.Addrconf.ipv4.dhcp
  • org.opensuse.Network.Addrconf.ipv6.dhcp
  • org.opensuse.Network.Addrconf.ipv4.auto:DHCP,IPv4等地址服务的配置。

除此之外,网络接口可能需要或提供特殊的配置机制。例如,对于以太网设备,您应该能够控制链路速度、校验和卸载等。为此,以太网设备有一个自己的类,称为netif-ethernet,它是netif的子类。因此,分配给以太网接口的dbus接口包括上面列出的所有服务,以及仅对属于netif-ethernet类的对象可用的org.opensuse.Network.Ethernet服务。

类似地,存在用于接口类型的类,如网桥、VLAN、绑定或InfiniBand。您如何与需要首先创建的VLAN(实际上是位于以太网设备顶部的虚拟网络接口)之类的接口进行交互?为此,wicked定义了factory接口,例如org.opensuse.Network.VLAN.Factory。这样的factory接口提供了一个单一的功能,可以让您创建所请求类型的接口。这些factory接口附加到/org/opensuse/Network/Interfaces列表节点。

1.1.1 wicked架构和特性
clip_1.png
  • 用于解析SUSE风格的后端配置文件/etc/sysconfig/network
  • 以XML文件形式的后端网络接口配置
  • 启动和关闭“正常”网络接口,例如以太网或InfiniBand、VLAN、网桥、绑定、tun、tap、dummy、macvlan、macvtap、hsi、qeth、iucv和无线(目前仅限于一个wpa-psk/eap网络)设备。
  • 内建的DHCPv4和DHCPv6客户端
  • nanny守护进程(默认启用)有助于在设备可用(接口热插拔)时自动启动已配置的接口,并在检测到链路(运营商)时设置IP配置。
  • wicked被部署到集成到systemd的一组DBus服务中。因此通过systemctl可以管理wicked。
1.1.2 使用wicked

在openSUSE Leap上,wicked默认运行在桌面或服务器硬件上。NetworkManager默认运行在移动硬件上。如果要检查当前启用的内容以及它是否正在运行,查看network的状态:

SUSE15:~ # systemctl status network
● NetworkManager.service - Network Manager
     Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor pre>
    Drop-In: /usr/lib/systemd/system/NetworkManager.service.d
             └─NetworkManager-ovs.conf
     Active: active (running) since Wed 2021-08-18 15:08:09 CST; 7h ago
       Docs: man:NetworkManager(8)
   Main PID: 1182 (NetworkManager)
      Tasks: 4 (limit: 2303)
     CGroup: /system.slice/NetworkManager.service
             ├─1182 /usr/sbin/NetworkManager --no-daemon
lines 1-10...skipping...
...

如果wicked开启了,可以看到wicked管理了网络接口

SUSE15:~ # systemctl status wicked
● wicked.service - wicked managed network interfaces
     Loaded: loaded (/usr/lib/systemd/system/wicked.service; enabled; vendor preset: disabled)
     Active: active (exited) since Wed 2021-08-18 15:22:31 CST; 7h ago
    Process: 2425 ExecStart=/usr/sbin/wicked --systemd ifup all (code=exited, status=0/SUCCESS)
   Main PID: 2425 (code=exited, status=0/SUCCESS)

Aug 18 15:22:16 SUSE15 systemd[1]: Starting wicked managed network interfaces...
Aug 18 15:22:31 SUSE15 wicked[2425]: lo              up
Aug 18 15:22:31 SUSE15 wicked[2425]: eth0            up
Aug 18 15:22:31 SUSE15 wicked[2425]: eth1            up
Aug 18 15:22:31 SUSE15 systemd[1]: Finished wicked managed network interfaces.

如果正在运行其他的服务(例如,NetworkManager)并且想切换到wicked,首先停止正在运行的服务,然后启用wicked:

SUSE15:~ # systemctl is-active network && systemctl stop network
SUSE15:~ # systemctl enable --force wicked

这两条命令开启了wicked服务,并创建了一个network.service软链接,链接到wicked.service。并且在下次重启时启动network。

开启服务器进程

SUSE15:~ # systemctl start wickedd

启动wickedd(主服务器)和相关的请求:

SUSE15:~ # /usr/lib/wicked/bin/wickedd-auto4 --systemd --foreground
SUSE15:~ # /usr/lib/wicked/bin/wickedd-dhcp4 --systemd --foreground
SUSE15:~ # /usr/lib/wicked/bin/wickedd-dhcp6 --systemd --foreground
SUSE15:~ # /usr/sbin/wickedd --systemd --foreground
SUSE15:~ # /usr/sbin/wickedd-nanny --systemd --foreground

然后启动网络

SUSE15:~ # systemctl start wicked

可以配置wicked的debug信息,在文件/etc/sysconfig/network/config中配置:

#debug所有信息,或者部分信息,下面两行二选一
WICKED_DEBUG="all"

WICKED_DEBUG="all,-dbus,-objectmodel,-xpath,-xml"
wicked命令的使用:
  1. 查看接口信息
SUSE15:~ # wicked show all
lo              up
      link:     #1, state up
      type:     loopback
      config:   compat:suse:/etc/sysconfig/network/ifcfg-lo
      leases:   ipv4 static granted
      leases:   ipv6 static granted
      addr:     ipv4 127.0.0.1/8 [static]
      addr:     ipv6 ::1/128 [static]

eth0            up
      link:     #2, state up, mtu 1500
      type:     ethernet, hwaddr 00:0c:29:76:10:2c
      config:   compat:suse:/etc/sysconfig/network/ifcfg-eth0
      leases:   ipv4 dhcp granted
      leases:   ipv6 dhcp requesting
      addr:     ipv4 192.168.100.39/24 [dhcp]
      route:    ipv4 default via 192.168.100.1 proto dhcp
      route:    ipv4 default via 192.168.100.1 metric 20101 proto dhcp

eth1            up
      link:     #3, state up, mtu 1500
      type:     ethernet, hwaddr 00:0c:29:76:10:36
      config:   compat:suse:/etc/sysconfig/network/ifcfg-eth1
      addr:     ipv4 192.168.19.145/24
      route:    ipv4 default via 192.168.19.145 metric 20100 proto static
SUSE15:~ # wicked show eth1
eth1            up
      link:     #3, state up, mtu 1500
      type:     ethernet, hwaddr 00:0c:29:76:10:36
      config:   compat:suse:/etc/sysconfig/network/ifcfg-eth1
      addr:     ipv4 192.168.19.145/24
      route:    ipv4 default via 192.168.19.145 metric 20100 proto static

详细信息和省略信息

SUSE15:~ # wicked show --verbose eth1
eth1            up
      link:     #3, state up, mtu 1500
      type:     ethernet, hwaddr 00:0c:29:76:10:36
      control:  none
      config:   compat:suse:/etc/sysconfig/network/ifcfg-eth1,
                uuid: b8e31353-9465-5ba9-a034-7bdca453eb58
      addr:     ipv6 fe80::9159:a10a:57b:ddf4/64 scope link flags noprefixroute
      addr:     ipv4 192.168.19.145/24 brd 192.168.19.145 scope universe label eth1
      route:    ipv4 0.0.0.0/0 via 192.168.19.145 dev eth1 type unicast table main scope universe protocol static priority 20100
      route:    ipv4 192.168.19.0/24 type unicast table main scope link protocol kernel pref-src 192.168.19.145 priority 100
      route:    ipv6 fe80::/64 type unicast table main scope universe protocol kernel priority 100
SUSE15:~ # wicked show --brief eth1
eth1            up
  1. 查看接口信息(xml输出格式)
SUSE15:~ # wicked show-xml eth0
<object path="/org/opensuse/Network/Interface/2">
  <interface>
    <name>eth0</name>
    <index>2</index>
    <status>ready, device-up, link-up, network-up, arp, broadcast, multicast</status>
    <link-type>ethernet</link-type>
    <mtu>1500</mtu>
    <txqlen>1000</txqlen>
    <client-state>
      <control>
        <persistent>false</persistent>
        <usercontrol>false</usercontrol>
      </control>
      <config>
        <origin>compat:suse:/etc/sysconfig/network/ifcfg-eth0</origin>
        <uuid>37958523-d28f-576c-a241-f6a03f615dbd</uuid>
        <owner-uid>4294967295</owner-uid>
      </config>
    </client-state>
    <addresses>
      <assigned-address>
        <local>fe80::ea3f:de00:414d:7a3/64</local>
        <scope>link</scope>
        <flags>640</flags>
      </assigned-address>
      <assigned-address>
        <local>192.168.100.39/24</local>
        <broadcast>192.168.100.255</broadcast>
        <scope>universe</scope>
        <flags>512</flags>
        <label>eth0</label>
        <cache-info>
          <preferred-lifetime>258665</preferred-lifetime>
          <valid-lifetime>258665</valid-lifetime>
        </cache-info>
        <owner>dhcp</owner>
      </assigned-address>
    </addresses>
    <routes>
      <assigned-route>
        <destination>0.0.0.0/0</destination>
        <nexthop>
          <gateway>192.168.100.1</gateway>
          <device>eth0</device>
        </nexthop>
        <kern>
          <table>main</table>
          <type>unicast</type>
          <scope>universe</scope>
          <protocol>dhcp</protocol>
        </kern>
        <metrics/>
      </assigned-route>
      <assigned-route>
        <destination>0.0.0.0/0</destination>
        <priority>20101</priority>
        <nexthop>
          <gateway>192.168.100.1</gateway>
          <device>eth0</device>
        </nexthop>
        <kern>
          <table>main</table>
          <type>unicast</type>
          <scope>universe</scope>
          <protocol>dhcp</protocol>
        </kern>
        <metrics/>
      </assigned-route>
      <assigned-route>
        <destination>192.168.100.0/24</destination>
        <pref-source>192.168.100.39</pref-source>
        <priority>101</priority>
        <kern>
          <table>main</table>
          <type>unicast</type>
          <scope>link</scope>
          <protocol>kernel</protocol>
        </kern>
        <metrics/>
      </assigned-route>
      <assigned-route>
        <destination>fe80::/64</destination>
        <priority>101</priority>
        <kern>
          <table>main</table>
          <type>unicast</type>
          <scope>universe</scope>
          <protocol>kernel</protocol>
        </kern>
        <metrics/>
      </assigned-route>
    </routes>
...
  1. 启动或关闭接口
SUSE15:~ # wicked ifdown eth0
eth0            device-ready
SUSE15:~ # wicked ifup eth0
eth0            up
1.1.3 Nanny

Nanny是一个事件和策略驱动的守护进程,负责异步或主动提供的场景,例如热插拔设备。因此,nanny守护进程有助于启动或重新启动延迟或暂时消失的设备。Nanny监控设备和链路的变化,并集成当前策略集定义的新设备。即使ifup由于指定的超时限制已经退出,Nanny也会继续设置。
nanny默认为开启状态,在/etc/wicked/common.xml文件中可以进行定义:

<config>
  ...
  <use-nanny>true</use-nanny>
</config>
1.1.4 处理增量更改

使用wicked,不需要实际取下接口来重新配置它(除非内核需要它)。例如,将另一个IP地址或路由添加到静态配置网络接口,将IP地址添加到接口定义中,并执行另一个“ifup”操作。服务器仅更新那些已更改的设置。这适用于链路级选项,例如设备MTU或MAC地址,以及网络级设置,例如地址、路由,甚至地址配置模式。

1.1.5 wicked扩展:地址配置

wicked被设计为可使用shell脚本进行扩展。这些扩展可以在config.xml文件中定义。目前支持下面几种扩展:

  1. 链路配置:这些脚本负责根据客户端提供的配置设置设备的链路层,并再次将其拆除。
  2. 地址配置:这些脚本负责管理设备的地址配置。通常地址配置和DHCP是通过wicked自身在管理,但可以通过扩展来实现。
  3. 防火墙扩展:这些脚本负责应用防火墙规则。

防火墙扩展的配置文件是/etc/server.xml

<dbus-service interface="org.opensuse.Network.Firewall">
  <action name="firewallUp" command="/etc/wicked/extensions/firewall up"/>
  <action name="firewallDown" command="/etc/wicked/extensions/firewall down"/>
  <!-- default environment for all calls to this extension script -->
  <putenv name="WICKED_OBJECT_PATH" value="$object-path"/>
  <putenv name="WICKED_INTERFACE_NAME" value="$property:name"/>
  <putenv name="WICKED_INTERFACE_INDEX" value="$property:index"/>
</dbus-service>

1.2 IP地址设置

在openSUSE Leap中,永久修改网络配置最直接方式还是直接修改/etc/sysconfig/network中相关接口的配置,然后再通过wicked命令来应用配置。网卡的参数和CentOS有较大的差异,可以参考模板文件ifcfg.template。这里列举最常用的选项:

启用协议
## Type:    list(static,dhcp,dhcp4,dhcp6,autoip,dhcp+autoip,6to4,none)
## Default: static
#
# With BOOTPROTO you can choose in which mode the interface will be set up:
# - static:      Set up static address(es)
# - dhcp:        Start a dhcp client (IPV4 and IPv6) on that interface.
# - dhcp4:       Start a dhcp client (IPv4 only) on that interface.
# - dhcp6:       Start a dhcp client (IPv6 only) on that interface.
# - autoip:      Automatic search for a free address and assign it statically.
# - dhcp+autoip: Try dhcp4 and use autoip if dhcp fails.
# - 6to4:        Set up ipv6 over ipv4 tunnel (see man ifcfg-tunnel)
# - none:        Do not set up the link or ip, a (bonding) master will do it.
# If you use dhcp or autoip you may additionally specify static address(es).
#
BOOTPROTO=
IP地址及掩码
## Type:    string
## Default: ""
#
# If using a static configuration you have to set an IP address and a netmask or prefix length. The following examples are equivalent:
#
# 1) IPADDR=192.168.1.1/24     # NETMASK and PREFIXLEN will be ignored
# 2) IPADDR=192.168.1.1
#    PREFIXLEN=24              # NETMASK will be ignored
# 3) IPADDR=192.168.1.1
#    NETMASK=255.255.255.0
#
# For multiple addresses use this variable multiple times and extend them with different suffixes. For example IPADDR_1=, IPADDR_2=. See section 'Multiple addresses' in manpage ifcfg).
#
IPADDR=


## Type:    string
## Default: ""
#
# Set the network mask for the ip address. This variable will be ignored if a prefixlength is set in variable PREFIXLEN in IPADDR.
# For multiple addresses use the same suffixes as with IPADDR.
#
# Note: Deprecated IPv4 only variable.
#
NETMASK=

## Type:    integer(0,64)
## Default: ""
#
# Set the prefixlength of the ip address. This variable will be ignored if a prefixlength is set in variable IPADDR.
# For multiple addresses use the same suffixes as with IPADDR.
#
PREFIXLEN=
接口名称
## Type:    string
## Default: ""
#
# This string is used as description of the device in YaST.
# This variable is not used in ifup and friends.
#
NAME=
接口启动模式
## Type: list(auto,hotplug,ifplugd,nfsroot,manual,off,onboot)
## Default: auto
#
# STARTMODE tells ifup when a interface should be set up. Possible values are:
# - auto:    start it as soon as the interface is available. Either when booting or when a device is plugged or initialized at runtime
# - hotplug: alias for auto, only difference is that configurations with that startmode are not considered to be mandatory if list of mandatory devices is derived automatically.
# - ifplugd: interface will be controlled by ifplugd daemon. (If you like to use multiple interfaces mutually exclusive you have to set also IFPLUGD_PRIORITY.)
# - nfsroot: Nearly like 'auto'. But interfaces with this startmode will never be shut down via 'rcnetwork stop'. 'ifdown <iface>' still works. Use this when you have a nfs root filesystem or you connect to an iSCSI / FCoE target.
# - manual:  start it only when ifup is called manually
# - off:     will not be started at all
# - onboot:  alias for auto, deprecated, only for backward compliance
STARTMODE=
网卡配置举例
SUSE15:/etc/sysconfig/network # vim ifcfg-eth1

NAME=''
BOOTPROTO='static'
STARTMODE='auto'
IPADDR=192.168.19.145
PREFIXLEN=24
ZONE=''

SUSE15:/etc/sysconfig/network # wicked ifreload eth1
eth1            device-ready
eth1            up

1.3 路由设置

从上面的例子中可以看到,在openSUSE中如果手工配置地址,是没有网关选项的,这需要我们手工设置路由,路由的配置同样在/etc/sysconfig/network文件夹中,一个叫ifroute-IFNAME的文件中,格式如下:

# Destination Gateway Netmask Interface Options
配置举例
SUSE15:~ # vim /etc/sysconfig/network/ifroute-eth1

192.168.20.0 192.168.19.1 255.255.255.0    eth1

SUSE15:~ # systemctl restart wicked
SUSE15:~ # wicked ifstatus eth1
eth1            up
      link:     #3, state up, mtu 1500
      type:     ethernet, hwaddr 00:0c:29:76:10:36
      config:   compat:suse:/etc/sysconfig/network/ifcfg-eth1
      leases:   ipv4 static granted
      addr:     ipv4 192.168.19.145/24 [static]
      route:    ipv4 192.168.20.0/24 via 192.168.19.1 proto boot

另外还有一种配置方法,就是直接指定默认网关:

default 192.168.1.1

1.4 DNS设置

DNS设置在/var/run/netconfig/resolv.conf中,格式如下:

nameserver 8.8.8.8

在这个文件中,可以进行DNS域名解析的配置。主要有如下四个参数:
nameserver #定义DNS服务器的IP地址(必选)
domain #定义本地域名(可选)
search #定义域名的搜索列表(可选)
sortlist #对返回的域名进行排序(可选)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1849009.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言学习记录20240622

这次需要用 C 语言库 Allegro 写爆破彗星游戏。项目有一些描述如需要绘制飞船、彗星、子弹&#xff0c;需要响应按键实现飞船加速、减速、转向、开火&#xff0c;需要绘制弹道&#xff0c;需要实现彗星旋转、缩放&#xff0c;需要碰撞检测&#xff0c;需要显示计分。 这些用 w…

打破数据分析壁垒:SPSS复习必备(五)

一、分类变量的统计描述与参数估计 1、分类变量的统计描述指标体系 1&#xff09;频数分布情况描述 各个类别的样本数和所占比例分别称为频数&#xff08;绝对频数&#xff09;和百分比&#xff08;构成比&#xff09;。 累计频数是指本类别及较低类别出现的次数之和&#…

小熊文件工具箱免费版

小熊文件工具箱是一款基于本地离线操作的一系列工具的合集&#xff0c;最大特点是各种批量任务的执行&#xff0c;包含了智能证件照&#xff0c;自动抠图&#xff0c;直播录制&#xff0c;九宫格切图&#xff0c;拼图&#xff0c;视频格式转换及压缩&#xff0c;zip压缩解压缩&…

学习es6

1、let变量 2、const常量 3、解构赋值 4、模板字符串 5、简化对象写法 6、参数默认值 7、rest参数 8、扩展运算符 9、扩展对象方法 10、扩展数组方法 11、Set 12&#xff0c;Promise 13、Module模块

Android | 性能优化 之 TraceView工具的使用

上代码&#xff01; 先加权限&#xff1a; <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name"android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 选择跟踪范围,在开始追踪和结束…

sdlan如何智能组网?

【天联】组网是一款异地组网内网穿透产品&#xff0c;由北京金万维科技有限公司自主研发&#xff0c;旨在解决不同地区电脑与电脑、设备与设备、电脑与设备之间的信息远程通信问题。【天联】的操作简单、跨平台应用、无网络要求以及独创的安全加速方案等特点&#xff0c;使得它…

MyBatis系列六: 映射关系多对一

动态SQL语句-更复杂的查询业务需求 官方文档基本介绍映射方式配置Mapper.xml的方式-应用实例注解的方式实现-应用实例课后练习 官方文档 文档地址: https://mybatis.org/mybatis-3/zh_CN/sqlmap-xml.html 基本介绍 ●基本介绍 1.项目中多对1的关系是一个基本的映射关系, 也可…

镜像操作_容器操作_镜像拉取_镜像开机启动_镜像删除等常用操作---分布式云原生部署架构搭建008

docker的常用命令大全啊 然后再来看容器的常用命令,快速过一遍 找镜像在这里 hub.docker.com 这里 去找到对应的 镜像 直接docker pull 就可以了 然后注意这里有个tags,就是标签,镜像的标签 其实就是各个版本

CTFHUB-SSRF-POST请求

通过file协议访问flag.php文件内容 ?urlfile:///var/www/html/flag.php 右键查看页面源代码 需要从内部携带key发送post数据包即可获得flag ?urlhttp://127.0.0.1/flag.php 得到了key 构造POST请求数据包&#xff0c;进行url编码&#xff08;新建一个txt文件&#xff0c;…

vue3自动导入---组件库elements-ui,vuetify以及scss样式的自动导入

自动导入 我们在使用第三方组件库和css样式文件时&#xff0c;都需要进行引入&#xff0c;可以在单个组件内单独引用&#xff0c;也可以在全局引入或一次引入所有组件&#xff1b;但是&#xff0c;一般情况下我们都不会全部引入&#xff0c;这会是打包的结果变大&#xff0c;而…

TCP 和 UDP 可以同时绑定相同的端口吗?

在网络编程中&#xff0c;TCP和UDP都可以绑定到同一个端口上进行通信。TCP和UDP是OSI模型中的传输层协议&#xff0c;它们分别使用不同的端口号来区分不同的应用程序或服务。 TCP&#xff08;Transmission Control Protocol&#xff09;提供了面向连接的、可靠的传输服务&…

【Mac】FxFactory 8 Pro for Mac(视觉特效处理包)及同类型软件介绍

软件介绍 FxFactory Pro 是一款功能强大的插件管理和创作工具&#xff0c;专为视频编辑器和特效艺术家设计&#xff0c;适用于 macOS 系统。它集成了大量的视频特效插件&#xff0c;并与多种主流视频编辑软件无缝兼容&#xff0c;如 Final Cut Pro、Premiere Pro、After Effec…

Unity 限时免费资源 - FANTASTIC万圣节资源包

Unity 资源 - FANTASTIC - Halloween Pack 万圣节包 前言资源包内容领取兑换码 前言 亲爱的 Unity 游戏开发者们&#xff0c;今天要给大家介绍一款限时免费的优质资源包 - FANTASTIC - Halloween Pack 万圣节资源包。 这个资源包为您的游戏创作带来了丰富的万圣节主题元素。其…

PCB行业迈入数字化新时代,智能工厂引领未来制造

在传统的PCB生产过程中&#xff0c;人工操作、纸质记录、经验判断等方式占据了主导地位。然而&#xff0c;这种方式不仅效率低下&#xff0c;而且容易出现误差&#xff0c;导致产品质量不稳定。同时&#xff0c;随着市场竞争的加剧&#xff0c;客户对产品的交期、质量、成本等方…

什么是局域网IP?

局域网IP&#xff08;Local Area Network IP&#xff09;指的是在局域网内使用的IP地址。局域网是指在某个地理区域内&#xff0c;由一组相互连接的计算机组成的小型网络&#xff0c;常见于家庭、学校、办公室等场所。局域网IP可以用来实现内网穿透&#xff0c;即在复杂的网络环…

八-工具包3-pandas数据清洗及相关性

数据清洗概述 数据清洗是对一些没有用的、不合理的数据进行处理的过程。 很多数据集存在数据缺失、数据格式错误、错误数据或重复数据的情况&#xff0c;如果要使数据分析更加准确&#xff0c;就需要对这些没有用的数据进行处理。 样本数据&#xff1a; from io import Str…

新零售解决方案:线上线下融合,驱动现代商业新浪潮-亿发

在数字化和智能化的商业环境中&#xff0c;新零售正在迅速改变传统的商业模式。作为新时代的零售解决方案&#xff0c;新零售通过线上线下深度结合&#xff0c;为企业提供了更灵活、高效的运营方式。本文将探讨新零售的四大特征&#xff0c;并详细描述其在中小企业中的应用&…

MySQL的DML语句

文章目录 ☃️概述☃️DML☃️添加数据☃️更新和删除数据☃️DML的重要性 ☃️概述 MySQL 通用语法分类 ● DDL: 数据定义语言&#xff0c;用来 定义数据库对象&#xff08;数据库、表、字段&#xff09; ● DML: 数据操作语言&#xff0c;用来对数据库表中的数据进行增删改 …

深入解析Transformer架构:大模型核心技术揭秘

在大模型发展历程中&#xff0c;有两个比较重要点&#xff1a;第一&#xff0c;Transformer 架构。它是模型的底座&#xff0c;但 Transformer 不等于大模型&#xff0c;但大模型的架构可以基于 Transformer&#xff1b;第二&#xff0c;GPT。严格意义上讲&#xff0c;GPT 可能…

MySQL数据备份操作步骤

常见的数据备份命令 备份命令备份速度恢复速度介绍功能适用场景lvm2快照快快一般、支持几乎热备、速度快一般中小型数据量的备份cp快快物理备份、灵活性低很弱少量数据备份xtrabackup较快较快实现innodb热备、对存储引擎有要求强大较大规模的备份mysqldump慢慢逻辑备份、适用所…