当前位置: 首页 > news >正文

Linux面试经典题目(七)

如何使用 telnet 发送 HTTP 请求?

例如:

telnet example.com 80
Trying 192.168.252.10...
Connected to example.com.
Escape character is '^]'.
GET /questions HTTP/1.0
Host: example.com

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8


<clipboard-copy aria-label=“Copy” class=“ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center” data-copy-feedback=“Copied!” data-tooltip-direction=“w” value="telnet example.com 80
Trying 192.168.252.10…
Connected to example.com.
Escape character is ‘^]’.
GET /questions HTTP/1.0
Host: example.com

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
…" tabindex=“0” role=“button”>






如何在 Linux 中使用例如 80 端口杀死程序?

要列出侦听端口 80 的任何进程:

# with lsof
lsof -i:80

# with fuser
fuser 80/tcp


<clipboard-copy aria-label=“Copy” class=“ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center” data-copy-feedback=“Copied!” data-tooltip-direction=“w” value="# with lsof
lsof -i:80

with fuser

fuser 80/tcp" tabindex=“0” role=“button”>






要终止任何侦听端口 80 的进程:

kill $(lsof -t -i:80)

或更猛烈地:

kill -9 $(lsof -t -i:80)

或使用 command:fuser

fuser -k 80/tcp

有用的资源:

  • 如何杀死在 Linux 中的特定端口上运行的进程?
  • 使用特定端口查找进程的 PID?
您得到 curl:(56) 对等体重置 TCP 连接。您将采取哪些步骤来解决此问题?
  • 检查 URL 是否正确,也许您应该添加或设置正确的 header?另请检查方案(http 或 https)wwwHost:
  • 检查域是否正在解析为正确的 IP 地址
  • 使用 启用调试跟踪。 是一个非常通用的错误,因此很难了解更多信息--trace-ascii curl.dumpRecv failure
  • 使用外部代理进行来自外部 IP 的调试连接--proxy
  • 使用网络嗅探器(例如 )在较低的 TCP/IP 层中调试连接tcpdump
  • 检查生产环境和网络出口点上的防火墙规则,并检查 NAT 规则
  • 检查通过您的网络传输的数据包的 MTU 大小
  • 如果连接到 HTTPS 协议,请使用 SSL/TLS 参数检查 SSL 版本curl
  • 这可能是客户端的问题,例如 Netfilter 丢弃或限制从您的 IP 地址到域的连接

有用的资源:

  • CURL 错误:接收失败:对等体重置连接 - PHP Curl
如何使用 iptables 允许进出特定 IP 的流量?

例如:

/sbin/iptables -A INPUT -p tcp -s XXX.XXX.XXX.XXX -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -d  XXX.XXX.XXX.XXX -j ACCEPT
如何在 OpenBSD 中使用 pf 阻止滥用 IP 地址?

执行此操作的最佳方法是在 : 中定义一个表并创建规则来阻止主机 :pf.conf

table <badhosts> persist
block on fxp0 from <badhosts> to any

然后从中动态添加/删除 IP 地址:

pfctl -t badhosts -T add 1.2.3.4
pfctl -t badhosts -T delete 1.2.3.4
Apache 或 Nginx 等 Web 服务器何时将信息写入日志文件?在送达请求之前还是之后?

这两个服务器都提供了非常全面和灵活的日志记录功能 - 用于记录服务器上发生的所有事情,从初始请求到 URL 映射过程,再到连接的最终解析,包括过程中可能发生的任何错误。

阿帕奇

Apache 服务器访问日志记录服务器处理的所有请求(请求完成后)。

Nginx 浏览器

NGINX 在处理完请求后立即将客户端请求的相关信息写入访问日志中。

有用的资源:

  • Apache 何时记录到 access.log - 在提供请求之前或之后?
  • 处理前的 nginx 日志请求
分析 Web 服务器日志并仅显示 5xx http 代码。您使用哪些外部工具?
tail -n 100 -f /path/to/logfile | grep "HTTP/[1-2].[0-1]\" [5]"

http/https 日志管理工具示例:

  • GoAccess - 是一个开源的实时 Web 日志分析器和交互式查看器,在 *nix 系统的终端中运行或通过您的浏览器运行
  • Graylog - 是一个免费的开源日志管理平台,支持深入的日志收集和分析

有用的资源:

  • 最佳日志管理工具:51 个用于日志管理、监控、分析等的有用工具
开发者使用服务器上的私钥通过 ssh 部署 App。为什么这是不正确的行为,在这种情况下更好(但不理想)的解决方案是什么?

您拥有个人账户的私有密钥。服务器需要您的公钥,以便它可以验证您尝试使用的账户的私钥是否已获得授权。

私钥的重点是它们是私有的,这意味着只有您拥有您的私钥。如果有人接管了您的私钥,它将能够随时冒充您。

更好的解决方案是使用 ssh 密钥转发。一个 essence,如果它不存在,你需要创建一个文件。然后,添加主机(文件中的域名或 IP 地址,并设置 )。例:~/.ssh/configForwardAgent yes

