当前位置: 首页 > news >正文

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

目录

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

1. SSH协议与基础配置

2. 密钥登录与安全加固

3. 高级功能:端口转发与跳板机

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

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

2. Rsync:高效增量同步工具

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

1. Vim模式与基础操作

2. 高级配置与插件

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

1. Nginx安装与基础架构

2. 虚拟主机与反向代理配置

3. 性能优化与安全加固

五、综合实战案例


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

1. SSH协议与基础配置

SSH(Secure Shell)是Linux系统远程管理的核心工具,通过加密通道实现安全登录。默认端口为22,常见服务端软件为OpenSSH,客户端可使用ssh命令或图形化工具(如Xshell、Putty)。

  • 安装服务端
    # Ubuntu/Debian
    sudo apt install openssh-server 
    # CentOS/RHEL
    sudo yum install openssh-server 
    sudo systemctl enable --now sshd # 启动并设置开机自启
  • 基础登录命令
    ssh 用户名@IP地址 # 如:ssh root@192.168.1.100
    ssh -p 端口号 用户名@IP # 非默认端口登录,如:ssh -p 2222 user@example.com
2. 密钥登录与安全加固
  • 生成密钥对
    ssh-keygen -t ed25519 # 推荐使用ed25519算法,也可选择rsa
    # 生成后公钥位于~/.ssh/id_ed25519.pub,私钥位于~/.ssh/id_ed25519
  • 免密登录配置
    将公钥复制到目标服务器:
    ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户名@IP  # 自动添加到~/.ssh/authorized_keys
  • 安全优化
    编辑/etc/ssh/sshd_config禁用密码登录:
    PasswordAuthentication no # 关闭密码登录
    PermitRootLogin no # 禁止root直接登录
    Port 2222 # 修改默认端口
    重启服务生效:sudo systemctl restart sshd
3. 高级功能:端口转发与跳板机
  • 本地端口转发(访问远程服务):
    ssh -L 本地端口:目标IP:目标端口 跳板机用户@跳板机IP 
    # 示例:通过跳板机访问内网MySQL
    ssh -L 3306:192.168.1.5:3306 user@jump.server.com
  • 远程端口转发(暴露本地服务到公网):
    ssh -R 远程端口:本地IP:本地端口 公网服务器用户@公网IP

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

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

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

  • 本地到远程
    scp 本地文件路径 远程用户@IP:远程路径 
    scp -r 本地目录 远程用户@IP:远程目录 # 递归传输目录
  • 远程到本地
    scp 远程用户@IP:远程文件路径 本地路径
  • 指定端口与限速
    scp -P 2222 -l 1024 file.txt user@IP:/tmp  # -l 限制带宽(KB/s)
2. Rsync:高效增量同步工具

Rsync支持增量传输和断点续传,适合大文件或目录同步,常用参数:

  • -a:归档模式(递归+保留权限)
  • -v:显示详细过程
  • -z:压缩传输
  • --delete:删除目标端多余文件(需谨慎使用)

示例

# 本地目录同步到远程
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):
    set number " 显示行号
    set tabstop=4 " Tab键宽度
    set shiftwidth=4 " 缩进宽度
    set autoindent " 自动缩进
    set cursorline " 高亮当前行
  • 必装插件推荐
    • NERDTree:文件浏览器,通过vim-plug安装:
      Plug 'preservim/nerdtree' " ~/.vimrc中添加
      :PlugInstall " 命令模式执行安装
    • YouCompleteMe:代码补全工具,需编译安装。

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

1. Nginx安装与基础架构

Nginx以轻量、高并发著称,采用事件驱动模型,支持反向代理、负载均衡等功能。

  • 安装方式
    # 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
    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服务):
    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块添加:
    gzip on;
    gzip_types text/plain text/css application/json application/javascript;
    gzip_comp_level 5; # 压缩级别1-9(越高越耗CPU)
  • 限制请求速率
    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. 远程登录服务器
    ssh -i ~/.ssh/server_key.pem admin@server-ip
  2. 同步本地代码到服务器
    rsync -avz --delete /local/web/ admin@server-ip:/var/www/website/
  3. 修改Nginx配置启用HTTPS(需提前申请SSL证书):
    vim /etc/nginx/conf.d/ssl.conf
    配置内容:
    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
    nginx -t # 检查配置语法
    sudo systemctl restart nginx

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

http://www.xdnf.cn/news/1374895.html

相关文章:

  • VESA时序检测模块设计verilog实现
  • Ubuntu 24 Server 如何设置无线网络
  • imx6ull-驱动开发篇45——Linux 下 SPI 驱动框架简介
  • d435i相机读取镜头内参和相对之间的外参
  • 艾体宝新闻 | 98%好评率!KnowBe4 连续5年蝉联第一,现开放免费钓鱼测试等你解锁
  • 内网应用如何实现外网访问?外地通过公网地址访问内网服务器的设置方法
  • 遗传算法:模拟自然选择的优化智慧
  • Spring Boot项目集成日志系统使用完整指南
  • 欧洲数字化养殖平台 Herdwatch 借力 Iceberg + StarRocks 提升分析能力
  • 嵌入式开发学习 C++:day01
  • 动态规划:硬币兑换(有趣)
  • LeetCode - 739. 每日温度
  • 线性回归原理推导与应用(十一):多重共线性
  • 获取服务器指标的信息
  • bin log 和 redo log有什么区别
  • Mybatis总结
  • 【如何解决Java中的ClassCastException类转换异常问题】
  • 基于Matlab结合肤色检测与卷积神经网络的人脸识别方法研究
  • 基于MATLAB/Simulink的单机带负荷仿真系统搭建
  • 分布式2PC理论
  • 使用 html2canvas + jspdf 实现页面元素下载为pdf文件
  • UE5 查找组件
  • 云原生安全架构设计与零信任实践
  • 预测模型及超参数:1.传统机器学习:SVR与KNN
  • 工业网络安全:保护制造系统和数据
  • HIVE的Window functions窗口函数【二】
  • 【Hadoop】Zookeeper、HBase、Sqoop
  • 全球位置智能软件CR10为73%,市场集中度高
  • Java中高效获取IP地域信息方案全解析:从入门到生产实践
  • jQuery版EasyUI的ComboBox(下拉列表框)问题