Yellowdog Updater, Modified (缩写为 YUM) 是一个用于 RPM (红帽软件包管理器) 基于的 Linux 发行版的包管理器,例如 CentOS、Fedora 和 RHEL (红帽企业 Linux)。YUM 使安装、更新、删除和管理软件包变得简单。在本文中,我们将介绍 YUM 的基本命令和原理,这将帮助您有效管理您在 Linux 系统 上的软件包。 安装软件包 YUM 包管理器的主要和最常用的任务之一是安装软件。为此使用 yum install 命令。让我们看一个安装 nginx 网络服务器的例子 sudo yum install nginx 执行此命令后,YUM 将自动查找安装 nginx 所需的所有依赖项,下载并安装它们。 搜索软件包 在安装软件包之前,您可以使用 yum search 命令在仓库中搜索它。例如,要搜索与“网站”相关的包: yum search website 此命令将返回所有在其描述或名称中包含“网络服务器”关键字的软件包的列表。 更新软件包 YUM 还允许您将已安装的软件包更新到最新版本。要更新特定软件包,请使用 yum update 命令并指定软件包名称: sudo yum […]
绝对每个面临网站和应用程序开发的用户都明白,在现代互联网技术的世界中,项目的性能是一个关键因素。快速加载的页面不仅改善用户体验,还提高网站的SEO评级。这对您项目的利润增长动态也有很大影响。可以显著提高HTTP请求性能的工具之一是Varnish Cache。本文旨在考虑使用Varnish的好处以及它如何对您有用。首先要提到的是,Varnish是一个高性能的HTTP加速器,用于缓存网站内容。它的工作是安装在网络服务器前面,处理来自客户端的请求,返回缓存的页面副本,而不是每次都联系网络服务器。这显著减少了服务器的负载,并加快了请求的处理速度。也就是说,这个工具实际上加快了您服务器的工作,有时甚至是几倍。 如何安装和管理Varnish 安装方法取决于具体的操作系统,在本指南中,重点是Ubuntu 22.04。可以使用以下命令安装Varnish: apt install varnish 成功安装Varnish后,您需要配置它以与您的网络服务器一起工作。默认情况下,Varnish监听6081端口。您可以在文件中更改配置 /etc/varnish/default.vcl. 例如,如果您决定更改端口(例如,http-alt端口),它可能看起来像这样 backend default { .host = “127.0.0.1”; .port = “8080”; 与Varnish一起工作的示例 与Varnish一起工作的方式有几种变体。例如,您需要配置缓存的生存时间(TTL),并且可以根据内容类型进行配置。例如,对于新闻网站,您可以为当前新闻设置较短的缓存生存时间,为归档新闻和不那么当前的材料设置较长的时间。 sub vcl_backend_response { if (bereq.url ~ “^/news”) { set beresp.ttl = 2m; } else { set beresp.ttl = 72h; } } 您如何使用它来改善HTTP性能 用户通过使用Varnish来改善其HTTP性能可以获得几个重要的好处。以下是其中一些: 匿名化。互联网用户经常经历扫描域名的过程。这可能表明存在反向代理,它将获取有关代理服务器的信息,而不是其背后的真实网络服务器。 安全性。受反向代理保护的网站可以更轻松地避免恶意攻击。这将有助于保持网站的顺利运行,而不会对您的客户造成任何损失。 SSL下载或SSL终止。反向代理可以接受所有HTTPS请求,并与用户的浏览器进行SSL握手。这些请求随后被转换为HTTP并发送到网络服务器。这使您的服务器免于SSL握手,并可以处理其他重要活动(如下载网页内容的其余部分); 最后,缓存!如果您允许反向代理在您的页面上临时存储静态内容,则每当有新的请求时,它将被处理:不会回到原始服务器,您的页面将加载得更快。
在使用Linux服务器时,您可能需要开始使用bash。Bash(Bourne Again Shell)是Linux和类Unix操作系统中最流行和强大的命令行解释器之一。它的主要优势在于为用户提供了广泛的命令和工具,用于管理系统、自动化任务和执行各种操作。在本指南中,我们将介绍一些最佳的Bash命令,使在Linux上的工作变得更加轻松。具体来说,将提供特殊命令、它们的描述以及如何简化工作。 任务范围相当广泛;下面将列出您可以处理的所有类型的任务,以更好地理解Linux shell,这可以简化您在管理中的工作。 创建、移动、重命名和删除文件和目录 比较和合并文件 网络和远程访问 压缩和解压缩文件 编辑和操作文件中的文本 调度任务的自动执行 touch – 创建新文件 touch命令是创建新文件的最简单方法,但它也可以用于更改文件和/或目录的时间戳。您可以使用一个命令创建任意数量的文件,而无需担心覆盖同名文件。 语法: touch [other options] file_name(s) locate – 查找特定文件或目录 该命令能够最轻松地找到文件或特定目录。这将帮助扩展搜索范围,特别是对于不完全了解自己在寻找什么的初学者。这将帮助缩小您的搜索范围。 语法: locate [options] filename(s) 常用选项:-q, -n, -i compgen – 显示所有可用命令、别名和函数 Linux中的compgen命令用于生成可能的命令补全、别名、变量和其他可以在Bash命令行上使用的项目的列表。它通常用于自动补全和脚本编写,使用户能够快速获取可用选项和命令的列表。我们还认为重要的是要注意一些细节,即所有可用命令的列表。 -a:列出所有别名。 -b:列出所有保留字。 -k:列出所有关键字(Bash中的保留字)。 -A 函数:列出所有函数。 -v:列出所有变量。 -f:列出当前目录中的所有文件和目录。 语法(所有命令的列表): compgen -c 语法(所有保留字的列表): compgen -b 简化管理的网络命令 Linux中的网络命令是系统管理员不可或缺的工具,因为它们允许您有效管理网络设置、诊断问题并确保网络的稳定运行。以下是一些网络命令如何简化管理的示例: ping ping命令检查远程主机的可达性。ping example.com:向example.com发送数据包并显示统计信息。 curl curl命令用于使用各种协议从服务器传输数据或向服务器传输数据。curl […]
在使用服务器时,通常会出现配置HTTP协议正确操作的需求。毫无疑问,经验丰富的管理员和新手都可能会遇到困难。具体来说,401(未授权)错误是最常见的HTTP响应之一,它表示请求的资源需要身份验证。在本文中,我们将探讨401错误的含义、原因,以及最重要的,解决它的有效方法。 什么是401 – 未授权错误? 错误401 – 未授权意味着尝试访问网络服务器上的资源的用户或客户端未经过身份验证或访问权限不足。服务器期望客户端提供正确的凭据(登录名和密码)以访问请求的资源。 401错误的原因 凭据不正确。 客户端可能提供了错误的登录名或密码。 缺少凭据。客户端未提供任何凭据以访问资源。 访问权限不足。客户端的凭据可能是正确的,但客户端没有访问特定资源的权限。 服务器设置错误。不正确的服务器配置可能导致401错误。 解决401 – 未授权错误的有效方法 凭据验证 发生401错误时,首要且最明显的措施是确保输入的登录名和密码是正确的。如果您确信凭据是正确的,但仍然遇到错误,请尝试重置密码并重新输入。验证身份验证令牌的正确性也需要您额外的注意。现代Web应用程序通常使用令牌(如JWT)来验证用户。凭据验证包括: 令牌续期:令牌有一个到期日期,过期后将失效。验证令牌并更新它可以恢复访问。 令牌有效性:确保令牌完整且格式正确 检查服务器上的身份验证设置 服务器管理员应审查Web服务器上的身份验证配置。确保所有必需的身份验证模块已启用并正确配置。例如,Apache服务器可能需要mod_auth_basic或mod_auth_digest模块。 设置访问权限 检查请求资源的访问权限。确保发出请求的帐户具有访问该资源的足够权限。如有必要,请更改服务器配置文件或访问控制系统设置。 重启服务器和客户端 这种简单的无行动也可能是导致此错误的原因。在某些情况下,简单地重启服务器或客户端可能会解决问题。这可能有助于更新配置并解决临时错误。 清除浏览器缓存和Cookies 在某些情况下,401错误可能是由于浏览器中过时或损坏的Cookies或缓存数据引起的。清除浏览器的缓存和Cookies,然后尝试再次访问资源。 使用匿名浏览器模式 尝试在隐身模式或浏览器的私密模式下访问资源。这将有助于确定问题是否与浏览器设置或凭据有关。通过提供高水平的安全性、隐私和保密性,AlexHost致力于保护其客户。您将能够使用匿名浏览器,这将增加您的隐私,并使用我们的服务获得离岸服务。 软件更新 确保您的Web服务器和客户端应用程序的所有组件都更新到最新版本。有时,错误可能是由于在软件的新版本中已经修复的bug引起的。 检查API配置 如果您正在使用API,请确保您的客户端请求已正确配置以发送凭据。在您的API请求中包含所需的身份验证头(例如,Authorization: Bearer <token>)。
安全,安全,安全……我们已经提到了 双因素认证以及如何 保护您的凭据。安全的一个重要方面不仅是制定一个强密码,还要知道如何正确存储它并保护其免受黑客攻击。您需要正确理解密码在 Linux 中的存储位置和方式,以及采取了哪些安全措施。在本文中,我们将查看各种检查命令的方法,这些命令将向您展示您在 Linux shell 上的所有可用密码。出于显而易见的原因,本文不会提供截图,但会显示实际命令,帮助您检查密码。 方法 #1 /etc/passwd 和 /etc/shadow 基本用户信息存储在 /etc/passwd 文件中,但实际密码现在存储在单独的 /etc/shadow 文件中。/etc/passwd 文件对所有用户可读,但 /etc/shadow 仅对超级用户(root)可读。这显著降低了密码被泄露的风险。 方法 #2. Shadow Suite Shadow Suite 提供了额外的帐户管理和密码安全工具。此外,它还包括 passwd、useradd、usermod 等实用程序,提供安全的帐户管理。 方法 #3. 密码加密 Linux 使用密码哈希以安全的形式存储密码。加密使用 MD5、SHA-256、SHA-512 等算法进行。这防止了如果 /etc/passwd 或 /etc/shadow 文件泄露时直接访问真实密码。 方法 #4. SELinux(安全增强 Linux) SELinux 通过控制对文件和资源的访问提供了额外的安全层。这可以防止对密码文件和其他敏感信息的未经授权访问。要检查,请输入以下命令 sestatus 方法 #5. PAM(可插拔认证模块) PAM 提供了一种架构,以启用各种认证方法,包括密码输入。PAM 模块配置在 /etc/pam.d/ […]
安全外壳(SSH)是一种广泛使用的协议,用于在不安全的网络上进行安全通信。这个应用层协议非常流行,允许用户远程管理操作系统。SSH 密钥对提供了一种安全且方便的方式来验证身份并登录到远程服务器,而无需使用密码。在 Linux 中管理 SSH 密钥的两个重要命令是 ssh-keygen 和 ssh-copy-id。这些命令在提供安全访问服务器和设置基于密钥的身份验证方面发挥着关键作用。在本文中,我们将探讨这些命令的工作原理、如何正确使用它们,以及它们如何帮助您安全高效地管理服务器。 ssh-keygen 命令用于创建一个新的 SSH 密钥对,包括一个私钥和一个公钥。私钥存储在您的本地计算机上,用于验证您的身份,而公钥则传输到您想要访问的服务器上。这个过程有助于避免每次连接时都输入密码,从而大大提高了安全性,因为密钥更难被窃取或伪造。 在使用 ssh-keygen 创建密钥后,您需要将公钥传输到服务器上以设置访问权限。这就是 ssh-copy-id 命令的用途。它会自动将您的公钥复制到目标服务器,并将其添加到 ~/.ssh/authorized_keys 文件中,使您可以在不输入密码的情况下连接到服务器。 在这里查看所有可用的 VPS 资费计划 安装 ssh-copy-id 命令 什么是 ssh-copy-id?首先,这个工具是 OpenSSH 包的一部分,并且在所有主要的 Linux 发行版仓库中都可以找到。在本文中,例如,使用的是 Debian 12 版本的服务器。使用这个工具,您可以使用您的包管理器来安装这个命令。这个工具还可以帮助您将 SSH 公钥复制到远程服务器并将其添加到文件中。要在 Debian 上安装 ssh-copy-id 工具,请使用以下命令: sudo apt-get update && sudo apt-get install openssh-client 安装过程如下 您可以这样检查命令 – ssh-copy-id。输出将如下所示 要开始积极使用它,您可以运行以下命令: ssh-copy-id […]
pushd 和 popd 命令是专门的工具,允许用户高效地管理 Linux 和其他类 Unix 操作系统上的目录栈。尽管它们具有很大的实用性和强大功能,但这些命令往往被低估,并不像其他目录导航命令那样广为人知。 pushd 命令允许用户在更改当前工作目录的同时,将之前的目录保存到栈中。当您需要频繁在目录之间切换时,这尤其有用,因为 pushd 使得临时存储当前位置并允许稍后快速访问变得容易。例如,如果您正在处理一个项目并需要切换到文档目录以检查某些内容,您可以使用 pushd 切换到新目录,然后返回到原始目录,而无需记住其确切路径。 另一方面,popd 用于恢复之前存储在目录栈中的目录。此命令检索最后一个使用 pushd 存储的位置,从而使您能够轻松返回到先前的目录,而无需重新输入完整路径。这在复杂的脚本或任务中尤其有用,因为用户需要在多个目录之间反复移动。 pushd 描述:pushd 用于更改当前目录并将其推入栈中。因此,当前目录更改为指定的目录,旧目录被添加到栈中。 示例: pushd /path/to/new/directory popd 描述:popd 用于返回栈中存储的上一个目录。它从栈中弹出最后一个目录,并将其设置为当前目录。 示例: popd 使用示例: $ pushd /path/to/first_directory /path/to/first_directory /path/to/source/your_directory $ pushd /path/to/second_directory /path/to/second_directory /path/to/directory1 /path/to/your_directory $popd /path/to/first_directory /path/to/source/your_directory 因此,pushd 将当前目录添加到栈中并切换到新目录,而 popd 则从栈中弹出最后一个目录并将其设置为当前目录。这在不同目录中执行命令并快速切换时非常有用。毫无疑问,用户通常使用 cd 命令在一个目录和另一个目录之间移动。然而,如果您在命令行上花费大量时间,请尝试使用 pushd 和 popd 命令。相信我,您会节省管理时间,提高生产力和效率。
在 AlexHost Linux VPS 上像专业人士一样导航和管理文件 为什么要掌握 Linux CLI 导航? 像 cat、less 和 tail 这样的命令行工具是您在 AlexHost 托管的 Linux VPS 上管理文件的超能力。凭借完全的根访问权限和闪电般快速的 SSD,AlexHost 提供了一个完美的环境,让您能够高效地浏览文件、监控日志或调试应用程序。本指南深入探讨了如何使用 cat、less 和 tail 快速导航和管理文件,并提供了针对您的 VPS 的实用示例。 Cat Linux 中的 cat 命令用于将文本文件的内容输出到终端。名称 “cat” 源于连接(concatenate),反映了该命令的主要功能之一 – 合并文件并将其内容输出到一个流中。以下是使用该命令的示例,显示操作系统及其版本的输出,以及一些详细信息。 cat /etc/*release Less 至于这个工具,less 一次查看一个页面的文件。它是如何工作的?它的特别之处在于它提供了一种方便的方式来查看大型文本文件,允许您上下滚动,以及执行各种导航操作。关于导航的详细描述,我们在 这里 进行了详细说明。 Tail Linux 中的 tail 命令旨在显示文本文件的最后几行。当您需要实时监控文件的变化时,它非常有用,尤其是在日志、日志或其他不断添加数据的文件的情况下。例如,该命令将显示最后 100 行并实时监控变化。 tail -n 100 -f your_filename.txt […]
Nginx 是一个高性能的开源 web 服务器。它是一个非常流行的软件,旨在处理来自客户端(例如 web 浏览器)的 HTTP 请求,并向它们提供网页和其他内容。安装 Nginx 非常简单,只需一个命令即可。输入以下命令即可轻松安装此 web 服务器: apt install nginx 您必须通过按 Y 来同意安装。结果将类似于以下内容。 本文使用 Debian 12,所有命令以 root 身份运行。购买虚拟或 专用服务器 时,您始终可以获得此访问权限。 运行 Nginx 启动 Nginx 非常简单。只需运行以下命令: systemctl start nginx 如果成功,命令不会产生任何结果。 如果您使用的是没有 systemd 的 Linux 发行版来运行 Nginx,请输入: service start nginx 建议配置 Nginx 在系统启动时自动启动,而不是手动启动 Nginx 服务: systemctl enable nginx 重启 Nginx 重启过程快速、易于学习,但非常重要。每当您对 Nginx […]
Linux因其多功能性和强大性能而闻名,使其成为全球开发人员、系统管理员和高级用户中最受欢迎和广泛采用的操作系统之一。其开源特性和强大的社区支持促进了其持续的发展和改进,使其成为从个人计算到企业级基础设施的可靠选择。 Linux的一个关键优势在于其命令行界面(CLI),它为用户提供了直接访问系统核心功能的能力。与可能抽象某些元素的图形界面不同,CLI允许用户以精确和高效的方式与系统进行交互。通过大量的命令,用户可以执行从基本文件操作和系统监控到高级网络、脚本和自动化的任务。 这种强大的命令行环境特别受到寻求速度、控制和自定义的专业人士的青睐。例如,系统管理员使用CLI工具来管理服务器、配置服务、监控资源和排除故障——所有这些都不需要图形桌面环境。另一方面,开发人员依赖它来编译代码、管理版本控制系统如Git,并通过脚本和容器快速部署应用程序。 这篇文章旨在介绍一些最基本和实用的Linux命令,提供一个全面的概述,帮助新手和经验丰富的用户更熟练地使用Linux终端。 理解Linux终端 Linux终端或命令行界面(CLI)是一个基于文本的界面,允许用户通过输入命令与操作系统进行交互。与依赖于按钮和窗口等视觉元素的图形用户界面(GUI)不同,终端要求用户输入文本命令来执行任务。这种方法提供了高度的控制和精确性,使其成为许多高级用户的必备工具。 ls 表示列表。通常用于显示当前目录的内容。示例: ls -l – 显示文件的详细列表。 CD 表示更改目录。通常用于在目录之间导航。示例: cd /home/user – 进入用户目录“user”。 pwd 表示打印工作目录。通常用于显示当前工作目录的完整路径。示例: pwd – 显示当前路径。 cp 表示复制。通常用于复制文件或目录。示例: cp file1.txt /path/to/your_destination – 复制一个文件。 mv 表示移动。通常用于移动文件或目录。示例: mv file1.txt /path/to/your_destination – 移动一个文件。 rm 表示删除。通常用于删除文件或目录。示例: rm your_file1.exe – 删除一个文件。 mkdir 表示创建目录。通常用于创建一个新目录。示例: mkdir new_your_directory – 创建一个新目录。 rmdir 表示删除目录。通常用于删除特定目录。示例: rmdir old_your_directory – 删除一个空目录。 […]
