【Linux】【实战系列】10 分钟掌握日常开发中 Linux 网络处理相关命令

文章目录

  • lsof
  • netstat
  • ping
  • nslookup
  • ssh
    • ssh-keygen
    • scp
    • sftp
  • 网络工具 curl
  • 网络工具 wget
  • 最后
  • 个人简介

  • hello,大家好,我是 Lorin,上一期和大家分享一期日常开发中常用的 Linux 文件和文本命令实战教学,这一期给大家带来常用的网络处理命令实战。

lsof

  • lsof(list open files)是一个列出当前系统打开文件的工具,日常开发中常用于查看端口占用情况。
// 显示所有打开的端口
lsof -i 

在这里插入图片描述

// 查看 8080 端口占用情况
lsof -i:8000

nodejs  26993 root   10u  IPv4 37999514      0t0  TCP *:8000 (LISTEN)

// 其它一些常见用法
lsof abc.txt:显示开启文件abc.txt的进程
lsof -c abc:显示abc进程现在打开的文件
lsof -c -p 1234:列出进程号为1234的进程所打开的文件
lsof -d 4:显示使用fd为4的进程

netstat

  • netstat 用于查看网络状态。日常工作中常用于观察服务器网络连接、端口占用。
命令格式:
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

常用参数:
常用参数:
-a或--all 显示所有连线中的Socket
-p或--programs 显示正在使用Socket的程序识别码和程序名称
-n或--numeric 直接使用IP地址,而不通过域名服务器(显示具体端口号)
-t或--tcp 显示TCP传输协议的连线状况
-u或--udp 显示UDP传输协议的连线状况

// 如查看所有 TCP 网络连接
[root@iZwz97fphe0t194uzxhm8lZ ~]# netstat -anpt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:5355            0.0.0.0:*               LISTEN      833/systemd-resolve
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      880/sshd
tcp        0      0 172.19.229.159:22       183.14.134.96:25981     ESTABLISHED 25803/sshd: root [p
tcp        0      0 172.19.229.159:55656    100.100.21.100:80       TIME_WAIT   -
tcp        0      0 172.19.229.159:55658    100.100.21.100:80       TIME_WAIT   -
tcp        0      0 172.19.229.159:55648    100.100.21.100:80       TIME_WAIT   -
tcp        0      0 172.19.229.159:60706    100.100.0.70:80         TIME_WAIT   -
tcp6       0      0 :::5355                 :::*                    LISTEN      833/systemd-resolve
tcp6       0      0 :::80                   :::*                    LISTEN      2801/docker-proxy
tcp6       0      0 :::443                  :::*                    LISTEN      2790/docker-proxy
tcp6       0      0 :::1024                 :::*                    LISTEN      3031/docker-proxy
tcp6       0      0 :::1025                 :::*                    LISTEN      3020/docker-proxy


// 查看 80 端口占用的进程和进程号 可以和上一期学的 grep 命令组合使用
[root@iZwz97fphe0t194uzxhm8lZ ~]# netstat -atnp | grep 80
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      880/sshd
tcp        0      0 172.19.229.159:44072    100.100.21.100:80       TIME_WAIT   -
tcp        0      0 172.19.229.159:44070    100.100.21.100:80       TIME_WAIT   -
tcp        0      0 172.19.229.159:49126    100.100.0.70:80         TIME_WAIT   -
tcp        0      0 172.19.229.159:44078    100.100.21.100:80       TIME_WAIT   -
tcp        0      0 172.19.229.159:44076    100.100.21.100:80       TIME_WAIT   -
tcp6       0      0 :::80                   :::*                    LISTEN      2801/docker-proxy

ping

  • ping 命令用于检测与另一个主机之间的网络连接,日常开发中常用于检测服务器是否在线,但无法 ping 通不等于服务不在线,因为服务器端可以主动关闭该功能。
  • 使用 ICMP(Internet Control Message Protocol) 传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息。
    命令格式:
    ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]

    常用参数:
    -d 使用Socket的SO_DEBUG功能
    -c <完成次数> 设置完成要求回应的次数
    -i<间隔秒数> 指定收发信息的间隔时间
    -R 记录路由过程
    -t<存活数值> 设置存活数值TTL的大小
    -s<数据包大小> 设置数据包的大小

    // 示例
    [root@iZwz97fphe0t194uzxhm8lZ ~]# ping -i 3 -c 3 -s 1024 -t 255 baidu.com
    PING baidu.com (39.156.66.10) 1024(1052) bytes of data.
    1032 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=1 ttl=49 time=50.1 ms
    1032 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=2 ttl=49 time=50.1 ms
    1032 bytes from 39.156.66.10 (39.156.66.10): icmp_seq=3 ttl=49 time=50.1 ms

    --- baidu.com ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 11ms
    rtt min/avg/max/mdev = 50.116/50.119/50.123/0.182 ms

    // -i 3 执行周期为 3 秒
    // -c 3 要求会员次数 3 次
    // -s 1024 包大小 1024 
    // -t 设置TTL值为 255

