FEATURED · 精选文章

Ubuntu Server部署与远程管理全攻略:从安装到安全配置

发布时间 / 2026/8/14 9:47:32
来源 / 创域科博编辑部
栏目 / 资讯中心
Ubuntu Server部署与远程管理全攻略:从安装到安全配置 1. 项目概述从零部署Ubuntu Server并打通远程管理最近在帮朋友的公司搭建一套内部测试环境核心需求就是找一台性能还不错的旧机器装上一个稳定、轻量的Linux服务器系统然后让团队里的开发、测试人员都能方便地远程访问和操作。这个需求听起来简单但真动手时从系统安装、网络配置到远程访问的打通每一步都有不少细节需要注意稍不留神就可能让后续的管理变得异常麻烦。我最终选择了Ubuntu Server 22.04 LTS它长期支持的特性保证了未来几年的稳定更新社区资源也极其丰富。整个流程下来我发现核心其实就两块一是把系统干净利落地装好二是把远程登录的通道安全、稳定地建立起来。这不仅是运维的基础功也是任何一个想自己折腾服务器的人必须掌握的技能。无论你是想在家搭建一个NAS、一个开发环境还是管理云上的虚拟机这套流程都是通用的起点。2. 系统安装前的关键决策与准备在把安装镜像刻录到U盘之前有几个关键决策会直接影响后续的使用体验和运维效率。盲目动手往往意味着后期要花更多时间去补救。2.1 镜像版本选择LTS是唯一推荐面对Ubuntu官网提供的多个版本新手很容易眼花。我的建议非常明确对于服务器用途永远选择最新的LTS版本。LTS代表“长期支持”每个LTS版本会提供长达5年的安全更新和维护支持。截至我写这篇文章时Ubuntu Server 22.04 LTS是最新的稳定LTS版本而24.04 LTS也即将发布。为什么不用非LTS的“最新”版本因为那些版本生命周期只有9个月用于追求最新特性的桌面体验尚可但服务器需要的是极致的稳定性频繁跨大版本升级本身就是一种风险。注意下载时务必认准“Ubuntu Server”镜像而不是“Ubuntu Desktop”。Server版没有图形界面资源占用极低所有管理都通过命令行完成这才是服务器的标准形态。从官网或国内镜像站如阿里云、清华镜像站下载时文件通常名为ubuntu-22.04.x-live-server-amd64.iso。2.2 硬件与启动方式确认安装介质推荐使用一个8GB或以上的U盘利用RufusWindows或dd命令Linux/macOS制作启动盘。这里有一个关键细节启动模式。现在的机器大多支持UEFI启动这是一种更现代、更安全的方式。在制作启动盘时Rufus会询问分区方案选择“GPT”用于UEFI系统。如果机器比较老可能只支持传统的BIOS或叫Legacy启动那就需要选择“MBR”。一个简单的判断方法是开机时按F2/F12/Del键进入BIOS设置查看启动选项如果能看到“UEFI: [你的U盘名]”就选择它启动。2.3 网络规划IP地址与主机名这是安装过程中最容易忽略但后期影响最大的环节。很多教程让你一路回车采用DHCP自动获取IP这对于单机临时测试没问题但对于需要稳定远程访问的服务器来说是个灾难。想象一下服务器重启后IP地址变了所有配置好的远程连接全部失效。我强烈建议在安装阶段就配置静态IP地址。你需要向你的网络管理员确认以下信息或在路由器管理界面中预留静态IP地址例如192.168.1.100子网掩码通常是255.255.255.0网关通常是路由器的IP如192.168.1.1DNS服务器可以使用公共DNS如8.8.8.8和8.8.4.4或你运营商提供的DNS。同时想好一个有意义的主机名比如test-server-01或ubuntu-prod这比默认的ubuntu要好记和标识得多。3. Ubuntu Server 22.04 LTS 详细安装实录下面是我在一台物理服务器上安装的完整过程记录涵盖了所有关键选择节点。3.1 启动与初始配置将制作好的U盘插入服务器从U盘启动后会进入Ubuntu Server安装器的欢迎界面。首先选择语言然后进入键盘布局配置。接下来的“网络连接”步骤是第一个重点。安装器会自动尝试连接网络。如果网线已插好你会看到它获取到了一个临时IPDHCP。不要直接点下一步我们需要在这里配置静态IP。选中你的网卡通常是ens33或enp0s3按回车选择“Edit IPv4”。将方法从“Automatic (DHCP)”改为“Manual”。在子网Subnet栏填写你的IP和掩码例如192.168.1.100/24。网关和DNS服务器在下方对应栏位填写。配置完成后安装器会重新连接网络确保能正常访问外部资源用于下载更新和软件包。3.2 存储配置分区方案详解接下来是配置存储也就是给硬盘分区。对于大多数服务器场景我推荐使用LVM逻辑卷管理。LVM的好处在于后期可以非常灵活地调整分区大小而无需重新格式化硬盘。安装器会提供几个选项使用整个磁盘并设置LVM推荐这是最简单且功能强大的选择。安装器会自动创建一个合理的分区布局/boot,swap, 根分区/并将根分区放在LVM上。使用整个磁盘直接分区不用LVM后期调整困难。手动分区适合有特殊需求的高级用户。对于新手和绝大多数应用直接选择第一个选项即可。安装器会询问是否在LVM上设置加密除非有极高的安全需求且能承受性能损失和忘记密码导致数据全丢的风险否则一般选“否”。3.3 用户与SSH服务预配置在“Profile setup”页面设置服务器的主机名如my-ubuntu-server以及第一个用户的用户名和密码。这里有个至关重要的步骤安装OpenSSH Server。在用户设置页面下方有一个复选框“Install OpenSSH server”。务必勾选它这会在系统安装过程中就装上SSH服务端这样系统安装完毕重启后你就可以立即通过SSH远程登录了无需再插显示器和键盘。这是实现“无头”管理的关键一步。接下来安装器会提示导入SSH公钥。如果你已经在客户端电脑比如你的笔记本电脑上生成了SSH密钥对使用ssh-keygen命令可以把公钥通常是~/.ssh/id_rsa.pub文件的内容粘贴在这里。这样安装完成后你就可以直接用私钥免密码登录了既安全又方便。如果没有现成的密钥可以先跳过后续再配置。3.4 软件包选择与安装在“Featured server snaps”页面你可以选择预装一些常见的服务器软件栈如Docker、MicroK8s、LAMP stack等。我的习惯是什么都不选保持系统最纯净。因为通过APT包管理器我们可以在系统安装好后按需精确地安装任何软件避免引入不必要的依赖和潜在冲突。之后安装器会开始复制文件、安装系统。这个过程会从网络下载最新的更新包所以需要一些时间取决于你的网速。安装完成后提示你移除安装介质并重启。4. 首次启动与SSH远程登录配置服务器重启后你将看到命令行登录提示符。用你创建的用户名和密码登录。现在我们身处服务器本地但目标是以后再也不需要接显示器。4.1 确认网络与IP地址首先确认服务器的IP地址是否是我们设置的静态IP。ip addr show或者用老命令ifconfig如果没安装用apt install net-tools安装。找到你的主网卡如ens33查看inet后面的地址确认是192.168.1.100。然后测试网络连通性ping -c 4 8.8.8.8如果能通说明网络配置正确。4.2 加固SSH服务配置虽然安装时已经装了OpenSSH但默认配置不够安全需要调整。编辑SSH服务端配置文件sudo nano /etc/ssh/sshd_config我通常会修改以下几处用nano编辑器找到对应行修改#开头是注释去掉#并修改值Port 22可以考虑改成其他高端口如2222能减少大量自动化扫描攻击。但记住改了端口后连接时要指定端口例如ssh -p 2222 userip。PermitRootLogin prohibit-password确保这一行是prohibit-password或no禁止直接用root密码登录。应该用普通用户登录后再sudo提权。PasswordAuthentication yes初次设置可以先保持yes等配置好密钥登录后再改为no彻底禁用密码登录这是防暴力破解最有效的手段。PubkeyAuthentication yes确保是yes允许公钥认证。修改完成后保存退出CtrlX然后按Y确认回车。重启SSH服务使配置生效sudo systemctl restart ssh重要在将PasswordAuthentication改为no之前务必确保你的SSH公钥已经成功添加到服务器的~/.ssh/authorized_keys文件中并且能用密钥登录。否则你会把自己锁在门外4.3 从客户端进行SSH连接现在从你的个人电脑客户端连接服务器。在Linux或macOS终端上ssh your_username192.168.1.100如果是自定义端口ssh -p 2222 your_username192.168.1.100第一次连接会提示“The authenticity of host ... cant be established.”输入yes继续。然后输入你创建的用户密码即可登录。在Windows上推荐使用PuTTY或Windows Terminal内置OpenSSH客户端。如果使用Windows Terminal命令和上面Linux/macOS一样。如果使用PuTTY在“Host Name”栏填your_username192.168.1.100端口如果是22就不用改否则在“Port”栏修改然后点击“Open”。4.4 配置SSH密钥免密登录更安全便捷每次输密码太麻烦也不够安全。配置密钥对登录是标准做法。在客户端生成密钥对如果还没有ssh-keygen -t rsa -b 4096一路回车使用默认路径和空密码或设置一个密钥密码增加安全性。这会在~/.ssh/目录下生成id_rsa私钥和id_rsa.pub公钥。将公钥上传到服务器ssh-copy-id your_username192.168.1.100这个命令会自动将你的公钥追加到服务器对应用户的~/.ssh/authorized_keys文件中。如果端口不是22需要加上-p参数。测试免密登录ssh your_username192.168.1.100现在应该可以直接登录无需输入密码。可选但推荐在服务器上禁用密码登录确认密钥登录无误后回到服务器再次编辑/etc/ssh/sshd_config将PasswordAuthentication改为no。然后重启SSH服务sudo systemctl restart ssh。从此只有拥有匹配私钥的人才能登录安全性大大提升。5. 进阶配置图形化远程桌面XRDP/VNC虽然服务器以命令行管理为主但某些图形化工具或桌面环境调试时图形界面仍有必要。这里介绍两种主流方案。5.1 方案一使用XRDP连接Windows远程桌面协议XRDP是一个开源服务它实现了微软的RDP协议让你可以直接用Windows系统自带的“远程桌面连接”工具来连接Ubuntu桌面体验非常流畅。首先安装一个桌面环境。Ubuntu Server默认没有桌面。我们安装最轻量的Xfce桌面sudo apt update sudo apt install xfce4 xfce4-goodies -y安装过程可能较长。安装XRDP服务sudo apt install xrdp -y配置XRDP使用Xfceecho xfce4-session ~/.xsession然后编辑XRDP的启动脚本告诉它使用Xfcesudo nano /etc/xrdp/startwm.sh在文件末尾、fi语句之前添加一行startxfce4启动并设置开机自启sudo systemctl enable --now xrdp从Windows连接打开“远程桌面连接”mstsc.exe输入服务器的IP地址点击连接。在登录界面会话类型选择“Xorg”然后输入你的Ubuntu用户名和密码即可进入Xfce桌面。注意XRDP默认监听3389端口确保防火墙如果启用放行该端口。另外同一时间通常只允许一个图形会话如果本地已经登录了桌面远程连接可能会踢掉本地会话。5.2 方案二使用VNCTigerVNCVNC是另一种常见的远程桌面协议。这里以TigerVNC为例它通常与轻量级的桌面环境如Xfce搭配。安装Xfce和TigerVNC服务器sudo apt install xfce4 xfce4-goodies tigervnc-standalone-server tigervnc-common -y首次运行VNC服务器设置访问密码vncserver首次运行会提示你设置一个VNC连接密码最多8位。这个密码独立于系统登录密码。配置VNC启动文件首次运行后会在~/.vnc目录下生成配置文件。停止默认的VNC实例vncserver -kill :1备份并编辑启动脚本mv ~/.vnc/xstartup ~/.vnc/xstartup.bak nano ~/.vnc/xstartup写入以下内容#!/bin/bash unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec /usr/bin/xfce4-session保存后赋予执行权限chmod x ~/.vnc/xstartup重新启动VNC服务器vncserver -localhost no :1 -geometry 1920x1080 -depth 24-localhost no允许非本地连接:1指定显示端口号通常是5901-geometry设置分辨率。从客户端连接在客户端电脑上安装VNC ViewerRealVNC、TigerVNC客户端等输入服务器地址服务器IP:1例如192.168.1.100:1然后输入之前设置的VNC密码。两种方案对比XRDP优势在于Windows原生支持无需额外客户端网络传输效率可能更高。劣势是多用户会话管理稍弱。VNC优势是跨平台客户端丰富配置灵活。劣势是默认情况下传输未加密可通过SSH隧道解决且性能可能略逊于RDP。对于从Windows环境管理我通常首选XRDP因为集成度更好。6. 系统安全与运维基础配置服务器暴露在网络上安全是头等大事。除了加固SSH还需要做以下几件事。6.1 配置防火墙UFWUbuntu自带了一个简化的防火墙配置工具UFWUncomplicated Firewall。启用UFW并设置默认策略sudo ufw default deny incoming # 默认拒绝所有入站连接 sudo ufw default allow outgoing # 默认允许所有出站连接放行必要的服务sudo ufw allow ssh # 放行SSH如果改了端口用 sudo ufw allow 2222/tcp sudo ufw allow 3389/tcp # 如果用了XRDP放行RDP端口 # sudo ufw allow 5901/tcp # 如果用了VNC放行对应端口启用防火墙sudo ufw enable系统会提示可能影响现有SSH连接确认即可。查看状态sudo ufw status verbose6.2 系统更新与自动安全更新保持系统更新是抵御已知漏洞的最好方法。立即进行首次全面更新sudo apt update sudo apt upgrade -y这可能会更新内核需要重启生效sudo reboot。配置无人值守安全更新可选但推荐sudo apt install unattended-upgrades -y sudo dpkg-reconfigure --prioritylow unattended-upgrades在配置界面选择“Yes”启用自动下载并安装安全更新。这样系统会自动打上安全补丁无需手动干预。6.3 创建具有sudo权限的日常管理用户不建议直接用root或安装时创建的第一个用户进行日常操作。最好创建一个专门用于管理的用户。创建新用户sudo adduser sysadmin将其加入sudo组sudo usermod -aG sudo sysadmin为新用户配置SSH密钥将你的公钥内容添加到新用户家目录下的授权文件中sudo mkdir /home/sysadmin/.ssh sudo nano /home/sysadmin/.ssh/authorized_keys粘贴你的公钥保存退出。然后修改权限至关重要否则SSH会拒绝sudo chown -R sysadmin:sysadmin /home/sysadmin/.ssh sudo chmod 700 /home/sysadmin/.ssh sudo chmod 600 /home/sysadmin/.ssh/authorized_keys现在你可以用ssh sysadmin服务器IP登录并且可以使用sudo命令。7. 常见问题排查与实用技巧在实际操作中你几乎一定会遇到下面这些问题。7.1 SSH连接失败排查指南问题现象可能原因排查步骤与解决方案Connection refused1. SSH服务未运行2. 防火墙阻止3. 端口错误1. 在服务器上执行sudo systemctl status ssh查看状态用sudo systemctl start ssh启动。2. 检查UFW状态sudo ufw status确保SSH端口已放行。3. 确认连接命令中的端口号是否正确。Permission denied (publickey)1. 公钥未正确部署2..ssh目录或文件权限错误3. 服务器sshd_config配置错误1. 确认authorized_keys文件内容正确末尾无多余空格。2. 确保服务器上.ssh目录权限为700authorized_keys文件权限为600。3. 检查/etc/ssh/sshd_config中PubkeyAuthentication yes是否设置。Network is unreachable服务器网络未通在服务器上使用ip addr和ping 8.8.8.8检查IP配置和网络连通性。连接超时1. IP地址错误2. 客户端与服务器网络不通3. 服务器防火墙非UFW如iptables或云平台安全组规则未放行1. 确认服务器IP。2. 从客户端ping服务器IP。3. 检查云服务商控制台的安全组/防火墙规则确保入站规则允许SSH端口。一个实用技巧使用-v参数调试SSH连接。在客户端连接时加上-vverbose参数可以显示详细的连接过程对于定位问题非常有帮助ssh -v your_usernameserver_ip甚至可以用-vvv显示最详细的信息。7.2 远程桌面连接问题XRDP连接后出现灰屏或只有光标这通常是桌面环境配置问题。确保~/.xsession文件内容正确echo xfce4-session ~/.xsession并且/etc/xrdp/startwm.sh中正确调用了startxfce4。可以尝试重启XRDP服务sudo systemctl restart xrdp并杀掉可能残留的X会话。VNC连接失败检查VNC服务器进程是否在运行ps aux | grep vnc。确认防火墙放行了对应的端口默认5900显示编号。VNC服务器是否绑定了localhost启动时需加上-localhost no参数。7.3 查看系统登录记录安全审计时需要知道谁在什么时候登录过系统。查看最近的登录记录last这个命令会显示/var/log/wtmp文件中的登录历史包括用户名、登录终端、来源IP、登录和退出时间。查看所有登录尝试记录包括失败的sudo grep -a sshd /var/log/auth.log | grep -E (Failed|Accepted)这会从认证日志中过滤出SSH相关的成功Accepted和失败Failed登录尝试对于发现暴力破解非常有用。查看当前登录的用户who或者更详细的信息w7.4 管理服务与设置开机自启系统服务如SSH、XRDP的管理是日常运维的一部分。查看服务状态sudo systemctl status service_name # 例如 sudo systemctl status ssh启动/停止/重启服务sudo systemctl start service_name sudo systemctl stop service_name sudo systemctl restart service_name # 重启 sudo systemctl reload service_name # 重载配置不中断服务设置服务开机自动启动/禁止sudo systemctl enable service_name sudo systemctl disable service_name查看所有已启用的服务systemctl list-unit-files --typeservice --stateenabled8. 后续维护与扩展方向完成基础安装和远程访问配置你的Ubuntu Server就已经就绪了。但这只是一个起点根据你的用途后续还有很多事情可以做。对于Web服务器安装Nginx或Apache配置PHP、Python、数据库MySQL/PostgreSQL。sudo apt install nginx mysql-server php-fpm php-mysql对于开发环境安装Docker和Docker Compose用容器化方式部署各种服务。sudo apt install docker.io docker-compose sudo usermod -aG docker $USER # 将当前用户加入docker组避免每次用sudo对于文件服务器/NAS安装Samba与Windows共享或NFS与Linux共享并挂载大容量硬盘。sudo apt install samba sudo smbpasswd -a your_username # 设置Samba用户密码定期维护习惯更新系统定期执行sudo apt update sudo apt upgrade。检查日志关注/var/log/syslog、/var/log/auth.log使用journalctl -xe查看系统服务日志。监控资源使用htop、df -h、free -h等命令监控CPU、内存、磁盘使用情况。备份配置将重要的配置文件如/etc/ssh/sshd_config/etc/nginx/sites-available/等进行备份。整个流程走下来最关键的就是前期规划静态IP、分区和中期安全配置SSH密钥、防火墙。把这些基础打牢后面无论搭建什么服务都会事半功倍。服务器管理是一个持续学习的过程每次遇到问题并解决它都是经验的积累。
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