Host git.example.comUser johnPreferredAuthentications publickeyIdentityFile ~/.ssh/id_rsa.git.example.comForwardAgent yes

您的远程服务器必须允许在入站连接上转发 SSH 代理,并且您的本地服务器必须正在运行。ssh-agent

转发 ssh 代理 本身会带来安全风险。如果远程计算机上的某人可以访问您转发的 ssh 代理连接,他们仍然可以使用您的密钥。但是,这比在远程机器上存储密钥要好:攻击者只能使用 ssh 代理连接,而不能使用密钥本身。因此,只有当您登录到远程计算机时,他们才能执行任何操作。如果您将密钥存储在远程计算机上,他们可以复制该密钥并随时使用它。

如果您使用 ssh 密钥,请记住密码短语,强烈建议这样做,以降低密钥意外泄漏的风险。

有用的资源:

  • 如何在 SSH 会话中转发本地密钥对?
  • 使用 SSH 代理转发
  • SSH 代理转发被视为有害
  • 使用 ssh-agent 时的安全注意事项
CORS 和 CSP 有什么区别?

CORS 允许放宽域的同源策略

例如,通常,如果用户同时登录到 和 ,则同源策略会阻止向响应发出 AJAX 请求并获取对响应的访问权限。example.comexample.orgexample.comexample.org/current_user/full_user_details

这是 Web 的默认策略,可防止用户的数据在同时登录多个站点时泄露。

现在有了 CORS,可以设置一个策略,允许源读取 AJAX 做出的响应。如果两者 和 都由同一家公司运行,并且允许用户的浏览器中在源之间共享数据,则可以执行此操作。它只影响 Thing 的 Client 端,而不会影响 Server 端。example.orghttps://example.comexample.comexample.org

另一方面,CSP 设置了哪些内容可以在当前站点上运行的策略。例如,是否可以内联执行 JavaScript,或者可以从哪些域加载文件。这有利于作为抵御 XSS 攻击的另一道防线,攻击者将尝试将脚本注入 HTML 页面。通常 output 会被编码,但是假设开发人员只忘记了一个 output 字段。由于策略阻止内联脚本执行,因此攻击被阻止。.js

有用的资源:

  • CORS 和 CSP 有什么区别?(原文)
  • CSP、SRI 和 CORS
解释使用 nmap 扫描时来自防火墙的四种响应类型。

可能有四种类型的响应:

  • 开放端口 - 在防火墙的情况下端口很少
  • 关闭端口 - 由于防火墙的原因,大多数端口都已关闭
  • 已过滤 - 不确定端口是否打开nmap
  • 未过滤 - 可以访问端口,但仍然对端口的打开状态感到困惑nmap

有用的资源:

  • NMAP - 封闭式 vs 过滤式
tcpdump 有什么作用?如何仅捕获进入接口的流量?

tcpdump是一种功能最强大且使用最广泛的命令行数据包嗅探器或软件包分析器工具,用于捕获或过滤通过特定接口上的网络接收或传输的 TCP/IP 数据包。

tcpdump将你的网卡置于混杂模式,这基本上是告诉它接受它收到的每个数据包。它允许用户查看通过网络传递的所有流量。Wireshark 使用 pcap 捕获数据包。

如果您只想查看到达您的接口的数据包,您应该:

  • -Q in- 对于 Linux 版本tcpdump
  • -D in- 对于 BSD 版本tcpdump

这两个参数都设置了应该捕获数据包的发送/接收方向。

tcpdump -nei eth0 -Q in host 192.168.252.125 and port 8080
Devops 问题 (7)
哪些是顶级的 DevOps 工具?您使用过哪些工具?

下面提到了最流行的 DevOps 工具:

  • Git:版本控制系统工具
  • Jenkins:持续集成工具
  • Selenium : 持续测试工具
  • PuppetChefAnsible:配置管理和部署工具
  • Nagios : 持续监控工具
  • Docker:容器化工具
所有这些工具如何协同工作?

下面提到了最流行的 DevOps 工具:

  • 开发人员开发代码,此源代码由 Git 等版本控制系统工具管理。
  • 开发人员将此代码发送到 Git 存储库,并在代码中所做的任何更改都提交到此存储库
  • Jenkins 使用 Git 插件从存储库中提取此代码,并使用 Ant 或 Maven 等工具构建它
  • 像puppet这样的配置管理工具部署和配置测试环境,然后Jenkins在测试环境中发布此代码,测试环境是使用像selenium这样的工具完成的。
  • 一旦代码经过测试,Jenkins会将其发送到生产服务器上进行部署(甚至生产服务器也由像puppet这样的工具进行配置和维护)
  • 部署后 它由 Nagios 等工具持续监控
  • Docker 容器提供测试环境来测试构建功能
Ansible 中的剧本是什么?

Playbook 是 Ansible 的配置、部署和编排语言。

它们可以描述您希望远程系统实施的策略,或一般 IT 流程中的一组步骤。Playbook 设计为人类可读的,并以基本文本语言开发。