nslookup

  • 是用于查询域名系统(DNS)信息的命令行工具。它可以用来查找域名的IP地址,或者反向查找IP地址对应的域名。
    命令格式:
    nslookup domain [dns-server]

    // 使用示例 使用默认域名服务器
    [root@iZwz97fphe0t194uzxhm8lZ ~]# nslookup baidu.com
    Server:         100.100.2.136
    Address:        100.100.2.136#53

    Non-authoritative answer:
    Name:   baidu.com
    Address: 110.242.68.66
    Name:   baidu.com
    Address: 39.156.66.10

    // 使用指定域名服务器解析
    [root@iZwz97fphe0t194uzxhm8lZ ~]# nslookup baidu.com 8.8.8.8
    Server:         8.8.8.8
    Address:        8.8.8.8#53

    Non-authoritative answer:
    Name:   baidu.com
    Address: 39.156.66.10
    Name:   baidu.com
    Address: 110.242.68.66

ssh

  • Linux SSH(Secure Shell)是一种用于远程管理和安全通信的协议和工具。它允许用户通过网络安全地远程登录到其他计算机,并执行各种操作,日常工作中常用于登录服务器。
  • SSH使用非对称加密来建立连接,并在连接建立后使用对称加密来保护通信内容。这种方法确保了数据的机密性和完整性。
    命令格式:
    ssh [选项] [参数]

    常用参数:
    -p:指定远程服务器上的端口
    -i:指定身份(私钥)文件

    // 常用方式
    # ssh 用户名@远程服务器地址
    ssh user1@172.24.210.101
    # 指定端口
    ssh -p 2211 root@140.206.185.170

ssh-keygen

  • 除了使用密码登录的方式,我们还可以生成秘钥文件实现免密登录。
    // ssh-keygen # 为当前用户生成 ssh 公钥 + 私钥
    // 如果你使用了密码,那么请确保添加了 -o 选项,它会以比默认格式更能抗暴力破解的格式保存私钥
    $ ssh-keygen -o
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/schacon/.ssh/id_rsa):
    Created directory '/home/schacon/.ssh'.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/schacon/.ssh/id_rsa.
    Your public key has been saved in /home/schacon/.ssh/id_rsa.pub.
    The key fingerprint is:
    d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local

    // 将当前用户的公钥复制到需要 ssh 的服务器的 ~/.ssh/authorized_keys,实现免密登录
    ssh-copy-id user@ip:port

scp

  • SCP(Secure Copy Protocol)是一种用于在远程系统之间安全复制文件的协议。它通过SSH(Secure Shell)协议进行加密通信,确保数据传输的安全性。SCP通常用于将文件从一个计算机复制到另一个计算机,或者从本地计算机上传到远程服务器,反之亦然。
    命令格式:
    scp [参数] [本地文件] [远程地址]

    常用参数:
    -r:递归复制怎么目录

    // 使用示例
    // 从本地计算机上传文件到远程服务器
    scp /path/to/local/file username@remote_server:/path/to/remote/directory

    // 从远程服务器下载文件到本地计算机
    scp username@remote_server:/path/to/remote/file /path/to/local/directory

    // 从本地计算机上传整个目录到远程服务器
    scp -r /path/to/local/directory username@remote_server:/path/to/remote/directory

