架设服务器是许多开发者、企业或个人用户搭建网站、存储文件、运行应用或游戏服务的基础步骤,本文将以Linux系统(以Ubuntu Server 22.04为例)为基础,从硬件准备到系统部署、安全配置及服务搭建,提供详细的架设教程,帮助零基础用户完成服务器架设。
前期准备工作
在开始架设前,需明确服务器用途(如Web服务、文件共享、游戏服务等)并准备相应硬件与软件。
- 硬件选型:根据需求选择配置,小型个人项目可选用云服务器(如阿里云、腾讯云),本地实验可用闲置电脑;硬件需满足CPU(至少2核)、内存(至少2GB)、硬盘(至少50GB SSD)、网络(千兆带宽)等基础要求。
- 系统选择:Linux系统(Ubuntu Server、CentOS等)因稳定性、安全性及开源生态成为服务器首选,本文以Ubuntu Server 22.04 LTS为例。
- 网络环境:确保服务器有公网IP(云服务器默认提供),本地服务器需配置路由器端口映射。
系统安装
-
下载镜像:访问Ubuntu官网下载Ubuntu Server 22.04 LTS镜像(ISO格式)。
-
制作启动盘:使用Rufus(Windows)或balenaEtcher(跨平台)将镜像写入U盘,制作可启动安装盘。
-
启动安装:将U盘插入服务器,开机时按F12(或其他快捷键)选择从U盘启动,进入安装界面后选择“Install Ubuntu Server”。
-
分区配置:
- 自动分区:适合新手,选择“Guided – use entire disk”并确认写入。
- 手动分区:推荐“LVM”逻辑卷管理,可灵活调整分区大小,典型分区方案如下:
分区类型 大小 文件系统 用途 /boot 512MB ext4 系统引导 剩余空间 ext4 根目录(系统文件) swap 内存1-2倍 swap 虚拟内存 -
用户配置:设置主机名(如
server01
)、创建普通用户(建议避免直接使用root)、时区选择Asia/Shanghai
。 -
安装SSH服务:勾选“Open server SSH”以便后续远程管理,安装完成后重启服务器。
网络与基础配置
-
设置静态IP:云服务器可在控制台绑定弹性IP;本地服务器需修改网络配置文件(如
/etc/netplan/01-netcfg.yaml
),示例内容:network: version: 2 ethernets: ens33: # 网卡名称,需通过`ip a`查询 dhcp4: no addresses: [192.168.1.100/24] # 静态IP gateway4: 192.168.1.1 # 网关 nameservers: | DNS addresses: [8.8.8.8, 114.114.114.114]
执行
netplan apply
使配置生效。 -
更新系统:
sudo apt update && sudo apt upgrade -y # 更新软件包列表并升级系统
-
配置防火墙:启用UFW(Uncomplicated Firewall),仅开放必要端口(如SSH 22、HTTP 80、HTTPS 443):
sudo ufw allow OpenSSH # 允许SSH连接 sudo ufw allow 80/tcp # 允许HTTP sudo ufw allow 443/tcp # 允许HTTPS sudo ufw enable # 启用防火墙(输入y确认)
安全加固
- 禁用root远程登录:编辑SSH配置文件
/etc/ssh/sshd_config
,将PermitRootLogin
改为no
,保存后执行sudo systemctl restart sshd
。 - 密钥登录:本地生成SSH密钥(
ssh-keygen -t rsa -b 4096
),将公钥(~/.ssh/id_rsa.pub
)上传至服务器~/.ssh/authorized_keys
,并设置权限:chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
后续登录时使用
ssh username@服务器IP
即可,无需密码。 - 安装fail2ban:防暴力破解工具,执行
sudo apt install fail2ban -y
,配置文件/etc/fail2ban/jail.local
可设置封禁规则(如5次失败尝试封禁IP 10分钟)。
部署常用服务
以Web服务(Nginx)为例,说明服务部署流程:
- 安装Nginx:
sudo apt install nginx -y
- 配置虚拟主机:创建站点配置文件
/etc/nginx/sites-available/example.com
如下:server { listen 80; server_name example.com www.example.com; root /var/www/example.com; index index.html; location / { try_files $uri $uri/ =404; } }
- 创建站点目录并启用配置:
sudo mkdir -p /var/www/example.com echo "<h1>Welcome to my server!</h1>" | sudo tee /var/www/example.com/index.html sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ sudo nginx -t # 测试配置 sudo systemctl restart nginx # 重启Nginx
- 访问测试:浏览器输入服务器IP或域名,若显示“Welcome to my server!”则部署成功。
维护与优化
- 日志查看:系统日志可通过
journalctl -u nginx
(Nginx日志)或/var/log/syslog
(系统日志)查看;Web服务器日志默认在/var/log/nginx/
。 - 定期备份:使用
rsync
备份重要数据,例如每日备份/var/www
目录到远程服务器:rsync -avz /var/www/ backup@remote_server:/backup/www/
并通过
crontab -e
设置定时任务(如每天凌晨2点执行)。 - 监控资源:安装
htop
(监控CPU/内存)、iftop
(监控网络流量),执行sudo apt install htop iftop -y
即可使用。
相关问答FAQs
Q1:如何通过Windows远程连接Linux服务器?
A:使用PuTTY或Windows Terminal(内置SSH功能),以Terminal为例:打开后输入ssh username@服务器IP
,首次连接需输入“yes”确认指纹,之后输入用户密码(或密钥)即可登录,若使用密钥,需在Terminal中指定密钥路径:ssh -i /path/to/private_key username@服务器IP
。
Q2:服务器无法访问公网怎么办?
A:首先检查防火墙是否开放对应端口(如sudo ufw status
);其次确认网络配置,云服务器需检查安全组规则是否放行端口,本地服务器需检查路由器端口映射(将公网端口映射到服务器内网IP和端口);最后使用telnet 服务器IP 端口
测试连通性(如telnet 8.8.8.8 80
),若失败则可能是运营商网络限制。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/25376.html