如何高效控制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等旧系统使用,通过service和chkconfig命令。
    • 启动服务: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:动态实时监控,按CPU、MEM排序,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监控:top按P键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端口占用进程)。
  • 端口转发:使用iptables或socat,如将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系统下7z压缩工具如何安装?

    在Linux系统中,7z是一款功能强大的压缩工具,支持多种压缩格式(如7z、zip、gzip、bzip2等),具有高压缩率和加密功能,安装7z的方法因Linux发行版的不同而有所差异,以下是几种常见的安装方式,涵盖主流发行版及通用安装手段,通过包管理器安装(推荐)不同Linux发行版默认的包管理器不同,以下以D……

    2025年9月17日
    25000
  • Linux定时杀进程,哪种方法最安全可靠?

    方法1:cron 计划任务 + kill 命令适用场景:需要每天/小时固定时间终止进程步骤:定位进程ID(PID):使用 pgrep 精确查找进程(避免误杀):pgrep -f "进程名或关键命令"示例:pgrep -f “python3 data_processing.py”创建终止脚本……

    2025年8月8日
    30100
  • linux文件中如何写入文本文件

    使用echo或cat命令将文本写入文件,echo “Hello” ˃ file.txt 或 cat ˃ file.

    2025年8月18日
    23300
  • Linux系统如何禁止USB设备的使用?

    在Linux系统中,禁止USB设备接入是常见的安全管理需求,尤其在需要防止数据泄露、未授权设备接入或限制外设使用的场景下,以下从内核模块控制、设备级管理、运行时干预等多个维度,详细介绍Linux禁止USB的方法及操作步骤,通过内核模块禁用USB存储设备内核模块是Linux设备驱动的核心形式,通过禁用相关模块可从……

    2025年9月17日
    36000
  • Linux如何创建设备节点?

    在Linux系统中,设备节点是设备文件在/dev目录下的表示,通过节点应用程序可以与硬件设备交互,创建设备节点主要有两种方式:传统命令mknod和现代的udev动态管理机制,下面详细介绍这两种方法的具体操作和注意事项,使用mknod命令手动创建设备节点mknod是Linux系统中创建设备节点的传统命令,允许用户……

    2025年9月29日
    23600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信