如何高效控制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系统中,生成密码是系统管理、用户配置、服务安全等场景中的常见需求,无论是创建新用户、设置数据库访问凭证,还是配置API密钥,都需要生成高强度且随机的密码,Linux提供了多种命令行工具和方法,可满足不同复杂度和安全性的需求,本文将详细介绍几种常用的Linux密码生成方式,包括基础命令组合、专业工具及……

    2025年10月6日
    15800
  • Linux删用户目录如何避免误删风险?

    删除用户目录的核心步骤确认用户目录位置Linux用户目录通常位于/home/下,以用户名命名(如/home/username),关键命令:ls /home # 查看所有用户目录id username # 确认用户是否存在删除用户账户(可选但推荐)若需同时删除用户账户,使用userdel命令:sudo userd……

    2025年6月28日
    20200
  • Linux下安装rz命令上传文件,lrzsz工具具体安装步骤是什么?

    在Linux系统中,文件传输是日常运维和开发中常见的操作,而rz命令(通过Zmodem协议实现)是用于从本地机器向Linux服务器上传文件的便捷工具,它支持拖拽上传、断点续传(部分终端支持),且操作简单,无需配置FTP/SFTP等服务即可快速完成文件传输,本文将详细介绍Linux下rz命令的安装方法、使用技巧及……

    2025年10月3日
    16100
  • linux中如何查看设备信息

    Linux中,可使用lsblk查看块设备信息,lspci

    2025年8月18日
    16300
  • Linux下如何详细查看端口占用状态、开放情况及步骤?

    在Linux系统中,查看端口状态是网络管理、服务调试和安全排查的核心操作,端口是应用程序与网络通信的入口,了解端口是否开放、监听状态及占用进程,能帮助快速定位服务异常、网络连接问题或潜在安全风险,本文将详细介绍Linux下查看端口的多种方法,涵盖命令行工具、系统文件及防火墙规则检查,适用于不同场景需求,使用ne……

    2025年9月19日
    22700

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信