sftp

  • SFTP(Secure File Transfer Protocol)是一种基于SSH协议的安全文件传输协议,用于在本地计算机和远程服务器之间以加密和安全的方式传输文件。与SCP不同,SFTP提供了更多的文件管理功能,允许用户在本地和远程系统之间进行更灵活的文件操作,包括上传、下载、删除、重命名文件,以及浏览远程目录等。

  • 使用示例

    // 连接到远程服务器
    sftp username@remote_server

    // 上传文件到远程服务器
    put /path/to/local/file /path/on/remote/server

    // 下载文件到本地计算机
    get /path/on/remote/server /path/to/local/directory

    // 列出远程服务器上的文件和目录
    ls

    // 或者列出特定目录
    ls /path/on/remote/server

    // 删除远程服务器上的文件
    rm /path/on/remote/server/filename

    // 重命名远程服务器上的文件
    rename old_filename new_filename

    // 退出SFTP会话
    exit

网络工具 curl

  • curl 是一个强大的命令行工具,用于在Unix、Linux和类Unix系统中进行数据传输。它支持多种协议,包括HTTP、HTTPS、FTP、SCP、SFTP、LDAP等,可以用来发送请求并接收来自Web服务器和其他网络服务的响应。
  • 下面我们主要介绍一些常见的用法:
    命令格式:
    curl [选项] [URL]

    常用参数:
    -v:选项来显示HTTP请求和响应的详细信息
    -i:选项来显示HTTP响应头信息
    -X:选项来指定HTTP请求方法
    -x:选项来指定代理服务器
    -u:选项来指定用户名和密码
    -H:选项来指定HTTP头部信息

    # 使用示例
    // 发送 get 请求
    curl https://www.example.com

    // 发送 post 请求
    // 使用-X选项来指定HTTP请求方法,通常与-d选项一起使用以发送POST数据
    curl -X POST -d "key1=value1&key2=value2" https://www.example.com/api

    // 发送HTTP请求时携带HTTP头部信息
    curl -H "Authorization: Bearer <token>" https://api.example.com/resource

    // 使用代理服务器
    curl -x http://proxy.example.com:8080 https://www.example.com

    // 保存下载文件
    curl -o outputfile.txt https://www.example.com/file.txt

    // 使用用户名和密码进行HTTP基本认证
    curl -u username:password https://www.example.com/secure/resource

网络工具 wget

  • wget是一个在命令行中常用的工具,用于从网络上下载文件。它支持HTTP、HTTPS、FTP等多种协议,并提供了丰富的选项,使得文件下载变得非常灵活和强大。
  • 下面介绍一些常见用法:
    命令格式:
    wget [选项] [URL]

    常用参数:
    -b:选项来在后台下载文件
    -O:选项来指定保存的文件名
    -c:选项来启用断点续传,如果下载中断,可以恢复下载

    // 使用wget下载文件,将文件保存在当前工作目录
    wget https://www.example.com/file.txt

    // 使用-O选项来指定保存的文件名
    wget -O myfile.txt https://www.example.com/file.txt

    // 后台下载
    wget -b https://www.example.com/largefile.zip

    // 限速下载速度
    wget --limit-rate=100k https://www.example.com/largefile.zip

最后

  • 如果文章对你有帮助,请一键三连,关注、点赞、收藏,你的支持是我创作的最大动力,谢谢大家。

个人简介

👋 你好,我是 Lorin 洛林,一位 Java 后端技术开发者!座右铭:Technology has the power to make the world a better place.

🚀 我对技术的热情是我不断学习和分享的动力。我的博客是一个关于Java生态系统、后端开发和最新技术趋势的地方。

🧠 作为一个 Java 后端技术爱好者,我不仅热衷于探索语言的新特性和技术的深度,还热衷于分享我的见解和最佳实践。我相信知识的分享和社区合作可以帮助我们共同成长。

💡 在我的博客上,你将找到关于Java核心概念、JVM 底层技术、常用框架如Spring和Mybatis 、MySQL等数据库管理、RabbitMQ、Rocketmq等消息中间件、性能优化等内容的深入文章。我也将分享一些编程技巧和解决问题的方法,以帮助你更好地掌握Java编程。

