《JAVA面经实录》- Nginx 和 Linux 面试题
《JAVA面经实录》- Nginx 和 Linux 面试题本文整理Nginx和Linux面试中最常考的题目覆盖基础认知、核心原理、实战操作、性能优化及问题排查每道题均提供面试标准回答补充考点适配初级到中级后端、运维岗位面试可直接用于备考。一、Nginx 高频面试题1. 什么是Nginx它的核心作用是什么面试标准回答Nginx发音engine x是一款开源的高性能HTTP和反向代理服务器同时也是一个IMAP/POP3/SMTP代理服务器由俄罗斯程序员Igor Sysoev开发核心优势是高并发、低内存占用、高稳定性。Nginx的核心作用主要有4点反向代理隐藏后端服务器IP接收客户端请求转发到后端应用服务器如Tomcat、SpringBoot实现请求分发和负载均衡负载均衡将客户端请求均匀分发到多个后端服务器提高系统并发处理能力避免单点故障静态资源服务器直接处理HTML、CSS、JS、图片等静态资源无需转发到后端提升资源访问速度正向代理代理客户端访问外部资源如翻墙代理但实际开发中较少用核心场景还是反向代理。面试补充Nginx的核心优势采用事件驱动模型epoll支持百万级TCP连接内存占用极低单进程占用几M到几十M内存稳定性强可7×24小时不间断运行且配置简单、扩展性强支持插件。2. Nginx 反向代理和正向代理的区别面试标准回答核心区别代理的对象不同正向代理代理客户端反向代理代理后端服务器具体对比如下对比维度正向代理反向代理代理对象代理客户端用户代理后端服务器如Tomcat客户端感知客户端知道代理的存在需手动配置代理地址客户端不知道代理的存在只知道Nginx的地址以为直接访问后端服务器核心作用突破网络限制如翻墙、隐藏客户端IP负载均衡、隐藏后端服务器IP、保护后端服务器、处理静态资源典型场景客户端通过代理访问外网网站集群多台Tomcat部署Nginx分发请求3. Nginx 负载均衡的常用策略有哪些面试标准回答Nginx默认支持多种负载均衡策略可根据业务需求配置核心常用的有5种其中轮询、权重、IP哈希是最常用的轮询默认将客户端请求依次分发到后端每台服务器适用于后端服务器性能一致的场景优点是配置简单缺点是无法根据服务器负载动态调整。权重weight给后端服务器分配不同的权重值weight值越大被分配到请求的概率越高适用于后端服务器性能不一致的场景如服务器配置不同例如 upstream backend { server 192.168.1.100 weight5; # 权重5被分配概率最高 server 192.168.1.101 weight3; # 权重3 server 192.168.1.102; # 默认权重1 }IP哈希ip_hash根据客户端IP地址进行哈希计算将同一个IP的请求始终分发到同一台后端服务器适用于需要会话保持的场景如用户登录后后续请求需访问同一台服务器获取会话优点是会话稳定缺点是可能导致负载不均。最少连接least_conn将请求分发到当前连接数最少的后端服务器适用于后端服务器负载波动较大的场景能动态调整负载分配。URL哈希url_hash根据请求的URL进行哈希计算将相同URL的请求分发到同一台服务器适用于静态资源缓存场景如同一图片请求始终访问同一台服务器利用缓存提升速度需安装第三方模块。面试补充负载均衡的健康检查Nginx可通过proxy_next_upstream配置当后端某台服务器故障时自动将请求转发到其他正常服务器实现故障转移提升系统可用性。4. Nginx 的核心配置文件结构是什么面试标准回答Nginx的核心配置文件是nginx.conf整体结构分为3个主要部分自上而下依次是全局块main配置Nginx全局参数作用于整个Nginx服务例如worker_processes 4; # 工作进程数建议设置为CPU核心数 error_log /var/log/nginx/error.log; # 错误日志路径 pid /var/run/nginx.pid; # Nginx进程PID文件路径核心参数worker_processes工作进程数直接影响并发能力、error_log错误日志、pid进程ID文件。events块配置Nginx的事件驱动模型影响Nginx与客户端的网络连接例如events { worker_connections 10240; # 每个工作进程最大连接数 use epoll; # 启用epoll事件模型Linux系统推荐高性能 }核心参数worker_connections单个worker进程的最大连接数总并发≈worker_processes×worker_connections、use epoll事件模型epoll是Linux下最高效的事件模型。http块Nginx的核心配置块包含HTTP协议相关的配置可嵌套多个server块虚拟主机例如http { include /etc/nginx/mime.types; # 引入MIME类型配置 default_type application/octet-stream; # 默认MIME类型 # 日志配置 log_format main $remote_addr [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for; access_log /var/log/nginx/access.log main; # 访问日志路径 # 负载均衡配置upstream块可嵌套在http块中 upstream backend { server 192.168.1.100; server 192.168.1.101; } # 虚拟主机配置server块每个server对应一个域名 server { listen 80; # 监听端口 server_name www.example.com; # 域名 # 反向代理配置 location / { proxy_pass http://backend; # 转发到负载均衡集群 proxy_set_header Host $host; # 传递客户端Host头 proxy_set_header X-Real-IP $remote_addr; # 传递客户端真实IP } # 静态资源配置 location ~* \.(html|css|js|png|jpg)$ { root /usr/share/nginx/html; # 静态资源根目录 expires 7d; # 静态资源缓存7天 } } }核心子块upstream负载均衡集群配置、server虚拟主机配置、location请求匹配规则配置。面试补充location匹配规则优先级精确匹配 前缀匹配^~ 正则匹配~、~* 普通前缀匹配其中~区分大小写~*不区分大小写。5. Nginx 如何处理静态资源为什么处理静态资源效率高面试标准回答Nginx处理静态资源的核心配置的是location块通过匹配静态资源后缀如.html、.css、.png直接读取服务器本地的静态文件无需转发到后端应用服务器具体配置如下Nginx处理静态资源效率高的核心原因有3点采用事件驱动模型epoll非阻塞IO单个worker进程可同时处理大量连接无需为每个连接创建新进程/线程减少资源开销内存映射mmapNginx将静态文件映射到内存中读取文件时直接从内存读取无需频繁操作磁盘提升读取速度优化配置支持支持gzip压缩、浏览器缓存expires、ETag、连接复用进一步减少网络传输量和资源重复请求。6. Nginx 如何实现高可用避免单点故障面试标准回答Nginx作为核心入口单点故障会导致整个系统不可用实现高可用的核心方案是主从架构一主一从/一主多从 Keepalived原理是部署两台及以上Nginx服务器一台为主服务器Master其余为从服务器Slave通过Keepalived监测Nginx状态当主服务器故障时自动将虚拟IPVIP切换到从服务器确保服务不中断。核心实现步骤部署两台Nginx服务器主192.168.1.100从192.168.1.101配置相同的Nginx反向代理、负载均衡规则两台服务器均安装Keepalived配置虚拟IP如192.168.1.200主服务器优先级高于从服务器Keepalived通过心跳检测默认每2秒检测一次监测主服务器的Nginx状态若主服务器Nginx停止运行或服务器宕机Keepalived自动将虚拟IP切换到从服务器客户端通过虚拟IP192.168.1.200访问服务无需关心主从切换实现高可用。面试补充补充配置在Keepalived配置中可添加Nginx状态检测脚本确保只有当Nginx真正故障时才触发主从切换避免因服务器网络波动导致误切换。7. Nginx 常见的优化策略有哪些面试标准回答Nginx优化主要围绕“提升并发能力、减少资源开销、加快响应速度”核心优化策略分为4类进程与连接数优化全局块events块worker_processes设置为CPU核心数如4核CPU设置为4充分利用CPU资源worker_connections提高到10240以上根据服务器配置调整增加单个worker进程的最大连接数开启worker_rlimit_nofile提高进程最大打开文件数避免文件描述符不足。静态资源优化http块location块开启gzip压缩gzip on压缩静态资源HTML、CSS、JS减小传输体积配置浏览器缓存expires设置静态资源缓存时间如图片缓存7天CSS/JS缓存30天开启ETag/Last-Modified实现资源缓存校验避免重复下载使用sendfile on开启零拷贝直接将文件从磁盘发送到网络无需经过内存拷贝。反向代理优化http块location块配置proxy_buffer代理缓冲区减少后端服务器的IO压力开启proxy_connect_timeout、proxy_read_timeout设置反向代理连接和读取超时时间传递客户端真实IPproxy_set_header X-Real-IP $remote_addr方便后端服务器日志排查。日志与进程优化关闭不必要的日志如静态资源访问日志或简化日志格式减少磁盘IO开启nginx进程守护如通过systemd管理Nginx确保进程异常退出后自动重启。8. Nginx 常见故障及排查方法面试标准回答Nginx常见故障主要集中在“启动失败、请求异常、5xx错误”核心排查思路查看日志→检查配置→验证后端服务→检查网络具体故障及排查方法如下故障1Nginx启动失败现象执行systemctl start nginx提示失败或nginx -t提示配置错误排查① 执行nginx -t检查配置文件语法最常见原因配置文件括号不匹配、参数错误② 检查端口是否被占用netstat -tulnp | grep 80若80端口被其他服务占用修改Nginx监听端口③ 检查日志/var/log/nginx/error.log查看具体错误信息。故障2客户端访问报502 Bad Gateway现象客户端访问Nginx提示502说明Nginx转发请求到后端服务器失败排查① 检查后端服务器是否正常运行如Tomcat是否启动systemctl status tomcat② 检查后端服务器端口是否可通telnet 192.168.1.100 8080③ 检查Nginx的upstream配置确认后端服务器IP、端口正确④ 查看Nginx错误日志确认转发失败原因。故障3客户端访问报404 Not Found现象客户端访问静态资源或接口提示404排查① 访问静态资源检查root配置的静态资源目录是否存在文件路径是否正确② 访问接口检查location匹配规则是否正确是否转发到正确的后端服务器③ 检查后端接口是否存在是否返回404。故障4Nginx并发量低、响应慢现象大量客户端访问时响应延迟高甚至出现超时排查① 检查Nginx进程和连接数配置worker_processes、worker_connections② 检查后端服务器负载top命令查看CPU、内存占用③ 检查静态资源是否开启gzip和缓存④ 查看Nginx访问日志分析高频请求优化请求路径。二、Linux 高频面试题1. Linux 常用的文件系统有哪些面试标准回答Linux文件系统是用于管理磁盘分区和文件的机制常用的文件系统分为两类本地文件系统和网络文件系统核心常用的有ext4最常用的本地文件系统是ext3的升级版本支持更大的文件和分区最大单个文件16TB最大分区1EB支持日志功能可恢复数据稳定性高适用于大多数Linux服务器如CentOS 7默认文件系统。xfs高性能文件系统支持更大的文件和分区最大单个文件8EB最大分区16EB读写速度快适合大文件存储场景如数据库、日志服务器CentOS 8默认文件系统。btrfs新一代文件系统支持快照、磁盘阵列、动态扩容等高级功能适合需要数据备份和高可用性的场景但稳定性不如ext4和xfs目前使用较少。tmpfs临时文件系统将文件存储在内存中读写速度极快但重启后数据丢失适合存储临时文件如/tmp目录。网络文件系统NFS用于跨服务器共享文件客户端可通过网络访问远程服务器的文件系统适用于多服务器共享数据的场景如集群部署。面试补充查看当前系统文件系统的命令df -T显示每个分区的文件系统类型查看指定分区文件系统blkid /dev/sda1。2. Linux 常用的系统命令按场景分类面试标准回答Linux命令是运维和后端开发必备技能按核心场景分类常用命令(1).文件/目录操作命令1.ls查看目录内容ls -l详细信息ls -a显示隐藏文件常用选项选项说明-a查看当前目录下的文件包括隐藏文件-l长格式显示文件-lh以方便阅读的长格式显示2.cd切换目录cd /切换到根目录cd ~切换到当前用户家目录常用选项命令说明cd ..返回上一级目录cd ../..返回上两级目录cd ~切换到家目录cd /切换到根目录cd /home/lx/linux1/绝对路径从家目录出发直到想要去的目录cd …/lx/相对路径从当前目录出发直到想去的目录3.pwd查看当前工作目录路径4.mkdir创建目录mkdir -p递归创建多级目录常用选项表选项说明-p层级创建-v显示创建顺序5.rm删除文件/目录rm -rf强制删除慎用常用选项表选项说明-f强制删除-r多级删除-rf强制删除给定目录下所有文件和目录rm 和 rmdir 的区别rm 有选项 rmdir 没有选项rmdir 只能删除空目录不能删文件rm 带上选项-r可以删除非空目录6.cp复制文件/目录cp -r递归复制目录常用选项表选项说明-f 或 --force强行复制文件或目录 不论目的文件或目录是否已经存在-i 或 --interactive覆盖文件之前先询问用户-r递归处理将指定目录下的文件与子目录一并处理。若源文件或目录的形态不属于目录或符号链接则一律视为普通文件处理-R 或 --recursive递归处理将指定目录下的文件及子目录一并处理7.mv移动/重命名文件/目录常用选项选项说明-fforce 强制的意思如果目标文件已经存在不会询问而直接覆盖-i若目标文件 (destination) 已经存在时就会询问是否覆盖注意如果只移动不改名字新名字可以不写。如果移动的同时改名字新名字一定要写。8.touch创建空文件。(2).文件内容查看命令1.cat查看文件全部内容适合小文件常用选项表选项说明-b对非空输出行编号-n对输出的所有行编号-s不输出多行空行2.more分页查看文件内容按空格翻页按q退出3.less分页查看文件内容支持上下翻页、搜索按q退出4.tail查看文件末尾内容tail -f实时监控文件变化常用于查看日志常用选项选项说明-f实时读取-1000查看最近1000行日志5.head查看文件开头内容head -n 10查看前10行。6.grep:用于查找文件里符合条件的字符串。选项说明-a将binary文件以text文件的方式查找数据-c计算找到 ‘查找字符串’ 的次数-i忽略大小写的区别即把大小写视为相同-v反向选择即显示出没有 ‘查找字符串’ 内容的那一行7.find:用来在指定目录下查找文件。常用选项选项说明-name test查询指定目录下,命名为test的文件-size 100k查询指定目录下文件大于100K的文件-ctime n查询指定目录下在过去n天内被修改过的文件8.vi/vim:基本上 vi/vim 共分为三种模式。8.1 命令模式Command mode8.2 输入模式Insert mode和8.3 底线命令模式Lastline mode。常用的几个命令i 切换到输入模式以输入字符。: 切换到底线命令模式以在最底一行输入命令。ESC退出输入模式切换到命令模式q 退出程序w 保存文件(3).系统状态查看命令1.top实时查看系统CPU、内存、进程占用情况按q退出2.free查看系统内存使用情况free -h以人性化格式显示3.df查看磁盘分区使用情况df -h人性化显示4.ps查看系统进程ps -ef查看所有进程ps -aux查看进程详细信息常用选项选项说明-A列出所有的进程 重要-ef查看全格式的全部进程 重要-w显示加宽可以显示较多的资讯-au显示较详细的资讯-aux显示所有包含其他使用者的行程5.netstat查看网络连接情况netstat -tulnp查看所有监听端口和对应进程netstat -anp | grep 端口号6.uptime查看系统运行时间和负载情况。(4).用户和权限操作命令1.useradd创建用户useradd test创建test用户2.passwd设置用户密码passwd test给test用户设置密码3.userdel删除用户userdel -r test删除test用户及家目录4.chmod修改文件/目录权限chmod 755 file给文件设置读、写、执行权限所有者7组用户5其他用户55.chown修改文件/目录所有者和所属组chown test:test file将file的所有者和组改为test。(5).网络操作命令1.ping测试网络连通性ping 192.168.1.100测试与该IP的连通性2.ifconfig查看和配置网卡信息CentOS 7也可用ip addr用于查看和更改网络接口的地址和参数包括IP地址、网络掩码、广播地址使用权限是超级用户3.ssh远程登录服务器ssh userip如ssh root192.168.1.1004.scp远程复制文件scp localfile userip:remotePath将本地文件复制到远程服务器。5.解压命令:tar -zxvf redis-3.2.8.tar.gz 解压到当前文件夹tar -zxvf redis-3.2.8.tar.gz -C /opt/java/ -C指解压到指定目录6.压缩命令:tar -zcvf redis-3.2.8.tar.gz redis-3.2.8/ ;语法 tar -zcvf 压缩后的名称 要压缩的文件tar -zcvf 压缩后的文件可指定目录 要压缩的文件可指定目录7.遇到一个不认识的命令式怎么办?(1).man 命令名(2).命令名 – help(3).info cat 命令名 查看命令的功能来源选项等(4).whatis 命令名(5).通过网络途径8.kill:用于删除执行中的程序或工作kill [选项]/[信号] 进程号。常用选项选项说明-lforce 强制的意思如果目标文件已经存在不会询问而直接覆盖-s若目标文件 (destination) 已经存在时就会询问是否覆盖常用信号信号说明-1(HUP)重新加载进程-9(KILL)杀死一个进程。(重点)-15(TERM)正常停止一个进程。3. Linux 权限管理r、w、x 权限的含义面试标准回答Linux是多用户、多任务操作系统权限管理是核心用于控制不同用户对文件/目录的访问权限每个文件/目录都有3类权限r读、w写、x执行分别对应3类用户所有者、所属组、其他用户。1. 权限符号含义r读权限数字4对文件可查看文件内容如cat、head命令对目录可查看目录内的文件和目录列表如ls命令。w写权限数字2对文件可修改文件内容如vi编辑、删除文件对目录可在目录内创建、删除、移动文件/目录如mkdir、rm、mv命令。x执行权限数字1对文件可执行该文件如Shell脚本、可执行程序对目录可进入该目录如cd命令。2. 权限表示方式权限有两种表示方式符号表示和数字表示例如rwxr-xr--符号表示rwx所有者权限、r-x所属组权限、r--其他用户权限数字表示rwx4217r-x4015r--4004所以数字表示为754。3. 常用权限配置场景文件权限755所有者有读、写、执行权限所属组和其他用户有读、执行权限适合可执行程序、Shell脚本文件权限644所有者有读、写权限所属组和其他用户有读权限适合普通文件、配置文件目录权限755所有者有读、写、执行权限所属组和其他用户有读、执行权限适合普通目录目录权限777所有用户都有读、写、执行权限慎用存在安全风险适合临时共享目录。面试补充特殊权限SUID让普通用户执行文件时拥有所有者权限如passwd命令、SGID让用户执行文件时拥有所属组权限、Sticky Bit仅目录可用让目录内的文件只能被所有者删除。4. Linux 进程管理查看、终止、后台运行面试标准回答Linux进程是程序的运行实例进程管理核心是“查看进程、终止异常进程、后台运行进程”常用命令和操作如下查看进程ps -ef查看所有进程的详细信息PID、PPID、所有者、进程名称等PPID是父进程IDps -aux查看所有进程的资源占用情况CPU、内存占用率top实时查看进程资源占用按P排序CPU占用从高到低按M排序内存占用从高到低pgrep 进程名根据进程名查询进程PID如pgrep nginx查询nginx进程的PID。终止进程kill PID发送默认信号15终止进程适用于正常进程如kill 1234终止PID为1234的进程kill -9 PID发送强制终止信号9适用于异常卡死的进程无法正常终止时使用慎用会导致进程资源无法释放killall 进程名根据进程名终止所有相关进程如killall nginx终止所有nginx进程。后台运行进程命令末尾加将进程后台运行如java -jar app.jar但关闭终端后进程会终止nohup 命令后台运行进程且关闭终端后进程仍继续运行如nohup java -jar app.jar输出日志默认保存到nohup.out文件jobs查看当前终端后台运行的进程fg 进程编号将后台进程切换到前台如fg 1将编号为1的后台进程切换到前台。面试补充进程状态Linux进程有5种常见状态通过ps命令查看STAT列R运行态、S睡眠态、D不可中断睡眠态、Z僵尸态、T停止态其中僵尸态Z是进程已终止但父进程未回收其资源需终止父进程或重启系统解决。5. Linux 磁盘管理分区、格式化、挂载面试标准回答Linux磁盘管理核心是“分区→格式化→挂载”只有完成这三步磁盘才能被系统识别和使用具体操作流程如下步骤1查看磁盘信息执行fdisk -l查看系统中所有磁盘和分区信息如/dev/sda是第一块硬盘/dev/sda1是第一块硬盘的第一个分区。步骤2磁盘分区使用fdisk /dev/sda进入分区工具执行以下操作输入n创建新分区选择分区类型主分区p扩展分区e设置分区大小输入w保存分区设置退出分区工具。步骤3格式化分区将分区格式化为指定的文件系统如ext4、xfs命令mkfs.ext4 /dev/sda2将/dev/sda2分区格式化为ext4文件系统。步骤4挂载分区将格式化后的分区挂载到系统的某个目录挂载点才能访问分区内的文件临时挂载mount /dev/sda2 /mnt/data将/dev/sda2挂载到/mnt/data目录重启系统后挂载失效永久挂载编辑/etc/fstab文件添加一行配置/dev/sda2 /mnt/data ext4 defaults 0 0保存后执行mount -a使配置生效重启后仍保持挂载。面试补充常用磁盘相关命令df -h查看挂载分区使用情况、du -sh 目录查看目录占用磁盘空间大小、mount查看当前所有挂载信息。6. Linux 防火墙配置CentOS 7/8面试标准回答Linux防火墙用于控制网络访问CentOS 7/8默认使用firewalld防火墙替代了CentOS 6的iptables核心操作包括“开启/关闭防火墙、开放端口、查看防火墙状态”具体命令如下查看防火墙状态systemctl status firewalldactive(running)表示开启inactive(dead)表示关闭。开启/关闭/重启防火墙开启systemctl start firewalld关闭systemctl stop firewalld生产环境不建议关闭可开放指定端口重启systemctl restart firewalld设置开机自启systemctl enable firewalld关闭开机自启systemctl disable firewalld。开放端口常用临时开放端口重启防火墙后失效firewall-cmd --add-port80/tcp开放80端口tcp协议永久开放端口firewall-cmd --add-port80/tcp --permanent开放后需重启防火墙systemctl restart firewalld生效查看已开放端口firewall-cmd --list-ports关闭开放的端口firewall-cmd --remove-port80/tcp --permanent重启防火墙生效。开放服务替代开放端口例如开放ssh服务firewall-cmd --add-servicessh --permanent重启防火墙生效。面试补充若系统使用iptables防火墙CentOS 6或手动安装常用命令service iptables start/stop/restart开启/关闭/重启iptables -A INPUT -p tcp --dport 80 -j ACCEPT开放80端口。7. Linux 日志管理常用日志路径及查看方法面试标准回答Linux日志用于记录系统运行状态、服务运行情况、错误信息等是排查故障的核心依据常用日志路径和查看方法如下核心日志路径/var/log/messages系统核心日志记录系统启动、内核、服务等所有重要信息是排查系统故障的首选/var/log/nginx/error.logNginx错误日志记录Nginx启动、转发、访问过程中的错误信息/var/log/nginx/access.logNginx访问日志记录所有客户端访问Nginx的请求信息IP、时间、请求路径、状态码等/var/log/secure安全日志记录用户登录、sudo操作、ssh登录等安全相关信息如密码错误、远程登录成功/var/log/mysqld.logMySQL日志记录MySQL启动、运行、错误等信息路径可能因MySQL配置不同而变化/var/log/boot.log系统启动日志记录系统启动过程中的所有信息。日志查看常用方法实时监控日志tail -f /var/log/messages实时查看系统日志变化查看日志中包含指定关键词的内容grep error /var/log/nginx/error.log查看Nginx错误日志中的error信息查看指定时间范围内的日志结合grep和时间格式如grep 2024-05-01 /var/log/access.log查看日志最后100行tail -n 100 /var/log/messages。面试补充日志轮转Linux通过logrotate工具实现日志轮转将旧日志压缩、重命名避免日志文件过大配置文件路径/etc/logrotate.conf全局配置、/etc/logrotate.d/各服务单独配置如nginx、mysql。8. Linux 远程登录方式及密钥登录配置面试标准回答Linux远程登录是运维和开发的常用操作核心方式有“密码登录”和“密钥登录”其中密钥登录更安全避免密码泄露是生产环境首选具体配置和操作如下1. 密码登录基础方式通过ssh命令远程登录命令ssh 用户名服务器IP例如ssh root192.168.1.100输入密码后即可登录若服务器端口不是默认22需指定端口ssh -p 2222 root192.168.1.100。2. 密钥登录推荐更安全核心原理客户端生成公钥和私钥将公钥上传到远程服务器登录时客户端用私钥验证无需输入密码具体配置步骤步骤1客户端生成密钥对Windows用Xshell、PuttyLinux/macOS用终端ssh-keygen -t rsa按回车默认生成密钥存储路径~/.ssh/id_rsa是私钥id_rsa.pub是公钥无需设置密码若设置密码登录时需输入密钥密码。步骤2将客户端公钥上传到远程服务器ssh-copy-id root192.168.1.100输入服务器密码即可将公钥id_rsa.pub复制到服务器的~/.ssh/authorized_keys文件中。步骤3测试密钥登录 执行ssh root192.168.1.100无需输入密码直接登录成功。步骤4优化安全可选 修改服务器ssh配置文件/etc/ssh/sshd_config禁用密码登录PasswordAuthentication no只允许密钥登录重启ssh服务systemctl restart sshd生效提升安全性。面试补充ssh配置文件核心参数Port 22ssh默认端口可修改为其他端口提升安全性、PermitRootLogin yes允许root用户登录可设置为no禁止root直接登录、AuthorizedKeysFile .ssh/authorized_keys指定公钥存储文件。9. Linux 的目录结构是怎样的● /bin存放二进制可执行文件(ls,cat,mkdir 等)常用命令一般都在这里● /boot存放用于系统引导时使用的各种文件● /dev用于存放设备文件● /etc存放系统管理和配置文件● /home存放所有用户文件的根目录是用户主目录的基点比如用户 user 的主目录就是/home/user可以用~user 表示● /lib 存放着和系统运行相关的库文件 ● /lostfound这个目录平时是空的系统非正常关机而留下“无家可归”的文件windows 下叫什么.chk就在这里。● /mnt系统管理员安装临时文件系统的安装点系统提供这个目录是让用户临时挂载其他的文件系统● /proc虚拟文件系统目录是系统内存的映射。可直接访问这个目录来获取系统信息● /root超级用户系统管理员的主目录特权阶级 o● /sbin: 存放二进制可执行文件只有 root 才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如 ifconfig 等● /tmp用于存放各种临时文件是公用的临时文件存储点● /usr用于存放系统应用程序/opt额外安装的可选应用程序包所放置的位置。一般情况下我们可以把 tomcat 等都安装到这里● /var用于存放运行时需要改变数据的文件也是某些大文件的溢出区比方说各种服务的日志文件系统启动日志等。等