如何高效控制Linux服务器?需要掌握哪些核心命令和工具?

控制Linux服务器是系统管理员的核心任务,涉及服务管理、进程调度、用户权限、系统监控、安全防护等多个维度,确保服务器稳定、安全、高效运行,以下从关键操作场景出发,详细说明控制Linux服务器的方法与实践。

如何控制linux的服务器

服务管理:服务器功能的核心载体

Linux服务(Daemon)是后台持续运行的程序,提供Web、数据库、网络等功能,服务管理是服务器控制的基础,需掌握启动、停止、重启、开机自启等操作。

服务管理工具

  • Systemd(现代主流):CentOS 7+、Ubuntu 16+等系统默认使用,通过systemctl命令管理。
    • 启动服务:systemctl start nginx
    • 停止服务:systemctl stop nginx
    • 重启服务:systemctl restart nginx
    • 查看服务状态:systemctl status nginx
    • 设置开机自启:systemctl enable nginx
    • 禁止开机自启:systemctl disable nginx
    • 查看服务依赖:systemctl list-dependencies nginx
  • SysVinit(传统系统):CentOS 6、Ubuntu 14等旧系统使用,通过servicechkconfig命令。
    • 启动服务:service nginx start
    • 开机自启:chkconfig nginx on

服务日志排查

服务异常时,需通过日志定位问题,Systemd服务日志可通过journalctl查看:

  • 实时查看日志:journalctl -u nginx -f
  • 查看最近100行日志:journalctl -u nginx --no-pager -n 100
  • 按时间筛选:journalctl -u nginx --since "2024-01-01 10:00"

服务依赖管理

Systemd支持服务依赖关系,通过Wants(弱依赖)、Requires(强依赖)等配置,确保服务按正确顺序启动,Nginx服务可配置依赖网络服务(network.target),避免网络未就绪时启动失败。

进程管理:服务器资源调度的核心

进程是程序执行的实例,合理管理进程可避免资源耗尽、服务卡顿等问题。

进程查看工具

  • ps:静态查看进程,ps aux显示所有进程详细信息(用户、CPU、内存占用等),ps -ef以全格式展示。
  • top:动态实时监控,按CPUMEM排序,k键终止进程,f键自定义显示字段。
  • htop:top的增强版(需安装),支持鼠标操作、进程树可视化,更直观。
  • pgrep:按名称查找进程ID,如pgrep nginx返回Nginx主进程PID。

进程控制

  • 终止进程kill(普通终止)、kill -9(强制终止,无法忽略信号),如kill -9 1234(PID为1234的进程)。
  • 进程优先级调整nice值(-20到19,值越小优先级越高),启动时设置nice -n -10 nginx;运行中调整renice 15 1234(将PID 1234进程优先级设为15)。
  • 进程守护:关键进程需持久化运行,避免意外退出,可通过systemd将进程封装为服务(如编写.service文件),或使用supervisor(Python进程管理工具,支持自动重启)。

资源限制

为防单个进程占用过多资源,可通过ulimit限制用户或进程的资源:

如何控制linux的服务器

  • 限制最大文件数:ulimit -n 65536
  • 限制最大内存:ulimit -v 1073741824(1GB)
  • 永久限制:编辑/etc/security/limits.conf,添加* soft nofile 65536(*表示所有用户)。

用户与权限控制:服务器安全的基石

最小权限原则是安全管理的核心,需严格控制用户权限,避免越权操作。

用户管理

  • 创建用户useradd -m -s /bin/bash testuser(-m创建家目录,-s指定默认shell)。
  • 修改用户usermod -l newname oldname(改名)、usermod -aG sudo testuser(添加sudo组)。
  • 删除用户userdel -r testuser(-r删除家目录)。

权限管理

Linux通过r(读)、w(写)、x(执行)权限控制文件访问,搭配chmod(修改权限)、chown(修改所有者)管理:

  • 符号法:chmod u+x script.sh(用户添加执行权限)、chmod g-w file.txt(组移除写权限)。
  • 数字法:chmod 755 script.sh(所有者rwx,组和其他r-x)。
  • 递归修改:chmod -R 755 /var/www/html(修改目录及子目录权限)。

sudo权限配置