🌐 我鼓励互动和建立社区,因此请留下你的问题、建议或主题请求,让我知道你感兴趣的内容。此外,我将分享最新的互联网和技术资讯,以确保你与技术世界的最新发展保持联系。我期待与你一起在技术之路上前进,一起探讨技术世界的无限可能性。

📖 保持关注我的博客,让我们共同追求技术卓越。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/342669.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

k8s部署Ingress

前提&#xff1a;有自备的域名&#xff0c;没有域名可用主机配置的域名解析代替测试 #主机配置的域名 vi /etc/hosts #追加以下内容 127.0.0.1 kuboard1、部署Ingress vi deploy.yaml #输入以下内容apiVersion: v1 kind: Namespace metadata:labels:app.kubernetes.io/instan…

git使用指南——以gitlab为例

注册gitlab 自行注册 新建项目 选择新建一个空白的项目 上传项目 clone项目地址到本地 执行完之后&#xff0c;会在目录下生成如下内容&#xff1a;进入里面&#xff0c;选择.git&#xff0c;要上传的内容&#xff08;资料或代码复制到该目录下&#xff09;&#xff1a;…

华夏基金“冰火两重天”:产品增量不增值,靠什么赢得用户?

近日&#xff0c;华夏基金发布关于华夏野村日经225交易型开放式指数证券投资基金&#xff08;QDII&#xff09;&#xff08;下称“华夏野村日经ETF”&#xff09;二级市场交易价格溢价风险提示及临时停牌公告。 公告内容显示&#xff0c;华夏野村日经ETF二级市场交易价格明显高…

Prometheus 架构全面解析

在本指南中&#xff0c;我们将详细介绍 Prometheus 架构。 Prometheus 是一个用 Golang 编写的开源监控和告警系统&#xff0c;能够收集和处理来自各种目标的指标。您还可以查询、查看、分析指标&#xff0c;并根据阈值收到警报。 此外&#xff0c;在当今世界&#xff0c;可观…

如何使用宝塔面板搭建Discuz论坛服务并结合内网穿透远程访问

文章目录 前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛 前言 Crossday Discuz! Board&#xff08;以下简称 Discuz!&#xff09;是一套通用的社区论坛软件系统&#xff0c;用户可以在不需要任何编程的基础上&a…

架构篇18:单服务器高性能模式-PPC与TPC

文章目录 PPCpreforkTPCprethread小结高性能是每个程序员的追求,无论我们是做一个系统还是写一行代码,都希望能够达到高性能的效果,而高性能又是最复杂的一环,磁盘、操作系统、CPU、内存、缓存、网络、编程语言、架构等,每个都有可能影响系统达到高性能,一行不恰当的 deb…

【强化学习】QAC、A2C、A3C学习笔记

强化学习算法&#xff1a;QAC vs A2C vs A3C 引言 经典的REINFORCE算法为我们提供了一种直接优化策略的方式&#xff0c;它通过梯度上升方法来寻找最优策略。然而&#xff0c;REINFORCE算法也有其局限性&#xff0c;采样效率低、高方差、收敛性差、难以处理高维离散空间。 为…

力扣hot100 环形链表 快慢指针 哈希 数学公式

Problem: 142. 环形链表 II 文章目录 思路Code 思路 &#x1f468;‍&#x1f3eb; 参考题解 Code ⏰ 时间复杂度: O ( n ) O(n) O(n) &#x1f30e; 空间复杂度: O ( 1 ) O(1) O(1) /** /*** Definition for singly-linked list.* class ListNode {* int val;* …

C++大学教程(第九版)6.29素数

题目 (素数)素数是只能被1和自已整除的整数。例如,235和7是素数而468和9不是素数 a)编写一个函数&#xff0c;确定一个数是否是素数。 b)在程序中使用这个函数&#xff0c;该程序确定和打印2 ~10000之间的所有素数。在确信已找到所有的素数之前&#xff0c;实际需测试这些数中…

老师家访的目的是什么

