• [技术干货] DHCP协议详解-转载
    DHCP是什么 1.1 DHCP定义 DHCP( Dynamic Host Configuration Protocol, 动态主机配置协议)定义: 存在于应用层(OSI)  前身是BOOTP(Bootstrap Protocol)协议  是一个使用UDP(User Datagram Protocol,用户数据报协议)协议工作的,被用于局域网的一个网络协议  主要是给网络快速自动地分配IP地址,能够帮助我们将IP地址和相关IP信息分配给网络中的计算机  常用的2个端口:67(DHCP server), 68(DHCP client)  1.2 DHCP服务器 一些运行有DHCP服务器端软件的特殊电脑  普通电脑中都内置有DHCP客户端模块,电脑接上网络后,DHCP客户端发现新连通的网络,会在该网络上找DHCP服务器。DHCP服务器将给电脑提供合理的网络配置,并把设置信息传回本机,本机和DHCP服务器之间的通信,都是通过DHCP协议进行的  1.3 DHCP主要作用 减少管理员的工作量  避免输入错误的可能  避免IP地址的冲突  提高了IP地址的利用率  方便客户端的配置:使client动态的获得IP地址、给设备配置正确的子网掩码,默认网关,DNS服务器地址信息等  2.DHCP的工作方式 2.1 DHCP的分配方式 自动分配 DHCP为客户端分配 租期为 永久的(无限长)的IP地址 手工分配 由 管理员为少数特定客户端(如WWW服务器等) 静态绑定固定的IP地址,通过DHCP将配置的固定IP地址发给客户端 动态分配 DHCP给主机指定一个有时间限制的IP地址,到达使用期限后或主机明确表示放弃这个地址时,客户端需要重新申请地址; 如果客户端没有重新申请,则这个地址将可能被其它的主机使用; 绝大多数客户端得到的都是这种 动态分配的地址(可以解决IP地址不够用的困扰) 2.2 DHCP的工作原理 租约(租约四部曲) (1).发现阶段(DISCOVER) DHCP客户端启动时,计算机发现本机上没有任何IP地址设定,将以广播方式通过UDP 67端口发送DHCP DISCOVER请求报文(客户端的MAC地址信息),来寻找DHCP服务器,请求IP地址租约,因为客户机还不知道自己属于哪一个网络,所以封包的源地址为0.0.0.0,目的地址为255.255.255.255,向网络发送特定的广播信息。  网络上每一台安装了TCP/IP协议的主机都会接收这个广播信息,但只有DHCP服务器才会做出响应。  请求获得IP,子网掩码,默认网关,DNS等信息  (2).提供阶段(OFFER ) 该客户对应的租约已存在且未被再次分配(包括租约到期和未到期的租约),则直接分配已记录的地址信息  该客户对应的租约不存在,服务器响应DHCP OFFER,会从对应的地址池中查找(注意:该处地址池应该有个前提条件,就是可用的地址池:应当和接收口的IP为同一网段,或同giaddr字段同一网段,否则无法分配);然后从尚未出租的IP地址中挑选一个最前面的ip地址连同其它的参数设定,响应给客户端一个DHCP OFFER (单播)报文,报文里面包括客户机MAC地址信息,TCP/IP的一些配置信息  (3).选择阶段(REQUEST) DHCP客户端可以接收到多个DHCP服务器的DHCP OFFER数据包,但只会挑选其中一个 DHCP OFFER(通常只接受收到的第一个DHCP OFFER数据包),然后会向网络发送一个DHCP REQUEST广播报文(报文中包含客户端的MAC地址、接受的租约中的IP地址、提供此租约的DHCP服务器地址等),告诉所有DHCP服务器它将指定接受哪一台服务器提供的 IP 地址,这样其他的服务器就会释放之前预分配给客户端的IP地址。同时,客户端还会向网络发送一个ARP 报文,查询网络上面有没有其它设备使用该 IP 地址,如果发现该 IP 已经被占用,客户端则会送出一个DHCP DECLIENT报文给 DHCP 服务器,拒绝接受其 DHCP OFFER,并重新发送 DHCP DISCOVER信息  此时,由于还没有得到DHCP服务器的最后确认,客户端仍然使用0.0.0.0为源IP地址,255.255.255.255为目标地址进行广播。  (4).确认阶段(ACK ) 当DHCP Server收到DHCP Client发送的DHCP Request后,确认要为该DHCP Client提供的IP地址,并根据客户机的MAC地址记录该次租约行为后,并便向该DHCP Client响应一个ACK报文(包含该IP地址,默认网关,DNS服务器等网络配置信息),来告诉DHCP Client可以使用该IP地址了,并告知客户端这个网络参数租约的期限,并且开始租约计时。然后DHCP Client就可以将该IP地址与网卡绑定,完成初始化过程。另外其他DHCP Server都将收回自己之前为DHCP Client提供的IP地址  客户端在接收到DHCP ACK后,会向网络发送针对此IP地址的ARP解析请求以执行冲突检测,查询网络上有没有其它机器使用该IP地址;如果发现该IP地址已经被使用,客户机会发出一个DHCP DECLINE数据包给DHCP服务器,拒绝此IP地址租约,并重新发送DHCP DISCOVER信息.  当用户不再需要使用分配IP地址时,就会"主动"向DHCP服务器发送RELEASE报文,告知服务器用户不再需要分配IP地址,DHCP服务器会释放被绑定的租约(在数据库中清除某个MAC对某个IP的租约记录,这样,这个IP就可以分配给下一个请求租约的MAC)  续约 DHCP客户机会在租期过去50%的时候,直接向为其提供IP地址的DHCP服务器发送DHCP REQUEST消息包;如果客户机接收到该服务器回应的DHCP ACK消息包,客户机就根据包中所提供的新的租期以及其它已经更新的TCP/IP参数,更新自己的配置,IP租用更新完成。如果没有收到该服务器的回复,则客户机继续使用现有的IP地址,因为当前租期还有50%  如果在租期过去50%的时候没有更新,则DHCP客户机将在租期过去87.5%的时候再次向为其提供IP地址的DHCP服务器联系;如果还不成功,到租约的100%时候,DHCP客户机必须放弃这个IP地址,重新申请  如果此时并没有DHCP可用,DHCP客户机会使用169.254.0.0/16中随机一个地址,并且每隔5min在进行尝试   2.3 DHCP协议包的组成 op:  1.client发送给server的封包,设为1  2.server发送给client的封包,设为2  htype: 硬件类别,1表示10Mb/s的以太网(Ethernet)的硬件地址  hlen: 硬件地址长度  hops:跳数,若封包需经过router传送,每站加 1,若在同一网内,为0(客户端初始设置为0)  xid:DHCP REQUEST 时随机生成的一段字符串,服务器和客户端用来在它们之间交流请求和响 应,客户端用它对请求和应答进行匹配两个数据包拥有相同的xid说明他们属于同一次会话  seconds: 由客户端填充,表示从客户端开始获得IP地址或IP地址续借后所使用了的秒数  flags: 从0到15共16 bits  最左1Bit为1时表示 server将以广播方式传送封包给client  最左1Bit为0时表示 server将以单播方式传送封包给client  ciaddr: 客户端会在发送请求时将自己的ip地址放在此处  yiaddr: 服务器会将想要分配给客户端的ip地址放在此处  siaddr: 一般来说是服务器的ip地址.但是注意:根据openwrt源码给出的注释,当报文的源地址、siaddr、option­>server_id字段不一致(有经过跨子网转发)时,通常认为option­>srever_id字段为真正的服务器ip,siaddr有可能是多次路由跳转中的某一个路由的ip  giaddr: 如果需要跨子网进行DHCP地址发放,则在此处填入经过的路由器的ip地址  sname: 服务器主域名  file: 启动文件名,是一个空结尾的字符串。  options: 可以自由添加的部分,用于存放客户端向服务器请求信息和服务器的应答信息  2.4 DHCP中继 2.4.1 DHCP中继是什么 (1).在大型的网络中,可能会存在多个网段,DHCP客户机通过网络广播消息获得DHCP服务器的响应后得到IP地址。但广播消息是不能跨越网段的,因此,如果DHCP客户机和服务器在不同的网段内,即被路由器分割开来时,客户机向服务器申请IP地址的时候,就要用到DHCP中继  (2).当企业的内部网络规模较大时,通常被划分为多个不同的子网,网络内配置了VLAN,VLAN能隔离广播,而DHCP协议使用广播,DHCP服务器在哪个VLAN中,就只有在相同VLAN内的客户机能从DHCP服务器那里获取IP地址。所以,将DHCP这种特殊的广播信息在不同网段的VLAN之间转发,让其他VLAN的客户机也能从DHCP服务器那里获得IP地址,就要用到DHCP中继  (3).DHCP中继代理实际上是一种软件技术,安装了DHCP中继代理的设备(路由器,交换机,服务器)称为DHCP中继代理服务器,它承担不同网段间的DHCP客户机和服务器的通信  2.4.2 DHCP中继原理: (1). DHCP客户机申请IP租约,发送DHCP Discover包  (2). 中继代理收到该包,并转发给另一个网段的DHCP服务器  (3). DHCP服务器收到该包,将DHCP Offer包发送给中继代理  (4). 中继代理将地址租约(DHCP Offer)转发给DHCP客户端,接下来的过程,DHCP Request包从客户机通过中继代理转发到DHCP服务器,DHCP ACK消息从服务器通过中继代理转发到客户机  3.DHCP攻防 3.1 DHCP攻击的原理 (1).先使用攻击软件,不断向DHCP服务器发出 DHCP Request 报文请求,耗尽DHCP服务器的资源,让客户机不能上网  (2).自己伪造DHCP服务器,并“冒充”为一这个网段中的合法DHCP服务器,向客户端提供DHCP服务,这时候客户端的网关就是伪造的DHCP服务器的地址,攻击者就可以截获流量,并且还可以将数据包正常转发到网络上,不影响客户端的正常通信,只不过客户端上网的流量都在攻击者监控下,并且非法DHCP+攻击程序容易拿到用户信息,比如用户操作系统的账号密码,结果DHCP客户端将从非法DHCP服务器处获得不正确的IP地址、网关、DNS等配置参数  3.2 非法DHCP服务的防范 (1).在DHCP服务器上进行IP与MAC地址的绑定:  在通过DHCP服务器进行客户端IP地址等参数分配的网络中,对于一些重要部门的用户,可以通过在DHCP服务器上绑定IP与MAC地址,实现对指定计算机IP地址的安全分配  (2).使用DHCP Snooping信任端口:  能够过滤来自网络中非法DHCP服务器或其他设备的非信任DHCP响应报文.一旦将交换机的某一个端口设置为指向正确DHCP服务器的接入端口,那么交换机会自动丢弃从其他端口上接收到的DHCP响应报文.因为非信任端口,所以非法的DHCP服务器虽然接收到了信息,也发出了响应报文,但是在不信任端口处被阻断了,内网设备就不会得到不信任DHCP发送的响应报文了,就是不管你响应有多快,但是都半路夭折了。  4.DHCPv6介绍 4.1 DHCPv6定义 DHCPv6(Dynamic Host Configuration Protocol for IPv6,支持IPv6的动态主机配置协议)是针对IPv6编址方案设计的,为主机分配IPv6前缀、IPv6地址,DNS等其他网络配置参数的协议  基于UDPv6协议工作的  常用的2个端口:547(DHCP server,relay), 546(DHCP client)  由于在 IPv6中 没有广播报文,使用组播(默认所有DHCPv6服务器都会加入并侦听该组播组:FF02::1:2)报文,客户端也无需配置服务端的IPv6地址  4.2 DHCPv6协议的优势 可以为主机分配IPv6地址  可以为主机分配IPv6前缀,DNS服务器、域名等网络配置参数  可以为特定主机分配特定的地址/前缀  便于全网络的自动配置和网络层次性管理  4.3 DHCPv6的工作原理 4.3.1 DHCPv6网络构成 DHCPv6客户端:动态获取IPv6地址、IPv6前缀或其他网络配置参数的设备  DHCPv6服务器:负责为DHCPv6客户端分配IPv6地址、IPv6前缀和其他网络配置参数的设备  DHCPv6中继:DHCPv6客户端通过本地链路范围的组播地址与DHCPv6服务器通信,以获取IPv6地址和其他网络配置参数。如果服务器和客户端不在同一个链路范围内,则需要通过DHCPv6中继来转发报文,这样可以避免在每个链路范围内都部署DHCPv6服务器,既节省了成本,又便于进行集中管理  4.3.2 分配过程 交互两个消息的快速分配过程 (1) DHCPv6客户端在发送的Solicit消息中携带Rapid Commit选项,标识客户端希望服务器能够快速为其分配地址/前缀和网络配置参数  (2) 如果DHCPv6服务器支持快速分配过程,则直接返回Reply消息,为客户端分配IPv6地址/前缀和其他网络配置参数。如果DHCPv6服务器不支持快速分配过程,则采用交互四个消息的分配过程为客户端分配IPv6地址/前缀和其他网络配置参数  交互四个消息的分配过程 发现阶段 客户端发送Solicit报文来发现 DHCPv6 服务器,并请求DHCPv6 服务器为其分配 IPv6 地址和网络配置参数,由于客户端不知道 DHCPv6 服务器的 IPv6 地址,所以客户端用组播地址:FF02::1:2向同一链路范围内的所有DHCPv6服务器发送Solicit报文;Solicit报文中携带了客户端的DUID、需要请求的非临时地址、以及其他网络配置参数等信息 提供阶段 DHCPv6 服务器接收到Solicit报文后,选择按照 IPv6 地址从小到大的顺序采用循环查找方式,选择最新找到的可供分配的 IPv6 地址,然后通过Advertise报文以单播方式回应给客户端;Advertise报文里面携带了服务器的DUID、客户端的DUID、分配给客户端的IPv6地址及租期等信息 选择阶段 因为Solicit报文是组播发送的,所以如果同一链路范围内存在多个 DHCPv6 服务器,则接收到Solicit报文的服务器都会回应Advertise报文,如果有多个 DHCPv6 服务器向DHCPv6客户端回应Advertise报文,则 DHCPv6 客户端选择服务器优先级最高的Advertise报文,然后客户端以组播方式向同一链路范围内的所有 DHCPv6 服务器发送Request报文,该报文中包含客户端选择的 DHCPv6 服务器的DUID、客户端的DUID、客户端IPv6地址 确认阶段 当 DHCPv6 服务器收到Request报文后,对报文中携带的服务端DUID信息进行判断: 若报文中携带的服务端DUID不是本服务端的DUID,则对该Request报文不回应,同时将Request报文中请求的IPv6地址回收 若报文中携带的服务端DUID是本服务端的DUID,则以单播方式回应Reply报文,确认Request报文中请求的IPv6地址分配给客户端使用  4.4 DHCPv6报文格式  5.DHCPv4 vs DHCPv6 (1). 相同点 使用DHCP client, DHCP relay and DHCP server概念  使用scopes and leases概念  使用4个消息包的完整交互 (DHCP for IPv4使用Discover/Offer/Request/Acknowledge (DORA), DHCPv6使用Solicit/Advertise/Request/Reply (SARR))  使用DHCP options为终端节点提供附加信息(DHCPv6的type code长度为16-bit)  支持Rapid Commit功能  (2). 差异点 标识客户端方式:DHCPv6使用DHCP Unique Identifiers (DUID) (RFC 6355),DHCPv4使用MAC地址.  消息类型名称不同,大部分功能类似  DHCPv4基于IPv4包传输,DHCPv6基于IPv6包传输  DHCPv6使用IPv6组播消息,DHCPv4使用广播的IPv4消息  DHCPv6中client与relay/server(RFC 6939)通信时使用link-local地址, DHCPv4使用unsolicited广播地址  监听的UDP端口不同, DHCPv4 relay/server监听udp端口67 client监听udp端口68, relay/server监听udp端口547 client监听udp端口546  DHCPv4可以在路由器上配置, stateful DHCPv6一般不能在路由器上配置 ————————————————                              版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。                          原文链接:https://blog.csdn.net/zhoupenghui168/article/details/130281621 
  • [技术干货] Ubuntu 更换IP (服务器)以Ubuntu-live-server20.04为例-转载
    1.切换root登录(默认登录root)  2.输入下面代码,摁Tab键,系统会自动识别并且查找哪一个网卡或者网口的配置文件  多半是(00或者01)  view /etc/netplan/0 注意:Linux操作系统下 注意空格  3.看到配置文件之后,摁  i  进入编辑模式  network:   version: 2   renderer: NetworkManager   ethernets:     ens33:       dhcp4: no       addresses: [192.168.0.120/24]       gateway4: 192.168.0.1       nameservers:         addresses: [114.114.114.114, 8.8.8.8] ens33:代表网卡名称                                          dhcp:自动配置ip(默认no关闭)  addresses:代表ip地址                                       /24:代表子网掩码255.255.255.0(25代表128)  nameservers:DNS服务器地址   114.114.114.114 国内DNS服务器    8.8.8.8:谷歌DNS服务器  4.更改完成之后,摁esc退出,输入:wq  (英文的:  和小写的wq)保存并退出  :wq  5.输入netplan apply  ,应用这个配置文件  netplan apply 6.更换ip完成,测速网通不通  ping qq.com 7.网通,结束更换ip ————————————————                              版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。                          原文链接:https://blog.csdn.net/weixin_53247206/article/details/134095495 
  • [技术干货] 如何在服务器中安装JDK 8, JDK 17与JDK 21:全面指南-转载
     摘要 在当前的技术生态中,Java仍然占据着重要地位,无论是对于企业应用还是新兴的云计算平台。本文将详细介绍如何在Linux服务器上安装Java开发工具包JDK 8、JDK 17以及最新的JDK 21,包括.tar.gz和.rpm安装方法,适合所有级别的读者,从编程新手到资深开发者。通过阅读本文,您将能够掌握从下载到配置的完整流程,确保Java环境的正确设置。涵盖内容包括但不限于操作命令、环境配置、版本选择理由及常见问题解答,本文将是您的最佳入门指南,帮助您在Ubuntu 20.04服务器上顺利部署JDK。关键词:JDK安装、Java、Ubuntu服务器、开发环境设置、Java版本升级。  引言 亲爱的 猫头虎 粉丝朋友们,今天我们将一起探索如何在服务器上安装和配置JDK 8, JDK 17以及最新的JDK 21。为什么要学习这项技术呢?无论您是在开发兼容性极强的企业软件,还是最前沿的云应用,Java都能提供强大的支持。此外,正确安装JDK对于运行Java应用、进行软件开发和使用广泛的工具框架至关重要。  在本文中,我们不仅会讨论如何安装这些版本的JDK,还会探讨它们各自的特点和适用场景,以帮助您做出最合适的选择。随着技术的迅速发展,保持更新和掌握最新工具的能力对于每位技术人员来说都是必不可少的。让我们一起开始这个技术之旅吧!  正文 📘 安装前的准备 系统要求 操作系统:Ubuntu 20.04 LTS 架构:x86_64(即AMD64) 用户权限:需要具有sudo权限的用户账户 工具和资源 wget:用于从命令行下载文件的工具 tar:用于解压缩文件的工具 rpm:RPM包管理器(适用于使用.rpm文件的系统) 📗 JDK 8 安装步骤 1. 下载 JDK 8 使用 .tar.gz 文件  https://download.oracle.com/java/8/archive/jdk-8u401-linux-x64.tar.gz 使用 .rpm 文件   https://download.oracle.com/java/8/archive/jdk-8u401-linux-x64.rpm 由于JDK8需要手动下载,且需要登录,我这里已经帮大家下载了最新版本  https://download.csdn.net/download/qq_44866828/89140291  2. 解压与安装 JDK 如果使用 .tar.gz 文件 sudo tar -xzvf jdk-8u401-linux-x64.tar.gz -C /usr/lib/jvm/ 如果使用 .rpm 文件 sudo rpm -ivh jdk-8u401-linux-x64.rpm 3. 设置环境变量 编辑 .bashrc 文件,添加 JDK 8 的环境变量。  echo 'export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_401' >> ~/.bashrc echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc source ~/.bashrc 4. 验证安装 java -version 📘 JDK 17 安装步骤 1. 下载 JDK 17 使用 .tar.gz 文件 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz 使用 .rpm 文件 wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm 2. 解压与安装 JDK 如果使用 .tar.gz 文件 sudo tar -xzvf jdk-17_linux-x64_bin.tar.gz -C /usr/lib/jvm/ 如果使用 .rpm 文件 sudo rpm -ivh jdk-17_linux-x64_bin.rpm 3. 设置环境变量 更新 .bashrc文件,添加 JDK 17 的环境变量。  echo 'export JAVA_HOME=/usr/lib/jvm/jdk-17' >> ~/.bashrc echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc source ~/.bashrc 4. 验证安装 java -version 📙 JDK 21 安装步骤 1. 下载 JDK 21 使用 .tar.gz 文件 wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz 使用 .rpm 文件 wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.rpm 2. 解压与安装 JDK 如果使用 .tar.gz 文件 sudo tar -xzvf jdk-21_linux-x64_bin.tar.gz -C /usr/lib/jvm/ 如果使用 .rpm 文件 sudo rpm -ivh jdk-21_linux-x64_bin.rpm 3. 设置环境变量 更新 .bashrc 文件,添加 JDK 21 的环境变量。  echo 'export JAVA_HOME=/usr/lib/jvm/jdk-21' >> ~/.bashrc echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc source ~/.bashrc 4. 验证安装 java -version 1 📙 常见问题解答 (QA) Q1: 如果 java -version 还是显示旧的或无版本,该怎么办? A1: 确保 /usr/bin/java 是指向新安装的 JDK。使用 update-alternatives 命令可以管理多版本。  Q2: 安装 JDK 时提示权限不足,应该如何解决? A2: 使用 sudo 前缀确保你有足够的权限进行安装。  📘 小结 通过以上步骤,您可以在Ubuntu 20.04 LTS服务器上成功安装 JDK 8, JDK 17, 和 JDK 21,为运行和开发Java应用准备好环境。  参考资料 Oracle JDK Downloads Ubuntu Documentation 表格:核心知识点总结 功能    JDK 8    JDK 17    JDK 21 主要特性    兼容性强,广泛使用于企业环境    最新长期支持版本,提供先进功能    最前沿的版本,包含最新Java特性 安装命令    wget 和 tar, 环境变量配置    wget 和 tar, 环境变量配置    wget 和 tar, 环境变量配置 适用场景    旧系统兼容、现有项目    新项目、需要最新Java特性的场景    最新技术试验和高端开发需求 总结 安装 JDK 是每位 Java 开发者必须掌握的基本技能之一。不论是开发现代应用程序还是维护旧有系统,正确配置Java环境都是成功的关键。  未来展望 随着 Java 的不断发展,我们可以预见到更多的功能、更好的性能优化在未来版本中出现。保持对新技术的关注和学习,将使我们能够更好地适应变化,抓住机遇。  温馨提示 如果对本文有任何疑问,欢迎点击下方名片,了解更多详细信息!我们猫头虎科技博客始终致力于与您分享最新、最实用的技术资讯。🌟 ————————————————                                    猫头虎技术团队                                                 原文链接:https://blog.csdn.net/qq_44866828/article/details/137777412 
  • [分享交流] 锐文网卡10G25G40G100G在飞腾S5000C 16 core 服务器配华为openEluler 22.03的iperf性能
     锐文网卡10G25G40G100G在飞腾S5000C主板下iperf性能测试(100GbE 40G 25G 10G )(一)测试环境测试测试锐文网卡100GbE 40G 25G 10G在iperf下测试服务器Phytium服务器CPUPhytium S5000C 16 Core系统内存16G*2@DDR4 5600MT/s网卡100GbE 40G 25G 10G网卡操作系统openEuler 22.03 (LTS-SP1)内核版本Linux localhost.localdomain 5.15.0.5.15-v2-s5000cGCC版本gcc 版本 10.3.1 (GCC)DPDK版本dpdk-20.08测试版本Software:dpdk-20.08测试配置1网卡,1口,单口配4个队列, 共4个队列用4个核Kernel下使用iperf作为测试工具,一张网卡作为客户端发送以太网包,另一张网卡作为服务端接收以太网包,测试在Kernel下最大性能。测试时间60秒UDP流/TCP流测试模型:100G服务器一为客户端,服务器二为服务端 0口TCPUDP通道发送带宽Gbps接收带宽Gbps重传数线程数发送带宽Gbps接收带宽Gbps延时ms丢包线程数123.823.80311.811.80.0020.00%1235.935.90311.811.80.0010.00%1329.629.60311.811.80.0010.00%1410.210.20311.811.800.00%15    11.811.80.0030.00%16    11.811.80.0070.00%17    11.811.80.0080.00%18    11.811.80.0010.00%1总和99.599.50394.494.40.0030.00%1 1口TCPUDP通道发送带宽Gbps接收带宽Gbps重传数线程数发送带宽Gbps接收带宽Gbps延时ms丢包线程数121.821.80311.811.80.0010.00%1220.720.70311.811.80.0020.00%1333.333.30311.811.80.0020.00%1423.723.70311.811.80.0020.00%15    11.811.80.0030.00%16    11.811.80.0050.00%17    11.811.80.0010.00%18    11.811.80.0040.00%1总和99.599.50394.494.40.0030.00%125G服务器2作为客户端 TCPUDP端口发送带宽Gbps接收带宽Gbps重传数线程数发送带宽Gbps接收带宽Gbps延时ms丢包%线程数024.8024.800124.7024.700.0130.00%1124.8024.800124.7024.700.0110.00%1服务器2作为服务端 TCPUDP端口发送带宽Gbps接收带宽Gbps重传数线程数发送带宽Gbps接收带宽Gbps延时ms丢包%线程数024.8024.800121.8021.800.0020.00%1124.8024.800122.1022.100.0010.00%110G服务器2作为客户端 TCPUDP端口发送带宽Gbps接收带宽Gbps重传数线程数发送带宽Gbps接收带宽Gbps延时ms丢包%线程数09.919.91019.929.920.0090.00%119.909.91019.929.920.0150.00%1服务器2作为服务端 TCPUDP端口发送带宽Gbps接收带宽Gbps重传数线程数发送带宽Gbps接收带宽Gbps延时ms丢包%线程数09.909.91019.939.930.0060.00%119.899.89019.939.930.0120.00%1
  • [技术干货] 服务器监控工具推荐
    在当前的信息化时代,服务器监控是保障企业信息安全、提升业务连续性的重要手段。随着技术的发展,市面上涌现出了许多好用的服务器监控工具。本文将为您推荐几款功能强大、易于使用的服务器监控工具。ZabbixZabbix是一款功能强大的开源网络监控软件,具有易于安装和配置的特点。它支持对服务器的各种指标进行监控,包括CPU利用率、内存使用情况、网络流量等。通过Web界面,用户可以实时查看服务器的状态,并设置报警规则,以便及时发现并解决问题。此外,Zabbix还具备灵活的插件式架构,用户可以根据实际需求选择合适的插件进行扩展。NagiosNagios是一款广泛使用的服务器监控系统,能够监控网络设备、服务器和应用程序等。它支持多种操作系统和网络设备,具有高度的可定制性。Nagios采用插件式架构,用户可以根据自己的需求选择合适的插件进行监控。同时,Nagios提供了丰富的报警功能,可以通过邮件、短信等方式通知管理员服务器的异常情况。PrometheusPrometheus是一款开源的监控系统和时间序列数据库,适用于大规模分布式系统的监控。它具备高度可扩展性和灵活性,支持多种数据模型和查询语言。Prometheus能够收集并存储大量的监控数据,并通过直观的图形化界面展示给用户。此外,Prometheus还提供了强大的告警功能,能够根据预设的规则触发告警通知。AnturisAnturis是一个基于云的SaaS平台,可监控Windows和Linux服务器、网站以及IT基础架构。它具备实时监控、性能分析、告警通知等功能,能够帮助用户全面了解服务器的运行状况。此外,Anturis还提供了丰富的可视化报告,方便用户对监控数据进行深入分析。SeaLionSeaLion是一个基于云的Linux服务器监控工具,具有轻量级、易用的特点。它能够实时监控服务器的CPU、内存、磁盘等关键指标,并通过直观的图表展示给用户。此外,SeaLion还提供了强大的告警功能,能够在服务器出现异常时及时通知用户。总结以上推荐的几款服务器监控工具各具特色,适用于不同的场景和需求。在实际应用中,用户可以根据自己的实际情况选择合适的工具进行使用。同时,随着技术的不断发展,未来还将涌现出更多优秀的服务器监控工具,为企业的信息安全和业务连续性提供有力保障。
  • [技术干货] 幻兽帕鲁Ubuntu搭建教程
    =========================================================================apt安装steamcmdsudo add-apt-repository multiversesudo dpkg --add-architecture i386sudo apt update#执行add-apt-repository的时候报错类似说找不到包,那么需要执行下面两条命令安装一下软件sudo apt-get updatesudo apt-get install software-properties-commonsudo apt install steamcmd1)Tab选择同意,然后回车2)选择ok一路下一步,我在部分厂商服务器安装的时候会失败。如果安装失败,或者报错了那么就按照下面手动来=============================================================================手动安装steamcmd1)sudo apt-get install lib32gcc-s1                      #安装依赖项,选择OK,这里安装报错也没关系,继续往下执行(官方说需要这个依赖,但是执行失败了也可以运行幻兽帕鲁服务器)2)sudo useradd -m steam                                  #这里要给steam单独创建一个用户,直接root做的话后面运行帕鲁服务器的时候会报错,提示不能在root用户下执行。这里为了方便,创建好用户,没有设置密码,直接切换到用户了,需要密码可以执行sudo passwd steam3)su - steam                                                         #以 root 用户身份,升级为 Steam 用户。如果不是以 root 身份登录,而是用于执行管理,按如下方式升级为 Steam 用户:sudo -iu steam4)mkdir ~/Steam && cd ~/Steam                       #为 SteamCMD 创建一个目录并切换到它5)curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -        #下载并解压 Linux 版 SteamCMD6)./steamcmd.sh                                                 #运行steamcmd,会自动更新文件,等他更新完成7)login anonymous                                             #这步如果连接不上steamcmd服务器的话,修改下dns,sudo resolvectl dns eth0 8.8.8.8 8.8.4.4;resolvectl status8)app_update 2394010 validate                           #开始下载幻兽帕鲁服务器,大概2.5G9)quit                                                                   #提示下载成功后退出steamcmd10)exit11)sudo -u steam -s                                            #这里以root身份升级为Steam用户没法用Tab一键补全,有点麻烦,我这里还是正常切换到steam用户12)cd /home/steam/Steam/steamapps/common/PalServer13)./PalServer.sh                                                  #运行帕鲁服务器,执行报错了,现在来处理报错14)ctrl+c                                                             #强制结束15)mkdir -p ~/.steam/sdk64/16)cd /home/steam/Steam17)./steamcmd.sh18)login anonymous19)app_update 100720)quit                                                                #下载成功,退出steamcmd21)cp ~/Steam/steamapps/common/Steamworks\ SDK\ Redist/linux64/steamclient.so ~/.steam/sdk64/22)cd /home/steam/Steam/steamapps/common/PalServer              #现在重新运行幻兽帕鲁服务器23)./PalServer.sh                                                                                 #这次运行帕鲁服务器,成功了,没有报错然后就可以进游戏了
  • [技术干货] 幻兽帕鲁Centos搭建教程
    我这里用的是Centos7.9====================================================================下载steamcmdyum install -y wget libxcb glibc.i686 libcurl.i686   #下载相关依赖工具sudo useradd -m steam   #这里要给steam单独创建一个用户,直接root做的话后面运行帕鲁服务器的时候会报错,提示不能在root用户下执行sudo -u steam -s       #切换到steam用户cd /home/steam         #进入主文件夹wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz    #下载steamcmdtar -zxvf steamcmd_linux.tar.gz      #解压steamcmd./steamcmd     #打开steamcmd#如果运行steamcmd报错/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory,那么就是上面的glibc.i686没有安装,那么你需要执行下面命令进行安装yum install glibc.i686   (glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万象。而就像其他的 UNIX 系统一样,其内含的档案群分散于系统的树状目录结构中,像一个支架一般撑起整个操作系统。)=======================================================================================下载幻兽帕鲁服务器login anonymous     #在刚刚运行的steamcmd里面输入该命令,然后回车app_update 2394010 validate     #下载/更新幻兽帕鲁服务器,文件大概2.5G大小exit    #下载好后退出,steamcmdcd /home/steam/Steam/steamapps/common/PalServer   #切换到刚刚下载的幻兽帕鲁目录./PalServer.sh    #运行幻兽帕鲁服务器延迟还不错===========================================================================修改世界参数(具体参数含义,我的其他帖子有可以参考下)cd /home/steam/Steam/steamapps/common/PalServer  #在该路径下vi /DefaultPalWorldSettings.ini     #这是默认配置模板,复制里面的全部内容,推荐用ssh工具连接到服务器,一般鼠标选中内容,鼠标右键有复制的选项。按住键盘shift+:   输入q 然后回车   #退出vi编辑器cd /home/steam/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer  #拿着刚才复制的内容来到该路径下vi PalWorldSettings.ini    #编辑文件键盘按下 i  进入编辑模式,然后把刚刚复制的内容,粘贴进来键盘按下ESC退出编辑模式,然后键盘同时按shift+: 输入wq!  保存并退出cd /home/steam/Steam/steamapps/common/PalServer./PalServer.sh                #重启帕鲁服务器,就生效了
  • [技术干货] 幻兽帕鲁搭建好了服务器之后,如何修改世界参数?
    接我上一篇文章,我是把steamcmd下载到C:\steamcmd这个路径的。如果你是下载到其他路径,那么就修改对应路径。回顾一下:之前我们启动幻兽帕鲁服务器的时候是在steamapps/common/PalServer 这个路径,运行PalServer.exe这个文件1)查看帕鲁服务器世界配置默认配置文件:路径是:steamapps/common/PalServer   这里有个 DefaultPalWorldSettings这个文件,用记事本打开它,这个里面记录的是初始配置,复制它2)复制内容,然后修改幻兽帕鲁服务器的世界配置文件:文件路径:steamapps/common/PalServer/Pal/save/Config/WindowsServer   记事本打开该文件PalWorldSettings,把刚刚复制的代码粘贴覆盖之前的内容。3)更改内容保存,之后重新启动幻兽帕鲁服务器。就是这个文件steamapps/common/PalServer/PalServer.exe-------------------------------------------------------------那么这个文件里面的参数,我们要知道他表示什么意思才能进行修改-----------------------------------下面给大家找到了各参数含义,大家可以对照进行修改Difficulty=None                                                        #难度None或DifficultyDayTimeSpeedRate=1.000000                                  #白天流逝速度NightTimeSpeedRate=1.000000                                #夜晚流逝速度ExpRate=1.000000                                                      #经验值倍率PalCaptureRate=1.000000                                         #捕捉概率倍率PalSpawnNumRate=1.000000                                   #帕鲁出现数量倍率PalDamageRateAttack=1.000000                             #帕鲁攻击伤害倍率PalDamageRateDefense=1.000000                         #帕鲁承受伤害倍率PlayerDamageRateAttack=1.000000                        #玩家攻击伤害倍率PlayerDamageRateDefense=1.000000                   #玩家承受伤害倍率PlayerStomachDecreaceRate=1.000000                #玩家饱食度降低倍率PlayerStaminaDecreaceRate=1.000000                 #玩家耐力倍率PlayerAutoHPRegeneRate=1.000000                     #玩家生命值恢复倍率PlayerAutoHpRegeneRateInSleep=1.000000        #玩家睡眠时生命恢复倍率PalStomachDecreaceRate=1.000000                     #帕鲁饱食度降低倍率PalStaminaDecreaceRate=1.000000                      #帕鲁耐力降低倍率PalAutoHPRegeneRate=1.000000                         #帕鲁生命值自然恢复倍率PalAutoHpRegeneRateInSleep=1.000000            #帕鲁睡眠时生命恢复倍率BuildObjectDamageRate=1.000000                       #对建筑物伤害倍率BuildObjectDeteriorationDamageRate=1.000000        #建筑物劣化速度倍率CollectionDropRate=1.000000                                      #可采集物品掉落倍率CollectionObjectHpRate=1.000000                              #可采集物品生命值倍率CollectionObjectRespawnSpeedRate=1.000000        #可采集物品生成速率EnemyDropItemRate=1.000000                                   #敌方掉落物品率DeathPenalty=All                                                            #死亡惩罚None不掉落Item只掉物品不掉装备ItemAndEquipment掉物品和装备All全都掉bEnablePlayerToPlayerDamage=False                        #启用玩家对玩家伤害功能bEnableFriendlyFire=False                                           #火焰伤害bEnableInvaderEnemy=True                                        #否会发生袭击事件bActiveUNKO=False                                                     #没有搜到这个的用途bEnableAimAssistPad=True                                        #启用瞄准辅助手柄bEnableAimAssistKeyboard=False                            #准星开启DropItemMaxNum=3000                                              #掉落物品最大数量DropItemMaxNum_UNKO=100                                  #掉落物品最大数量_UNKOBaseCampMaxNum=128                                            #大本营最大数BaseCampWorkerMaxNum=15                                   #大本营工人最多人数DropItemAliveMaxHours=1.000000                          #掉落物品存在最大时长bAutoResetGuildNoOnlinePlayers=False                 #自动重置没有在线玩家的公会AutoResetGuildTimeNoOnlinePlayers=72.000000                  #无在线玩家时自动重置生成时间GuildPlayerMaxNum=20                                                              #公会玩家最大数量PalEggDefaultHatchingTime=72.000000                                  #帕鲁蛋默认孵化时间WorkSpeedRate=1.000000                                                        #工作速率bIsMultiplay=False                                                                       #多人游戏bIsPvP=False                                                                             #是否开启PvPbCanPickupOtherGuildDeathPenaltyDrop=False                    #可拾取其他公会的死亡掉落物bEnableNonLoginPenalty=True                                                #启用不登录惩罚bEnableFastTravel=True                                                           #启用快速旅行bIsStartLocationSelectByMap=True                                        #通过地图选择起始位置bExistPlayerAfterLogout=False                                               #注销后玩家仍然存在bEnableDefenseOtherGuildPlayer=False                              #启用防御其他公会玩家功能CoopPlayerMaxNum=4                                                            #合作玩家最大人数ServerPlayerMaxNum=32                                                       #服务器玩家最大人数ServerName="Default Palworld Server"                                 #服务器名称ServerDescription=""                                                                #服务器描述AdminPassword=""                                                                  #管理员密码ServerPassword=""                                                                  #服务器密码PublicPort=8211                                                                       #服务器端口PublicIP=""                                                                               #服务器ipRCONEnabled=False                                                              #启用 RCONRCONPort=25575                                                                   #RCON端口Region=""                                                                                 #地区bUseAuth=True                                                                       #使用授权#由于游戏优化问题,这个游戏长时间运行内存可能会出现爆满,尤其是服务器如果内存较小,可以手动重启服务器。
  • [技术干货] 服务器的快照和备份和镜像有什么区别?
    快照:华为云目前快照是免费的,缺点是只能手动做快照,而且如果磁盘发生变更,例如你重装系统,或者切换镜像了,那么你的快照也会丢失。云备份:云备份是付费服务,需要购买存储库,然后设置一个策略,例如你想要每天早上9:00进行一次服务器备份。优点是实现了自动化。然后可以点击恢复恢复到你选择的备份时间点的数据。全量备份和增量备份都能还原当前时间点所有服务器数据。镜像:分为系统盘镜像和服务器镜像。系统盘镜像是把你选择的磁盘打包成一个镜像,下次可以用该镜像创建磁盘。服务器镜像是指把服务器中的系统盘和数据盘一起打包起来做成一个镜像,下次可以还原服务器数据。
  • [技术干货] 服务器中病毒,被攻击了怎么把?
    服务器中病毒和被攻击是两种情况。首先只要你的服务器或者你自己的电脑连接互联网,他都有可能中病毒和被攻击。这个是没有办法避免的,只能做好防护和预防。服务器中病毒:一般是因为服务器内搭建的软件,或者系统没有更新最新补丁有漏洞,或者是密码太弱被暴力破解了。中病毒最多的是勒索病毒和挖矿病毒勒索病毒:会把服务器内重要文件都加密上锁,然后让你给指定账户汇款或者支付BTC或者其他货币。但是一般就算是汇款了,对方还是会让你继续汇款,永无止境像一个黑洞。挖矿病毒:入侵服务器后,拿你购买的服务器,下载一个挖矿程序来为他工作。一般会消耗掉你所有的CPU,导致就算你重启服务器也是马上CPU就满载。服务器被攻击一般是指服务器被DDOS攻击,就是服务器收到大量的访问请求。由于这些请求一般都是正常的IP地址,例如黑客把其他用户,可能是你楼下邻居的电脑来大量访问你的服务器,所以一般很难防护,这种如果他坚持不懈一致攻击你,你可以安全组禁止他的IP地址访问,但是如果有很多很多地址,那一般只能更换IP地址了。被攻击一般华为云这边也有防护策略,会冻结IP对方停止攻击24小时后自动解封。这样做是因为如果你用的是按需计费的流量,那么你的流量会大量被消耗,会产生很多费用,这样避免了很多费用的产生。预防:1)只放通你需要使用的端口。2)修改服务器远程登录的端口。3)平时做好重要数据备份。或者购买备份服务定期备份。
  • [技术干货] 云耀云服务器L型更改安全组。更改安全组和配置安全组规则有什么区别?
    先说区别安全组意思是包含很多条服务器出入规则的集合。更改安全组意思是,你有好几个安全组,你要把服务器原先绑定的安全组更换成另一个安全组。添加安全组意思是例如现在你搭建了一个网站,这个网站是在443端口,然后你需要放通这个443端口才能访问到该网站。云耀云服务器L型安全组添加方法1)首先进入云耀云服务器L型服务器控制台,进入控制台方法我的其他帖子里有可以看看。这里我直接用云耀云服务器L型链接进入cid:link_02)点击你的服务器名称进入到服务器详细信息里3)点击左侧菜单栏第二个按钮-云主机4)再点击一下服务器名称,查看详情5)选择安全组-选择添加规则6)安全组各项参数含义一般出方向是默认全部放通的,因为出方向意思是从服务器流出的流量,这个没有必要限制。优先级:你添加的该条规则的优先级,默认填1就可以。策略:添加的这条规则是允许的还是禁止的。类型:IPV4还是IPV6咋门现在一般使用的都是IPV4协议端口:就是要放通什么端口,就直接填写例如22,23,24或者22-24这两种格式够可以。注意标点符号都是英文的。源地址:例如你的策略是允许,就是允许该IP地址访问你的这个端口。嫌麻烦可以写0.0.0.0/0代表全部放通。不过安全性也有所下降。
  • [技术干货] 最近超火游戏幻兽帕鲁服务器搭建教程
    概述:该游戏类似于我的世界,方舟进化等开放世界游戏。是Pocketpair开发的一款开放世界生存制作游戏。游戏中,玩家可以在广阔的世界中收集神奇的生物“帕鲁”,派他们进行战斗、建造、做农活,工业生产等。游戏背景:在帕鲁的世界,玩家可以选择与神奇的生物“帕鲁”一同享受悠闲的生活,也可以投身于与偷猎者进行生死搏斗的冒险。帕鲁可以进行战斗、繁殖、协助玩家做农活,也可以为玩家在工厂工作。玩家也可以将它们进行售卖,或肢解后食用步骤一:选购服务器,或者你自己在其他运营商已经有服务器的也是可以的。服务器参数:1)配置:4C16G 10M带宽 基本上十几个人游戏差不多。windows系统的系统本身占用较高所以配置高点比较好。2)操作系统:选择windows sever 2019/2022 注意是windows的很多人选择linux的那种是命令行操作,用远程桌面连接工具也连接不上的。3)系统盘:最低选60G,因为win系统一般系统本身都要占用十几G。4)安全组:入方向 添加 UDP 8211,或者你直接全部放通也可以,就是全部放通服务器安全性会降低。------------------------------------------------------------------至此购买服务器结束------------------------------------------------------------步骤二:登录服务器登录windwos服务器有两种方法1)第一种通过网页端控制台登录,这是弹性云服务器登录界面。这样登录会比较卡顿,可以尝试用方法22)通过windows系统自带远程桌面连接工具mstsc登录。你可以直接鼠标右键这个图标然后点击运行-输入-mstsc-确定;也可以直接搜索远程桌面连接工具#重置密码在华为云控制台-如果你是弹性云服务器-就在弹性云服务器更多-重置密码如果是云耀云服务器就在云耀云服务器控制台重置密码,云耀云服务器L型在云耀云服务器L型控制台重置。步骤三:接下来就是安装环境了1)在windows C盘下创建文件夹 命名为DirectX2)访问https://www.microsoft.com/zh-cn/download/details.aspx?id=35下载dxwebsetup.exe 目录选择刚刚创建的C:\DirectX下载完后运行下载的exe文件步骤四:安装Microsoft visual C++ runtime服务1)在windows C盘下创建文件夹,命名为visual2)访问https://aka.ms/vs/17/release/vc_redist.x64.exe3)下载VC_redist.x64.exe 目录选择 刚刚创建的C:\visual4)运行VC_redist.x64.exe,进行安装步骤五:安装steam CMD服务1)在windows C盘下创建文件夹 命名为steamcmd2)访问https://developer.valvesoftware.com/wiki/SteamCMD#Windows3)下载zip 目录选择刚刚创建的C:\steamcmd4)解压zip文件,运行exe 自行安装步骤六:安装palworld服务端1)运行steamcmd2)输入 login anonymous   匿名登录steam服务器3)输入 app_update 2394010 validate 后,按回车下载这个游戏的服务端4)安装完毕后,输入 quit 关闭cmd步骤七:运行palworld server打开此电脑(没有此电脑的话,在桌面右键鼠标-个性化-主题-桌面图标设置-勾选此电脑桌面就显示了)访问C:\steamcmd\steamapps\common\PalServer 运行PalSever.exe步骤八:连接palworld serverSteam启动palworld客户端 ,选择“加入多人游戏(专用服务器)”,最下方输入云服务器IP:8211 ,点击“连接”即可。例:111.111.111.111:8211
  • [问题求助] 服务器告警应该如何处理DIMM040 memory configuration error. Error code: 0x2902.
    使用超聚变服务,在IBMC控制台服务器告警应该如何处理DIMM040 memory configuration error. Error code: 0x2902.    
  • [问题求助] 使用镜像创建云服务器,可以指定系统盘大小吗?
    使用镜像创建云服务器,可以指定系统盘大小吗?求指点
  • [问题求助] 查看服务器实际功耗,计算服务器的能耗(周期耗电)。
    系统运行期间功率、能耗信息获取,求教:如何通过命令获取服务器的实际功率,或有其他好的方法? 目的:查看服务器实际功耗,计算服务器的能耗(周期耗电)。
总条数:37 到第
上滑加载中