允许普通用户执行管理员命令,编辑/etc/sudoers(使用visudo命令避免语法错误):

  • 单用户授权:testuser ALL=(ALL) /usr/bin/apt, /usr/bin/systemctl
  • 用户组授权:%admin ALL=(ALL) ALL(admin组用户可执行所有命令)。

特殊权限

  • SUID:用户执行文件时以文件所有者权限运行(如passwd命令),设置chmod u+s /usr/bin/passwd
  • SGID:用户进入目录后继承目录组权限,设置chmod g+s /data/project
  • Sticky Bit:仅文件所有者可删除目录内文件(如/tmp),设置chmod +t /tmp

系统监控与性能优化:保障服务器高效运行

实时监控服务器状态,及时发现并解决性能瓶颈,是控制服务器的关键环节。

系统资源监控

  • CPU监控topP键CPU排序,vmstat 1每秒刷新CPU、内存、IO数据(r列运行进程数,us列用户CPU占用)。
  • 内存监控free -h(人性化显示内存使用),-/+ buffers/cache列是实际可用内存(需减去缓存和缓冲区)。
  • 磁盘监控df -h查看分区使用情况,iostat -xz 1监控磁盘IO(await平均等待时间,svctim服务时间)。
  • 网络监控netstat -tlnp查看监听端口,ss -tlnp(netstat替代品,性能更好),iftop实时流量监控(需安装)。

性能优化

  • 资源限制:通过cgroups(控制组)限制进程CPU、内存使用,如cgcreate -g cpu,memory:/nginx_cgroup创建组,cgset -r cpu.cfs_quota_us=50000 nginx_cgroup限制CPU使用率50%。
  • 内核参数调优:编辑/etc/sysctl.conf,优化网络、文件系统,如:
    net.ipv4.tcp_max_syn_backlog = 65536  # SYN队列长度
    fs.file-max = 1000000                 # 最大文件句柄数

    生效命令:sysctl -p

    如何控制linux的服务器

  • 定期清理:清理日志(logrotate轮转)、临时文件(/tmp)、无用包(apt autoremove),释放磁盘空间。

安全控制:防范未然,抵御威胁

服务器安全是控制的重中之重,需从访问控制、漏洞修复、入侵检测等多维度加固。

防火墙配置

  • firewalld(CentOS 7+)
    • 添加允许端口:firewall-cmd --permanent --add-port=80/tcp
    • 重载规则:firewall-cmd --reload
    • 查看规则:firewall-cmd --list-all
  • iptables(传统)
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT  # 允许SSH
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT  # 允许HTTP
    iptables -A INPUT -j DROP                     # 禁止其他访问
    service iptables save  # 保存规则

SSH安全加固

  • 禁用root登录:编辑/etc/ssh/sshd_config,设置PermitRootLogin no
  • 密钥认证:禁用密码登录,设置PasswordAuthentication no,客户端通过ssh-keygen生成密钥对上传。
  • 修改默认端口:Port 2222(避免默认22端口扫描)。
  • 防暴力破解:安装fail2ban,监控SSH失败登录,封禁恶意IP(如/etc/fail2ban/jail.local配置)。

漏洞与入侵检测

  • 系统更新:定期执行apt update && apt upgrade(Ubuntu)或yum update(CentOS),修复已知漏洞。
  • 入侵检测工具:使用Lynis(系统安全审计)、Rkhunter(检测rootkit),定期扫描异常文件或进程。
  • 日志审计:启用auditd服务,记录关键操作(如登录、文件修改),日志存于/var/log/audit/

网络服务配置:提供稳定对外服务

服务器通常需提供Web、数据库、DNS等网络服务,需掌握安装、配置、优化方法。

常见服务部署

  • Nginx Web服务:安装apt install nginx,配置文件/etc/nginx/nginx.conf/etc/nginx/sites-available/default,通过systemctl restart nginx生效。
  • MySQL数据库:安装mysql-server,安全初始化mysql_secure_installation,配置/etc/mysql/mysql.conf.d/mysqld.cnf(调整缓冲池大小innodb_buffer_pool_size)。
  • DNS服务:安装bind9,配置/etc/bind/named.conf和区域文件,通过nslookup测试解析。

端口与连接管理

  • 查看端口占用:netstat -tlnp | grep :80(查看80端口占用进程)。
  • 端口转发:使用iptablessocat,如将80端口转发到8080:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

