上一篇
如何开启linux服务器
- Linux
- 2025-08-17
- 5
可通过 SSH 远程登录 Linux 服务器,输入
sudo systemctl start [服务名]
启动指定服务;若需开机自启,可改用 `enable
前期准备与核心概念
1 硬件/虚拟化环境确认
类型 | 特点 | 适用场景 |
---|---|---|
物理服务器 | 独立硬件资源,性能稳定 | 企业级生产环境 |
虚拟机(VM) | 共享宿主机资源,灵活扩容 | 开发测试、轻量级业务 |
容器(Docker) | 轻量化隔离,秒级部署 | 微服务架构、CI/CD流水线 |
云主机(ECS) | 按需付费,弹性伸缩 | 初创项目、流量波动场景 |
2 网络连通性验证
- 控制台获取公网IP:阿里云/酷盾安全等平台可在实例详情页查看浮动IP
- 本地终端检测:
ping <服务器IP>
应返回TTL值(非请求超时) - 端口扫描验证:
telnet <服务器IP> 22
成功则显示SSH欢迎界面
主流接入方式详解
1 SSH密钥对登录(推荐)
操作系统 | 生成密钥命令 | 复制公钥至服务器 |
---|---|---|
Ubuntu/Debian | ssh-keygen -t rsa -b 4096 |
cat ~/.ssh/id_rsa.pub >> authorized_keys |
CentOS/RHEL | 同上 | 目标路径:/home/<user>/.ssh/ |
Windows | PuTTYgen生成ppk格式 | 需转换PEM格式上传 |
关键配置步骤:
- 编辑
~/.ssh/config
文件添加以下内容实现别名登录:Host myserver HostName 192.168.1.100 User admin IdentityFile ~/.ssh/mykey
- 执行
chmod 600 ~/.ssh/authorized_keys
确保权限安全 - 首次连接时输入
yes
信任主机指纹
2 密码登录(临时方案)
️ 注意:生产环境强烈建议禁用root密码登录!
# 修改SSH配置文件允许密码登录 sudo vi /etc/ssh/sshd_config # 找到 #PasswordAuthentication yes 取消注释 systemctl restart sshd # CentOS/RHEL service ssh restart # Ubuntu/Debian
3 图形化界面访问(可选)
工具 | 协议 | 优点 | 缺点 |
---|---|---|---|
Xrdp | RDP | Windows原生支持 | 仅适用于桌面环境 |
VNC | RFB | 跨平台兼容 | 带宽占用较高 |
Webmin/Cockpit | HTTPS | 可视化管理面板 | 存在潜在安全风险 |
系统初始化关键操作
1 必做安全加固
操作项 | 命令示例 | 作用说明 |
---|---|---|
禁止root远程登录 | visudoers 添加 Defaults !root |
强制使用普通用户登录 |
设置账户锁定策略 | authselect select sssd + 修改/etc/security/login.defs |
防范暴力破解 |
启用防火墙规则 | ufw allow from 192.168.1.0/24 |
限制可信IP段访问 |
自动更新机制 | apt install unattended-upgrades |
定时安装安全补丁 |
2 用户体系构建
# 创建具有sudo权限的普通用户 useradd -m -G wheel,docker user_name passwd user_name # 配置sudo免密执行(谨慎使用!) echo "user_name ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/user_name
3 时区与语言设置
# 查看当前时区 timedatectl status # 设置为上海时区 timedatectl set-timezone Asia/Shanghai # 修改系统语言为中文 localectl set-locale LANG=zh_CN.UTF-8
核心服务启动指南
1 进程管理工具对比
工具 | 特点 | 典型命令 |
---|---|---|
systemctl | 现代init系统,支持enable/disable | systemctl start httpd |
service | 传统脚本调用方式 | service mysql start |
supervisor | 进程守护,崩溃自动重启 | supervisorctl start program |
pm2 | Node.js应用专用管理工具 | pm2 start app.js |
2 常见服务启动示例
服务类型 | CentOS/RHEL | Ubuntu/Debian | 验证命令 |
---|---|---|---|
Web服务器(HTTP) | systemctl start httpd |
systemctl start apache2 |
curl http://localhost |
MySQL数据库 | systemctl start mariadb |
systemctl start mysql |
mysqladmin version |
Nginx | systemctl start nginx |
systemctl start nginx |
nginx -v |
Redis缓存 | systemctl start redis |
systemctl start redis-server |
redis-cli ping |
3 开机自启配置
# 永久启用服务 systemctl enable httpd # 查看已启用服务列表 systemctl list-unit-files | grep enabled # 禁用无用服务 systemctl disable postfix
监控与日志管理
1 实时监控工具
工具名称 | 功能特点 | 安装命令 |
---|---|---|
htop | 交互式进程监控 | apt install htop |
netstat | 网络连接统计 | 内置命令 |
iftop | 实时带宽监控 | apt install iftop |
journalctl | 系统日志查询 | journalctl -f -u httpd.service |
2 日志轮转配置
# 编辑日志轮转配置(以Apache为例) vi /etc/logrotate.d/httpd # 典型配置项: /var/log/httpd/.log { weekly missingok rotate 12 compress delaycompress notifempty create 640 root adm }
进阶优化建议
1 性能调优参数
子系统 | 优化方向 | 示例配置 |
---|---|---|
内核参数 | TCP连接数调整 | sysctl -w net.core.somaxconn=65535 |
Swap分区 | 交换空间大小设置 | fallocate -l 4G /swapfile → mkswap /swapfile |
文件描述符 | 最大打开文件数 | ulimit -n 65536 |
JVM堆内存 | Java应用内存分配 | -Xms2g -Xmx2g (启动参数) |
2 自动化运维方案
工具链 | 功能模块 | 典型应用场景 |
---|---|---|
Ansible | 批量配置管理 | 百台以上服务器集群 |
Jenkins | CI/CD持续集成 | 代码编译打包部署全流程 |
Prometheus | 指标监控+告警 | 微服务架构健康度监测 |
Grafana | 可视化仪表盘 | 展示CPU/内存/磁盘使用趋势 |
相关问答FAQs
Q1: 忘记了Linux服务器的root密码该如何重置?
解答:
-
重启进入单用户模式:
- GRUB菜单启动时按
e
编辑启动参数 - 在
linux
行末尾添加single init=/bin/bash
- 按
Ctrl+x
启动单用户模式
- GRUB菜单启动时按
-
挂载根文件系统:
mount -o remount,rw /dev/mapper/centos-root /
-
修改root密码:
chroot / bin/bash passwd root
-
退出并重启:
exec /sbin/init
️ 注意:此方法会丢失SELinux上下文,操作后需执行restorecon -Rv /
修复。
Q2: 为什么无法通过SSH连接到我的Linux服务器?
排查步骤:
| 序号 | 检查项 | 解决方案 |
|——|————————-|———————————–|
| 1 | 防火墙拦截 | iptables -L
或 ufw status
|
| 2 | SSH服务未运行 | systemctl status sshd
|
| 3 | 端口被占用 | netstat -tulnp | grep :22
|
| 4 | DNS解析错误 | nslookup <服务器IP>
|
| 5 | 密钥权限问题 | chmod 600 ~/.ssh/authorized_keys
|
| 6 | SELinux策略阻止 | getenforce
→ 临时关闭setenforce 0
|
| 7 | 网络MTU不匹配 | ifconfig eth0 mtu 1400
|
补充技巧:使用ssh -vvv user@host
查看详细连接日志,可定位具体失败环节。
通过以上步骤,您已完成Linux服务器的基础部署与管理,实际运维中需根据具体业务场景调整配置,建议定期备份重要数据并制定应急预案,对于高可用架构,可进一步研究Keepalived+VRRP