在基本层面上,playbook 可用于管理远程计算机的配置和部署到远程计算机。

什么是 Nagios 中的 NRPE (Nagios Remote Plugin Executor)?

NRPE 插件旨在允许您在远程 Linux/Unix 机器上执行 Nagios 插件。这样做的主要原因是允许 Nagios 监控远程机器上的 “本地” 资源(如 CPU 负载、内存使用情况等)。

由于这些公共资源通常不会向外部计算机公开,因此必须在远程 Linux/Unix 计算机上安装 NRPE 等代理。

Nagios 的主动和被动检查有什么区别?

主动检查和被动检查之间的主要区别在于,主动检查是由 Nagios 发起和执行的,而被动检查是由外部应用程序执行的。

被动检查可用于监控以下服务:

  • 本质上是异步的,无法通过定期轮询其状态来有效监控。
  • 位于防火墙后面,无法从监控主机主动检查。

Actives 检查的主要功能如下:

  • 主动检查由 Nagios 进程启动。
  • 主动检查定期运行。
如何 git clone 包含子模块?

例如:

# With -j8 - performance optimization
git clone --recurse-submodules -j8 git://github.com/foo/bar.git

# For already cloned repos or older Git versions
git clone git://github.com/foo/bar.git
cd bar
git submodule update --init --recursive


<clipboard-copy aria-label=“Copy” class=“ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center” data-copy-feedback=“Copied!” data-tooltip-direction=“w” value="# With -j8 - performance optimization
git clone --recurse-submodules -j8 git://github.com/foo/bar.git

For already cloned repos or older Git versions

git clone git://github.com/foo/bar.git
cd bar
git submodule update --init --recursive" tabindex=“0” role=“button”>






提及使用 Redis 有哪些优势?什么是 redis-cli
  • 它提供高速(比其他产品快得多)
  • 它支持服务器端锁定
  • 它有很多客户端库
  • 它具有命令级别原子操作 (tx operation)
  • 支持丰富的数据类型,如哈希、集、位图

redis-cliRedis 命令行界面,一个简单的程序,允许直接从终端向 Redis 发送命令,并读取服务器发送的回复。

有用的资源:

  • Redis 的 10 大优势
网络安全问题 (4)
什么是 XSS,您将如何缓解它?

跨站点脚本是 Web 应用程序中的一个 JavaScript 漏洞。解释这一点的最简单方法是,用户在客户端输入字段中输入脚本,并且该输入未经验证就得到处理。这会导致不受信任的数据在客户端被保存和执行。

XSS 的对策是输入验证、实施 CSP(内容安全策略)等。

http://www.lryc.cn/news/626691.html

相关文章:

  • 在SQL中使用大模型时间预测模型TimesFM
  • 不会写 SQL 也能出报表?积木报表 + AI 30 秒自动生成报表和图表
  • sqlalchemy 是怎么进行sql表结构管理的,怎么进行数据处理的
  • 深度学习核心技巧
  • SQL-leetcode— 2356. 每位教师所教授的科目种类的数量
  • Kafka如何保证「消息不丢失」,「顺序传输」,「不重复消费」,以及为什么会发送重平衡(reblanace)
  • Mybatis执行SQL流程(五)之MapperProxy与MapperMethod
  • 在完全没有无线网络(Wi-Fi)和移动网络(蜂窝数据)的环境下,使用安卓平板,通过USB数据线(而不是Wi-Fi)来控制电脑(版本2)
  • 力扣 hot100 Day79
  • 大数据常见问题分析与解决方案
  • ODPS 十五周年实录 | 为 AI 而生的数据平台
  • Flask高效数据库操作指南
  • 面向AI应用的新一代迷你电脑架构解析 ——Qotom Q51251AI
  • 【39页PPT】大模型DeepSeek在运维场景中的应用(附下载方式)
  • imx6ull-驱动开发篇31——Linux异步通知
  • Jumpserver堡垒机使用VNC录入Linux图形界面资产
  • 十大经典 Java 算法解析与应用
  • 机器学习--数据清洗—(续篇)
  • (nice!!!)(LeetCode 每日一题) 1277. 统计全为 1 的正方形子矩阵 (动态规划)
  • C++ MFC/BCG编程:文件对话框(CFileDialog、CFolderPickerDialog)
  • 力扣48:旋转矩阵
  • 数据结构之排序大全(1)
  • 2.Shell脚本修炼手册之---创建第一个 Shell 脚本
  • 大模型入门实战 | 单卡 3090 十分钟完成 Qwen2.5-7B 首次微调
  • 电脑驱动免费更新? 这款驱动管理工具:一键扫更新,还能备份恢复,小白也会用~
  • c语言多任务处理(并发程序设计)
  • iOS App 混淆工具实战 医疗健康类 App 的安全与合规保护
  • Elasticsearch 写入全链路:从单机到集群
  • [系统架构设计师]面向服务架构设计理论与实践(十五)
  • [element-plus] el-tree 拖拽到其他地方,不拖拽到树上