常用监控工具对比表

工具名 用途 常用命令 特点
top 实时进程监控 top -p 1234(指定进程) 系统内置,轻量
htop 增强版进程监控 htop --sort-cpu 交互式,支持进程树
vmstat 系统资源统计 vmstat 1 5(每秒1次,共5次) CPU、内存、IO综合统计
iostat 磁盘IO监控 iostat -xz 1 详细磁盘性能指标
iftop 实时网络流量监控 iftop -i eth0(指定网卡) 按连接/主机显示流量

相关问答FAQs

Q1:如何查看Linux服务器上某个服务的详细日志?
A:对于Systemd管理的服务(如Nginx),使用journalctl命令:

  • 实时查看日志:journalctl -u nginx -f-f持续跟踪)
  • 查看最近1小时日志:journalctl -u nginx --since "1 hour ago"
  • 查看带时间戳的完整日志:journalctl -u nginx --no-pager -o cat
    若服务使用传统Syslog(如Apache),日志通常位于/var/log/目录(如/var/log/apache2/error.log),使用tail -f实时查看:tail -f /var/log/apache2/error.log

Q2:如何禁止某个用户远程登录SSH?
A:有3种常用方法:

  1. 修改用户Shell:将用户登录Shell设置为/sbin/nologin(仅禁止远程登录,可本地操作),命令:usermod -s /sbin/nologin username
  2. SSH配置禁止:编辑/etc/ssh/sshd_config,添加DenyUsers username,重载SSH服务:systemctl reload sshd
  3. 锁定用户密码:使用passwd -l username锁定密码,即使知道密码也无法登录(需root解锁)。
    注:方法1最常用,不影响用户本地权限(如通过su切换),且可逆(修改为/bin/bash即可恢复)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/34133.html

(0)
酷番叔酷番叔
上一篇 2025年10月2日 01:43
下一篇 2025年10月2日 02:10

相关推荐

  • Linux下如何查看静态库中的函数?

    在Linux开发环境中,静态库(.a文件)是多个目标文件(.o文件)的归档集合,常用于封装可复用的代码,查看静态库中的函数信息对于调试、依赖分析或代码审查至关重要,本文将详细介绍Linux下查看静态库函数的多种方法,包括常用工具的使用、符号解析技巧及注意事项,静态库的基本结构静态库由ar工具创建,本质上是归档文……

    2025年8月30日
    8600
  • 如何进入Linux GRUB引导菜单页面?

    Linux系统的GRUB(Grand Unified Bootloader)是引导加载程序,负责在开机时加载操作系统内核,进入GRUB页面可以修改启动参数、选择不同的操作系统 entry 或修复系统问题,是Linux系统管理和故障排查的重要入口,以下是进入GRUB页面的详细方法及注意事项,开机时快速按下特定按键……

    2025年9月22日
    7600
  • 如何正确关闭Linux系统?命令操作与安全关机指南

    在Linux系统中,关闭系统是日常运维和终端操作中的基础操作,但不同场景下可能需要采用不同的关闭方式,无论是通过命令行进行精确控制,还是通过图形界面进行直观操作,了解其背后的原理和适用场景都能确保系统安全、高效地关机,本文将详细介绍Linux系统的多种关闭方法、命令参数、操作步骤及注意事项,帮助用户在不同场景下……

    2025年8月22日
    9200
  • 如何在Linux系统中设置IP地址?

    在Linux系统中设置IP地址是网络配置的基础操作,主要分为临时设置和永久设置两种方式,不同发行版(如Ubuntu、CentOS等)的配置方法略有差异,以下从临时配置、永久配置(分发行版介绍)、注意事项及常见问题等方面详细说明,临时设置IP地址(重启后失效)临时设置适用于快速测试或短期使用,主要通过ip或ifc……

    2025年8月21日
    9300
  • bt5如何获取他人Linux系统访问权限?

    在网络安全领域,BackTrack 5(简称BT5)是一款基于Ubuntu的渗透测试Linux发行版,由Offensive Security团队开发,集成了大量安全工具,常被用于授权的安全评估、漏洞研究和教学学习,需要明确的是,未经授权获取他人Linux系统访问权限属于违法行为,违反《中华人民共和国网络安全法……

    2025年10月7日
    32300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信