目录
[1. SSH协议与基础配置](#1. SSH协议与基础配置)
[2. 密钥登录与安全加固](#2. 密钥登录与安全加固)
[3. 高级功能:端口转发与跳板机](#3. 高级功能:端口转发与跳板机)
[1. SCP:基于SSH的文件传输](#1. SCP:基于SSH的文件传输)
[2. Rsync:高效增量同步工具](#2. Rsync:高效增量同步工具)
[1. Vim模式与基础操作](#1. Vim模式与基础操作)
[2. 高级配置与插件](#2. 高级配置与插件)
[1. Nginx安装与基础架构](#1. Nginx安装与基础架构)
[2. 虚拟主机与反向代理配置](#2. 虚拟主机与反向代理配置)
[3. 性能优化与安全加固](#3. 性能优化与安全加固)
一、远程连接工具:SSH的深度应用
1. SSH协议与基础配置
SSH(Secure Shell)是Linux系统远程管理的核心工具,通过加密通道实现安全登录。默认端口为22,常见服务端软件为OpenSSH
,客户端可使用ssh
命令或图形化工具(如Xshell、Putty)。
-
安装服务端 :
bash# Ubuntu/Debian sudo apt install openssh-server # CentOS/RHEL sudo yum install openssh-server sudo systemctl enable --now sshd # 启动并设置开机自启
-
基础登录命令 :
bashssh 用户名@IP地址 # 如:ssh root@192.168.1.100 ssh -p 端口号 用户名@IP # 非默认端口登录,如:ssh -p 2222 user@example.com
2. 密钥登录与安全加固
-
生成密钥对 :
bashssh-keygen -t ed25519 # 推荐使用ed25519算法,也可选择rsa # 生成后公钥位于~/.ssh/id_ed25519.pub,私钥位于~/.ssh/id_ed25519
-
免密登录配置 :
将公钥复制到目标服务器:bashssh-copy-id -i ~/.ssh/id_ed25519.pub 用户名@IP # 自动添加到~/.ssh/authorized_keys
-
安全优化 :
编辑/etc/ssh/sshd_config
禁用密码登录:bashPasswordAuthentication no # 关闭密码登录 PermitRootLogin no # 禁止root直接登录 Port 2222 # 修改默认端口
重启服务生效:
sudo systemctl restart sshd
。
3. 高级功能:端口转发与跳板机
-
本地端口转发 (访问远程服务):
bashssh -L 本地端口:目标IP:目标端口 跳板机用户@跳板机IP # 示例:通过跳板机访问内网MySQL ssh -L 3306:192.168.1.5:3306 user@jump.server.com
-
远程端口转发 (暴露本地服务到公网):
bashssh -R 远程端口:本地IP:本地端口 公网服务器用户@公网IP
二、远程拷贝工具:SCP与Rsync实战
1. SCP:基于SSH的文件传输
SCP(Secure Copy)通过SSH协议传输文件,语法简洁,适合小文件或单文件传输。
-
本地到远程 :
bashscp 本地文件路径 远程用户@IP:远程路径 scp -r 本地目录 远程用户@IP:远程目录 # 递归传输目录
-
远程到本地 :
bashscp 远程用户@IP:远程文件路径 本地路径
-
指定端口与限速 :
bashscp -P 2222 -l 1024 file.txt user@IP:/tmp # -l 限制带宽(KB/s)
2. Rsync:高效增量同步工具
Rsync支持增量传输和断点续传,适合大文件或目录同步,常用参数:
-a
:归档模式(递归+保留权限)-v
:显示详细过程-z
:压缩传输--delete
:删除目标端多余文件(需谨慎使用)
示例:
bash
# 本地目录同步到远程
rsync -avz /local/dir/ user@IP:/remote/dir/
# 远程目录同步到本地(排除log文件)
rsync -avz --exclude "*.log" user@IP:/remote/dir/ /local/dir/
# 后台同步大文件(配合--progress显示进度)
nohup rsync -avz --progress largefile.iso user@IP:/data/ &
三、Vim文本编辑器:从入门到精通
1. Vim模式与基础操作
Vim有三种核心模式:
- 普通模式 (默认):用于导航和命令输入,按
Esc
进入 - 插入模式 :编辑文本,按
i
(前插)、a
(后插)、o
(换行插)进入 - 命令模式 :执行保存、退出等操作,按
:
进入
常用命令:
操作 | 命令示例 | 说明 |
---|---|---|
保存退出 | :wq 或 ZZ |
保存并退出 |
强制退出不保存 | :q! |
放弃修改退出 |
查找文本 | /keyword + n (下一个) |
从当前位置向下搜索 |
替换文本 | :%s/old/new/g |
全局替换old为new |
复制粘贴 | yy (复制行)+ p (粘贴) |
单行复制,3yy 复制3行 |
2. 高级配置与插件
-
自定义配置文件 (
~/.vimrc
):bashset number " 显示行号 set tabstop=4 " Tab键宽度 set shiftwidth=4 " 缩进宽度 set autoindent " 自动缩进 set cursorline " 高亮当前行
-
必装插件推荐 :
-
NERDTree :文件浏览器,通过
vim-plug
安装:bashPlug 'preservim/nerdtree' " ~/.vimrc中添加 :PlugInstall " 命令模式执行安装
-
YouCompleteMe:代码补全工具,需编译安装。
-
四、Nginx服务器:高性能Web服务配置
1. Nginx安装与基础架构
Nginx以轻量、高并发著称,采用事件驱动模型,支持反向代理、负载均衡等功能。
-
安装方式 :
bash# Ubuntu/Debian sudo apt install nginx # 源码编译(自定义模块) wget http://nginx.org/download/nginx-1.25.2.tar.gz tar -zxvf nginx-1.25.2.tar.gz cd nginx-1.25.2 ./configure --prefix=/usr/local/nginx --with-http_ssl_module make && sudo make install
-
核心目录 :
- 配置文件:
/etc/nginx/nginx.conf
(主配置)、/etc/nginx/conf.d/
(虚拟主机配置) - 网站根目录:默认
/var/www/html
- 配置文件:
2. 虚拟主机与反向代理配置
-
基于域名的虚拟主机 :
在/etc/nginx/conf.d/
下创建example.conf
:bashserver { listen 80; server_name example.com www.example.com; # 绑定域名 root /var/www/example; # 网站根目录 index index.html index.php; # 默认主页 location / { try_files $uri $uri/ =404; # 尝试访问文件或目录,不存在返回404 } }
-
反向代理配置 (代理后端Node.js服务):
bashserver { listen 80; server_name api.example.com; location / { proxy_pass http://127.0.0.1:3000; # 代理到本地3000端口 proxy_set_header Host $host; # 传递请求头 proxy_set_header X-Real-IP $remote_addr; } }
3. 性能优化与安全加固
-
启用Gzip压缩 :
在nginx.conf
的http
块添加:bashgzip on; gzip_types text/plain text/css application/json application/javascript; gzip_comp_level 5; # 压缩级别1-9(越高越耗CPU)
-
限制请求速率 :
bashlimit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; # 限制单IP每秒10请求 server { location / { limit_req zone=one burst=20 nodelay; # 突发允许20个请求 } }
五、综合实战案例
场景:通过SSH远程管理服务器,使用Rsync同步网站代码,用Vim修改Nginx配置实现HTTPS部署。
-
远程登录服务器 :
bashssh -i ~/.ssh/server_key.pem admin@server-ip
-
同步本地代码到服务器 :
bashrsync -avz --delete /local/web/ admin@server-ip:/var/www/website/
-
修改Nginx配置启用HTTPS (需提前申请SSL证书):
bashvim /etc/nginx/conf.d/ssl.conf
配置内容:
bashserver { listen 443 ssl; server_name example.com; ssl_certificate /etc/ssl/certs/example.crt; ssl_certificate_key /etc/ssl/private/example.key; # 其他SSL参数(如协议、加密套件) }
-
验证配置并重启Nginx :
bashnginx -t # 检查配置语法 sudo systemctl restart nginx
结语:本文涵盖Linux远程管理、文件操作、文本编辑与Web服务的核心技能,掌握这些工具能显著提升工作效率。实际应用中需结合具体场景灵活调整参数,同时注重安全性(如最小权限原则、定期备份)。