家访&#xff0c;对于老师来说&#xff0c;是工作中必不可少的一部分。有人会问&#xff0c;老师家访的目的是什么呢&#xff1f;是为了了解学生的家庭情况&#xff0c;还是为了和家长建立良好的沟通关系&#xff1f;其实&#xff0c;老师家访的目的远不止于此。 老师家访是为…

MIT6.1810(which was called 6.S081 then) Lab1-4

关于用VScode调试XV6的方法我在上一篇博客有过介绍NJU操作系统课(蒋炎岩) 笔记-CSDN博客 这篇主要记录做XV6 Lab的过程。 关于Lec的学习我英语差而且机翻会有误差(会努力学英语的&#xff01;)&#xff0c;所以我使用肖宏辉大佬自己翻译的书面版本&#xff0c;非常感谢这位大佬…

GPS位置虚拟软件 AnyGo mac激活版

AnyGo for Mac是一款一键将iPhone的GPS位置更改为任何位置的强大软件&#xff01;使用AnyGo在其iOS或Android设备上改变其GPS位置&#xff0c;并在任何想要的地方显示自己的位置。这对那些需要测试应用程序、游戏或其他依赖于地理位置信息的应用程序的开发人员来说非常有用&…

QSqlQuery 执行Update 判断执行成功与否

1.执行更新操作的SQL语句 update s_info set name"009" where contact_number "13511112222" 怎么样判断是否确实更新操作是执行成功的 &#xff0c;可以通过下列语句判断 query.numRowsAffected() > 0 2.主要的几步操作如下: QSqlQuery query;query.…

如何解决GitHub打不开的问题?

网址&#xff1a;https://github.com.ipaddress.com Domain Summary 140.82.114.3 github.com二、查看github.global.ssl.fastly.net的IP地址 网址&#xff1a;https://fastly.net.ipaddress.com/github.global.ssl.fastly.net hostname summary 199.232.69.194 github.global…

Vulnhub-dc4

靶场下载 https://download.vulnhub.com/dc/DC-4.zip 信息收集 判断目标靶机的存活地址: # nmap -sT --min-rate 10000 -p- 192.168.1.91 -oN port.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-21 16:36 CST Stats: 0:00:03 elapsed; 0 hosts completed (1 up…

JAVASE进阶(设计模式、设计原则)(更新中...)

目录 一、注解 内置注解&#xff1a;JAVA中已经定义好的注解。 元注解&#xff1a;修饰注解的注解。 自定义注解。 二、克隆 JAVA中对clone的实现&#xff1f; 浅克隆 深克隆 那么该如何做到深克隆呢&#xff1f; 三、常用设计模式 1、创建型模式 单例模式 工厂模式 工…

从零学Java - Stream API

Java - Stream API 文章目录 Java - Stream API什么是流(Stream)?Stream 的特点Stream使用步骤1 创建 Stream流2 中间操作3 终止操作 什么是流(Stream)? 流&#xff08;Stream&#xff09;与集合类似&#xff0c;但集合中保存的是数据&#xff0c;而Stream中保存对集合或数组…

微信怎么设置自动回复?教程来咯!

自动回复信息 你有没有为了回复微信消息&#xff0c;中断工作进度&#xff0c;耽误了大量时间&#xff1f;或者错过了潜在客户&#xff1f;现在&#xff0c;我们的微信管理系统&#xff0c;可以帮助你在第一时间&#xff0c;实时回复用户消息。 01 # 通过好友自动打招呼# 我们…

技术浪潮中的职业变革:程序员面临的裁员挑战与应对策略

目录 前言 冲破时空壁垒&#xff1a;探索技术变革的酷时代&#xff01; 逆境成长&#xff1a;一个互联网人战胜失业困境的故事 裁员的双面影响&#xff1a;挑战与机遇 应对裁员潮危机&#xff1a;程序员的超级英雄之路 前言 惊人的新闻传来&#xff0c;一对来自中国的工程师…

【Linux与windows的文件互相传输】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 关于 rzsz 注意事项 查看软件包 使用命令 下载到本地&#xff08;使用sz的命令&#xff09; 本地文件上传到Linux中&#xff08;使用rz命令&#xff09; 方法一…