SE_Yang 的文章
  • .NET Framework 3.5 安装文件下载(Windows Server 2012 R2 x64)

    .NET Framework 3.5 安装文件下载 【下载地址】.NETFramework3.5安装文件下载 .NET Framework 3.5 安装文件下载本仓库提供了一个用于安装.NET Framework 3.5的资源文件,文件名为 `.NET Framework 3.5的安装文件.rar` 项目地址: https://gitcode.com/open-source-toolkit/f7064 本仓库提供了一个用于安装.NET Framework 3.5的资源文件,文件名为 .NET Framework 3.5的安装文件.rar。该文件包含了从 windows_server_2012_r2_x64_dvd_2707961.iso 镜像中解压出来的 sxs.zip 文件。 文件描述 sxs.zip 是从 windows_server_2012_r2_x64_dvd_2707961.iso 镜像中解压出来的文件,可用于.NET Framework 3.5的安装。通过将指定备用源路径指向 sxs 文件放置的绝对路径,即可成功安装.NET Framework 3.5。 使用方法 下载 .NET Framework 3.5的安装文件.rar 文件。 解压文件,获取 sxs.zip 文件。 将 sxs.zip 解压到任意目录,并记住该目录的绝对路径。 在安装.NET Framework 3.5时,指定备用源路径为 sxs 文件所在的绝对路径。 按照提示完成.NET Framework 3.5的安装。 注意事项 确保解压后的 sxs 文件路径正确无误,否则可能导致安装失败。 本资源文件仅适用于Windows Server 2012 R2 x64系统。

    SE_Yang 2024-12-27
    5 0 0
  • Linux笔记—gcc/g++与编译链接

    1. 简单介绍 GCC(GNU Compiler Collection)是一个广泛使用的编译器集合,支持多种编程语言,包括C、C++、Objective-C、Fortran、Ada和Go等。 GCC中的C编译器通常被称为gcc,而C++编译器则被称为g++。 gcc和g++的区别 gcc:主要用于编译C语言代码。对于文件扩展名为.c的源文件,gcc会将它们作为C代码处理。 g++:主要用于编译C++语言代码。对于文件扩展名为.cpp、.cc、.cxx或.C的源文件,g++会将它们作为C++代码处理。 gcc和g++都是GNU编译器集合的一部分,但g++是专门用于C++编译的,而gcc则是一个更通用的编译器,可以处理C、C++在内的多种语言。在编译C++代码时,使用g++可以避免手动链接C++库的麻烦,并且能够确保C++特性的正确处理。 gcc与g++的使用方式十分相似,接下来我们主要以gcc编译C语言代码为例介绍。 2. 编译源代码 执行下面的指令即可使用gcc编译源代码,生成可执行程序或中间文件: gcc -o [目标文件] [编译选项] [要编译的文件] gcc [编译选项] [要编译的文件] -o [目标文件] [-o]选项用于指定要生成的文件的名称,若未指定则会发生默认行为,这个我们在下文中再进行讲解;[选项]用于选择将要编译的文件编译到哪个阶段。 2.1 编译的四个阶段 编译实际上会经历四个阶段:预处理、编译(整个编译过程中的一步)、汇编、链接。 在进行前三个阶段的过程中,每个阶段结束都会产生一个中间文件,以便下一个阶段接手该阶段的工作: • 预处理(进行宏替换/去注释/条件编译/头文件展开等) [.c文件] -> [.i文件] • 编译(生成汇编代码) [.i文件] -> [.s文件] • ​​​​​​​汇编(生成二进制机器码) [.s文件] -> [.o文件] • ​​​​​​​链接(将各个[.o文件]及相关库进行链接,生成可执行程序或库文件) [.o文件] -> [可执行程序或库文件] 可通过下面的选项控制执行到哪个阶段: • ​​​​​​​[-E]:到预处理阶……

    SE_Yang 2024-11-22
    5 0 0
  • Ubuntu 24.04 apt 更换国内镜像站源

    Ubuntu 24.04 LTS 后的source.list 24.04LTS 后,apt源的位置替换到了/etc/apt/sources.list.d/ubuntu.sources中 /etc/apt/sources.list # Ubuntu sources have moved to the /etc/apt/sources.list.d/ubuntu.sources # file, which uses the deb822 format. Use deb822-formatted .sources files # to manage package sources in the /etc/apt/sources.list.d/ directory. # See the sources.list(5) manual page for details. 同时,格式改变,现在为DEB822格式,详见这里 现在的格式是这样的 /etc/apt/sources.list.d/ubuntu.sources ## /etc/cloud/templates/sources.list.ubuntu.deb822.tmpl ## # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. ## Ubuntu distribution repository ## ## The following settings can be adjusted to configure which packages to use from Ubuntu. ## Mirror your choices (except for URIs and Suites) in the security section below to ## ensure timely security updates. ## ## Types: Append deb-src to enable the fetching of source package. ## URIs: A URL to the repository (you may add multiple URLs) ## Suites: The following additional suites can be configured ## <name>-updates - Major bug fix updates produced after the final release of the ## distribution. ## <name>-backports - software from this repository may not have been tested as ## extensively as that contained in the main release, although it includes ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports W……

    SE_Yang 2024-11-21
    53 0 0
  • [Linux关键词]内建命令

    内建命令 Linux 内建命令是指那些直接由操作系统核心提供,无需额外安装就可以在 Linux 环境下运行的基本命令。它们通常与 Linux 的系统管理、文件操作、网络管理等核心功能相关,例如 ls, cd, pwd, cat, mkdir 等。这些命令是 Bash 或其他 shell 环境默认支持的,不需要额外配置或第三方软件包就能使用。内建命令通常执行效率较高,因为它们是直接集成在内核或shell环境中的。 echo $? 在Linux系统中,echo $?是一个常用的命令行操作,它用于检查上一条命令的退出状态码(Return Code)。当你运行一个命令后,如果该命令成功执行,那么 $? 将显示0;如果命令执行失败, $? 就会显示相应的错误码,这个值通常是非零的。例如,如果你尝试运行一个不存在的命令,echo $?将返回一个非零值,表示命令执行出错。通过这种方式,你可以判断前一条命令是否成功完成。 进程僵尸 进程僵尸(Zombie Process),在计算机科学特别是操作系统中,是指那些已经结束但其父进程尚未通过wait()或waitpid()系统调用收集其退出状态的子进程。当一个子进程正常结束,它会产生一个退出状态,这个状态通常包含一些关于子进程结束原因的信息。如果父进程没有及时接收到这个信息并清除子进程的描述符,子进程就会变成僵尸进程。 僵尸进程不会占用额外的内存或CPU资源,但它会累积在系统中,增加系统资源管理的复杂性,因为每个僵尸进程都需要保留一份记录。此外,过多的僵尸进程可能会导致系统资源统计错误,因为它们虽然没有活动,但在计数上还是存在的。 正确的做法是,父进程应该定期检查是否有僵尸进程,一旦发现就调用wait()或waitpid()清理它们,以维护系统的健康和性能。 export 在Linux环境下,export是一个命令行工具,主要用于设置环境变量,并使其在当前shell会话以及所有由此启动的子shell中有效。当你在一个脚本中设置了某个……

    SE_Yang 2024-11-20
    7 0 0
  • 入门!Linux 常见指令及权限管理全面指南

    Linux 操作系统在现代计算机应用中扮演着重要的角色,广泛用于服务器、桌面系统、嵌入式设备及云计算平台等领域。理解和掌握 Linux 常见指令及权限管理机制,是每一位系统管理员和开发人员的基础技能。本文将详细介绍 Linux 系统的基本背景、常用指令、权限概念及其管理方法,并通过实际案例来更好地理解这些内容。 那么,我们进入正题! 一、Linux 系统的背景 1. Linux 的发展历史 Linux 系统由芬兰赫尔辛基大学的 Linus Torvalds 于 1991 年创建,其灵感来源于 UNIX 和 MINIX。最初的 Linux 版本发布于 Usenet 社区,该系统因其开源性和灵活性迅速在全球范围内获得广泛关注,并逐渐形成了一个庞大的社区生态。Linux 是自由和开源软件的典型代表,任何人都可以自由使用、修改和分发其源代码,这极大地推动了操作系统的发展与创新。 随着计算机技术的发展,Linux 在服务器、桌面系统和嵌入式设备等多个领域迅速普及。目前,Linux 已经成为云计算和大数据平台的首选操作系统,甚至在智能手机领域(如 Android)也占据了主导地位。 2. 开源文化和 Linux 的作用 Linux 的开源性不仅使其成为众多开发者的学习工具,还带动了一系列开源项目的发展。开源文化提倡代码共享和协作,使得开发人员能够共同改进软件,解决问题。GNU 通用公共许可协议(GPL)是 Linux 内核的许可协议,要求所有基于 GPL 许可的衍生作品在发布时必须公开源代码,从而保障了软件的自由性和用户的基本权益。 二、Linux 常见指令 Linux 提供了一系列常用的命令行工具,用于文件操作、系统管理、网络操作等任务。以下是一些基本的命令及其使用方式。 1. ls 命令:列出目录内容 ls 命令用于列出指定目录下的文件和子目录。常见选项包括: -a:显示所有文件,包括隐藏文件。 -l:显示文件的详细信息。 -R:递归显示所有子目录内容。 ls -al /home/us……

    SE_Yang 2024-11-19
    7 0 0
  • Nginx代理到https地址忽略证书验证配置

    Nginx代理到https地址忽略证书验证配置,不推荐在生产环境中使用 在配置中增加: proxy_ssl_server_name on; proxy_ssl_session_reuse ; Nginx在与后端服务器建立SSL/TLS连接时,将使用请求头中的Host字段值作为SNI的一部分,并且不会重用SSL/TLS会话。这种配置可能在特定场景下是有用的,但通常建议保持proxy_ssl_session_reuse为on以提高性能。 location /test/ { proxy_pass https://www.baidu.com/; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_ssl_server_name on;         proxy_ssl_session_reuse off; } proxy_ssl_server_name 当proxy_ssl_server_name设置为on时,Nginx会在与后端服务器建立SSL/TLS连接时,使用请求头中的Host字段值作为SNI(Server Name Indication)的一部分。SNI是SSL/TLS扩展,它允许客户端在握手过程中指示它想要连接的服务器的主机名。这对于那些托管在单个IP地址上的多个SSL/TLS证书的后端服务器来说非常重要,因为SNI允许服务器根据请求的主机名选择正确的证书。 如果proxy_ssl_server_name未设置或设置为off,Nginx将不会使用Host头部值作为SNI的一部分,这可能会导致SSL/TLS握手失败,特别是当后端服务器期望SNI时。 proxy_ssl_session_reuse proxy_ssl_session_reuse指令控制Nginx是否重用与后端服务器之间的SSL/TLS会话。当设置为off时,Nginx不会在多个请求之间重用SSL/TLS会话。这意味着每次Nginx与后端服务器建立连接时,都会进行完整的SSL/TLS握手过程,这可能会增加延迟和服务器负载。 相反,当proxy_ssl_session_reuse设置为on(这是默认值……

    SE_Yang 2024-11-18
    18 0 0
  • Linux 基本命令 ——tar(打包)

    tar:是要用来 打包或者解包 的命令,同时也是 压缩或者解压缩 的命令,常常用作备份文件使用,或将许多文件打成一个包并压缩。 注意:以下代码中 ^C 结尾的为注释行;蓝色字体为目录;红色字体为包 一、打包 tar -cf 包名 要被打包的文件或目录 tar [选项] [目标包名] [源文件或目录] 选项: -c:创建一个包 -f:;定义目标包 目标包名: 要打成的包名 源文件名或目录名: 哪些文件或目录要被打成包 代码如下: [root@iZbp1gh065n66eoqapqav5Z ~]# 快捷键 Ctrl+C 可以使得此行命令无效并进入新一行^C [root@iZbp1gh065n66eoqapqav5Z ~]# Ctrl+C 快捷键后会出现 ^c 指令,表示忽略此行命令^C [root@iZbp1gh065n66eoqapqav5Z ~]# 所以本篇博客代码中命令行出现 ^c 指令的请看做注释行^C [root@iZbp1gh065n66eoqapqav5Z ~]# 显示当前目录下所有文件及目录^C [root@iZbp1gh065n66eoqapqav5Z ~]# ls a.txt dir1 ds shellday1 soft [root@iZbp1gh065n66eoqapqav5Z ~]# 将 dir1 目录, a.txt 文件打包为aa.tar^C [root@iZbp1gh065n66eoqapqav5Z ~]# tar -cf aa.tar ./dir1 ./a.txt [root@iZbp1gh065n66eoqapqav5Z ~]# ls aa.tar a.txt dir1 ds shellday1 soft [root@iZbp1gh065n66eoqapqav5Z ~]# 使用 ls 命令再次查看当前目录下的文件及目录^C [root@iZbp1gh065n66eoqapqav5Z ~]# 可以看到出现了 aa.tar ,说明打包成功^C 二、查看包(在不解包的情况下查看) tar -tf 包名 tar [选项] [包名] 选项: -t:查看包里面的文件或目录 -f:;定义目标包 -v:显示打包过程(不重要,压缩包也适用) 目标包名: 要查看的包的路径 代码如下: [root@iZbp1gh065n66eoqapqav5Z ~]# 上一段代码将 dir1 目录, a.txt 文件打包为 aa.tar 包^C [root@iZbp1gh065n66eoqapqav5Z ~]# 使用 tar -tf aa.tar 可查看包内容^C [root@iZbp1gh065n6……

    SE_Yang 2024-11-18
    9 0 0
  • 已解决centos7 yum报错:cannot find a valid baseurl for repo:base/7/x86_64的解决方案

    出现cannot find a valid baseurl for repo:base/7/x86_64错误通常是由于YUM仓库源无法找到或无法访问,导致YUM无法正常工作。这种情况常见于CentOS 7系统。解决这个问题需要检查几个方面,如网络连接、DNS设置和YUM仓库源配置。 已解决centos7 yum报错:cannot find a valid baseurl for repo:base/7/x86_64的解决方案 报错说明 方法一:检查网络连接 检查网络连接 方法二:检查DNS设置 更新DNS配置 检查是否能解析域名 方法三:检查YUM仓库配置 更新YUM仓库源 示例:使用官方CentOS镜像配置 清理YUM缓存并重建缓存 方法四:使用阿里云或其他国内镜像源 清理并重建缓存 总结 报错说明 出现cannot find a valid baseurl for repo:base/7/x86_64错误通常是由于YUM仓库源无法找到或无法访问,导致YUM无法正常工作。这种情况常见于CentOS 7系统。解决这个问题需要检查几个方面,如网络连接、DNS设置和YUM仓库源配置。以下是详细的排查解决方法。 方法一:检查网络连接 首先,确保你的系统可以连接到互联网。这很重要,因为YUM需要访问远程仓库来下载软件包。 检查网络连接 可以通过以下命令检查系统是否能访问外部网站: ping -c 4 google.com 如果不能ping通,可能是网络配置问题。你需要确保网络连接正常,可能需要重新启动网络服务: sudo systemctl restart network 方法二:检查DNS设置 如果你的网络连接正常但依然不能访问仓库,可能是DNS问题。 更新DNS配置 编辑/etc/resolv.conf文件,确保其中包含有效的DNS服务器,例如Google的公共DNS: sudo nano /etc/resolv.conf 添加以下行: nameserver 8.8.8.8 nameserver 8.8.4.4 保存文件并退出。 检查是否能解析域名 再次检查系统是否能解析域名: ping -c 4 google.com 方法三:检查YUM仓库配置 如果网络连接和DNS设置都正常,可能是YUM仓库配置有问题,需要检……

    SE_Yang 2024-11-18
    1.8K+ 0 2
  • Linux安全与密钥登录指南

    在使用Linux服务器时,确保服务器的安全至关重要。本文将为你介绍一些关键的Linux安全措施,包括开启密钥登录、查看登录日志、限制登录IP以及查看系统中能够登录的账号。以下内容适合小白用户,通过简单的操作就能有效提升服务器的安全性。 目录 Linux安全概述 密钥登录的配置 生成密钥对 配置SSH密钥登录 查看登录日志 限制IP访问 设置IP封禁 允许特定IP访问 查看系统可登录的账号 1. Linux安全概述 Linux系统安全主要依赖于控制访问权限、监控异常行为以及进行安全配置。通过适当的登录方式和访问限制,可以有效避免未经授权的访问。密钥登录是一种更安全的认证方式,避免了明文密码的风险。而登录日志和IP限制则可以帮助我们识别和防御潜在的入侵。 2. 密钥登录的配置 密钥登录是一种比密码登录更安全的方式,通过生成一对公钥和私钥来验证用户身份。以下是配置步骤。 2.1 生成密钥对 在客户端(例如你的电脑)上生成密钥对: ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 1 执行后,会提示你设置密钥存放的路径(默认是~/.ssh/id_rsa),可以直接按Enter使用默认路径。接下来,如果你愿意,可以设置密钥的密码保护。 2.2 配置SSH密钥登录 将生成的公钥复制到Linux服务器上: ssh-copy-id -i ~/.ssh/id_rsa.pub username@server_ip 1 确认公钥文件已被正确添加到服务器上的~/.ssh/authorized_keys文件中。 在服务器上修改SSH配置,确保允许密钥登录并禁用密码登录: 编辑/etc/ssh/sshd_config文件: sudo nano /etc/ssh/sshd_config 1 确保以下设置: PasswordAuthentication no PubkeyAuthentication yes 1 2 保存文件并重启SSH服务: sudo systemctl restart ssh 1 3. 查看登录日志 Linux系统会记录所有登录活动。可以使用以下命令查看登录日志: sudo cat /var/log/auth.log | grep 'sshd' 1 ……

    SE_Yang 2024-11-18
    26 0 0
  • 网络运输层之UDP协议

      参考文章: 《TCP/IP详解卷一》 IP 报文格式大全 (huawei.com) RFC 768 - User Datagram Protocol (ietf.org) RFC 3828 - The Lightweight User Datagram Protocol (UDP-Lite) (ietf.org) RFC 8304 - Transport Features of the User Datagram Protocol (UDP) and Lightweight UDP (UDP-Lite) (ietf.org) UDP协议是什么?作用是什么?_udp是什么协议-CSDN博客 UDP协议详解通俗易懂-腾讯云开发者社区-腾讯云 (tencent.com) 【网络基础1】深入理解UDP协议:从报文格式到应用本质_udp报文格式与字段解析总结-CSDN博客 网络 - 肝了一周的 UDP 基础知识终于出来了。 - cxuan的技术园地 - SegmentFault 思否 关于UDP-读这篇就够了(疑难杂症和使用) - 那一抹风情 - 博客园 (cnblogs.com) 文章目录 网络运输层之(2)UDP协议 1. 介绍 1.1 概述 1.2 应用场景 1.3 RFC文档 2. 报文格式 2.1 UDP格式 2.2 UDP报文长度 2.3 UDP校验和 2.4 UDP和MTU关系 2.5 UDP-Lite 3. 实践 3.1 UDP绑定本地IP地址 3.2 UDP多地址绑定和端口复用: 3.3 限制远端IP地址 3.4 UDP相关攻击 1. 介绍 1.1 概述 用户数据报协议(User Datagram Protocol,简称UDP)是一种简单、高效、无连接的传输层协议。它是互联网协议族(Internet Protocol Suite)的重要组成部分,与传输控制协议(TCP)并列为传输层的两大协议之一。 与面向连接、可靠传输的TCP协议不同,UDP协议采用无连接通信模式,不保证数据包的可靠传输,也不具备拥塞控制等机制。发送方只管将数据报发送出去,而不关心数据是否正确到达目的地。 UDP的这些特点赋予了它独特的优势: 简单高效,UDP协议结构简单,不需要建立连接和维护复杂状态,减少了协议开销,传输效率高。 实时性好,由于不存在重传、顺序校验等可靠性机制,UDP具有极低的时延,非常适合实时性要求高的应用场景。 灵活性强……

    SE_Yang 2024-11-18
    16 0 0