lesson47:Linux常用软件使用指南:远程连接、远程拷贝、Vim与Nginx

目录

一、远程连接工具:SSH的深度应用

[1. SSH协议与基础配置](#1. SSH协议与基础配置)

[2. 密钥登录与安全加固](#2. 密钥登录与安全加固)

[3. 高级功能:端口转发与跳板机](#3. 高级功能:端口转发与跳板机)

二、远程拷贝工具:SCP与Rsync实战

[1. SCP:基于SSH的文件传输](#1. SCP:基于SSH的文件传输)

[2. Rsync:高效增量同步工具](#2. Rsync:高效增量同步工具)

三、Vim文本编辑器:从入门到精通

[1. Vim模式与基础操作](#1. Vim模式与基础操作)

[2. 高级配置与插件](#2. 高级配置与插件)

四、Nginx服务器:高性能Web服务配置

[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 # 启动并设置开机自启
  • 基础登录命令

    bash 复制代码
    ssh 用户名@IP地址 # 如:ssh root@192.168.1.100
    ssh -p 端口号 用户名@IP # 非默认端口登录,如:ssh -p 2222 user@example.com
2. 密钥登录与安全加固
  • 生成密钥对

    bash 复制代码
    ssh-keygen -t ed25519 # 推荐使用ed25519算法,也可选择rsa
    # 生成后公钥位于~/.ssh/id_ed25519.pub,私钥位于~/.ssh/id_ed25519
  • 免密登录配置
    将公钥复制到目标服务器:

    bash 复制代码
    ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户名@IP  # 自动添加到~/.ssh/authorized_keys
  • 安全优化
    编辑/etc/ssh/sshd_config禁用密码登录:

    bash 复制代码
    PasswordAuthentication no # 关闭密码登录
    PermitRootLogin no # 禁止root直接登录
    Port 2222 # 修改默认端口

    重启服务生效:sudo systemctl restart sshd

3. 高级功能:端口转发与跳板机
  • 本地端口转发 (访问远程服务):

    bash 复制代码
    ssh -L 本地端口:目标IP:目标端口 跳板机用户@跳板机IP 
    # 示例:通过跳板机访问内网MySQL
    ssh -L 3306:192.168.1.5:3306 user@jump.server.com
  • 远程端口转发 (暴露本地服务到公网):

    bash 复制代码
    ssh -R 远程端口:本地IP:本地端口 公网服务器用户@公网IP

二、远程拷贝工具:SCP与Rsync实战

1. SCP:基于SSH的文件传输

SCP(Secure Copy)通过SSH协议传输文件,语法简洁,适合小文件或单文件传输。

  • 本地到远程

    bash 复制代码
    scp 本地文件路径 远程用户@IP:远程路径 
    scp -r 本地目录 远程用户@IP:远程目录 # 递归传输目录
  • 远程到本地

    bash 复制代码
    scp 远程用户@IP:远程文件路径 本地路径
  • 指定端口与限速

    bash 复制代码
    scp -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(换行插)进入
  • 命令模式 :执行保存、退出等操作,按:进入

常用命令

操作 命令示例 说明
保存退出 :wqZZ 保存并退出
强制退出不保存 :q! 放弃修改退出
查找文本 /keyword + n(下一个) 从当前位置向下搜索
替换文本 :%s/old/new/g 全局替换old为new
复制粘贴 yy(复制行)+ p(粘贴) 单行复制,3yy复制3行
2. 高级配置与插件
  • 自定义配置文件~/.vimrc):

    bash 复制代码
    set number " 显示行号
    set tabstop=4 " Tab键宽度
    set shiftwidth=4 " 缩进宽度
    set autoindent " 自动缩进
    set cursorline " 高亮当前行
  • 必装插件推荐

    • NERDTree :文件浏览器,通过vim-plug安装:

      bash 复制代码
      Plug '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

    bash 复制代码
    server {
    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服务):

    bash 复制代码
    server {
    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.confhttp块添加:

    bash 复制代码
    gzip on;
    gzip_types text/plain text/css application/json application/javascript;
    gzip_comp_level 5; # 压缩级别1-9(越高越耗CPU)
  • 限制请求速率

    bash 复制代码
    limit_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部署。

  1. 远程登录服务器

    bash 复制代码
    ssh -i ~/.ssh/server_key.pem admin@server-ip
  2. 同步本地代码到服务器

    bash 复制代码
    rsync -avz --delete /local/web/ admin@server-ip:/var/www/website/
  3. 修改Nginx配置启用HTTPS (需提前申请SSL证书):

    bash 复制代码
    vim /etc/nginx/conf.d/ssl.conf

    配置内容:

    bash 复制代码
    server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /etc/ssl/certs/example.crt;
    ssl_certificate_key /etc/ssl/private/example.key;
    # 其他SSL参数(如协议、加密套件)
    }
  4. 验证配置并重启Nginx

    bash 复制代码
    nginx -t # 检查配置语法
    sudo systemctl restart nginx

结语:本文涵盖Linux远程管理、文件操作、文本编辑与Web服务的核心技能,掌握这些工具能显著提升工作效率。实际应用中需结合具体场景灵活调整参数,同时注重安全性(如最小权限原则、定期备份)。

相关推荐
一川月白70925 分钟前
Linux--->网络编程(TCP并发服务器构建:[ 多进程、多线程、select ])
linux·运维·服务器·网络编程·io并发服务器
EnigmaCoder34 分钟前
【Linux】用户与用户组管理
linux·运维·服务器·数据库
xiaok1 小时前
微信小程序业务域名的校验文件配置
nginx
tan77º1 小时前
【项目】分布式Json-RPC框架 - 抽象层与具象层实现
linux·服务器·c++·分布式·tcp/ip·rpc·json
xiaok1 小时前
chown和chmod的使用
linux
mit6.8241 小时前
[pilot智驾系统] 自动驾驶守护进程(selfdrived)
linux·c++·自动驾驶
Lovyk2 小时前
完整实验命令解析:从集群搭建到负载均衡配置(2)
linux·运维·服务器
大得3692 小时前
nginx结合lua做转发,负载均衡
nginx·junit·lua
金色天际线-3 小时前
Linux 系统调优工具详解
linux·运维·服务器