网络操作命令70~77

70.telnet:测试端口连通性

用法:telnet 主机名或IP 端口号

telnet 192.168.25.20 80
# 说明:
# - 如果连接成功,显示 "Connected to ..."。
# - 如果失败,显示 "Connection refused" 或 "Unable to connect"。


71.tcpdump:网络数据包捕获工具

用法:tcpdump [选项] [过滤条件]

  • 强大的网络抓包工具,支持实时查看或保存数据包,用于分析网络问题。

常用操作:

# tcpdump 常用选项:
# -i:指定监听的网络接口(如 ens33)。
# -w:将捕获的数据包保存到文件(如 capture.pcap)。
# -r:从文件中读取并解析数据包(如读取保存的 pcap 文件)。
# -n:不解析主机名和服务名称,直接显示 IP 和端口号。
# -nn:同时禁用主机名和端口解析,显示数字地址和端口号。
# -c:限制捕获的数据包数量(如 -c 10 表示捕获 10 个包后退出)。
# -X:显示数据包的十六进制和 ASCII 内容。
# -A:以 ASCII 格式显示数据包内容(适合查看 HTTP 数据)。
# -v:显示数据包的详细信息

# 1. 捕获指定接口上的所有数据包
tcpdump -i ens33

# 2. 捕获并保存数据包到文件
tcpdump -i ens33 -w capture.pcap

# 3. 捕获来自特定 IP 的数据包
tcpdump -i ens33 src 192.168.1.100

# 4. 捕获目标 IP 的数据包
tcpdump -i ens33 dst 192.168.1.200

# 5. 捕获特定端口(如 80)上的流量
tcpdump -i ens33 port 80

# 6. 捕获来自特定源 IP 且目标端口为 80 的数据包,并保存到文件 capture.pcap 里
tcpdump -i ens33 src 192.168.1.100 and dst port 80 -w capture.pcap -nn -v

72.nc (Netcat):网络工具的瑞士军刀

“不仅能测试端口,还能传文件、模拟服务,样样精通!”

用法:nc 选项 [主机名或IP] [端口号]

  • 支持 TCP 和 UDP 协议,用于网络调试、文件传输、服务模拟等。

常用操作:

# nc 常用选项:
# -l     :监听模式,用于在本地创建服务器,等待客户端连接。
# -z     :扫描模式,检查端口是否开放,不发送任何数据。
# -v     :启用详细模式,输出更多的调试信息。
# -u     :使用 UDP 协议进行连接,而不是默认的 TCP。
# -p     :指定源端口。
# -w     :设置超时时间,单位为秒。
# -n     :禁用 DNS 解析,直接使用 IP 地址,而不是域名。
# -v     :详细输出,显示连接过程中的所有信息。


# 1. 连接到远程主机的指定端口(TCP连接)
nc example.com 80

# 2. 监听本地端口(创建服务器,等待连接)
nc -l 12345

# 3. 通过 netcat 发送文件到远程主机
# 在远程机器上执行:nc -l 12345 > received_file.txt
# 在本地机器上执行:nc remote_host 12345 < file_to_send.txt

# 4. 使用 UDP 协议发送数据
nc -u -l 12345  # 监听 UDP 端口 12345
nc -u remote_host 12345  # 发送数据到指定 UDP 端口

# 5. 测试端口是否开放(可以用来检查某些端口是否能够连接)
nc -zv example.com 80 443

# 6. 扫描端口范围(测试哪些端口开放)
nc -zv example.com 1-1000

# 7. 通过 nc 实现简易的端到端聊天
# 在一台机器上执行:nc -l 12345
# 在另一台机器上执行:nc localhost 12345
# 然后你就可以发送消息了

# 8. 创建一个简单的 HTTP 请求
echo -e "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n" | nc example.com 80

# 9. 发送数据并接收响应
echo "Hello, World!" | nc example.com 80

小总结:

  • 测试端口:-zv 查看目标主机端口是否开放。
  • 文件传输: 配合 -l 模式,简单实现发送和接收。
  • 模拟客户端: 手动发送请求,调试服务(如 HTTP)。

nc 是命令行下的网络全能工具,调试与传输样样行!

73.ip/ifconfig:查看和管理网络配置

“网络连接有问题?用它查看或配置 IP 和路由!”

用法:ip [命令] [选项]

常用操作:

# 1. 查看网络接口信息【查看ip地址】
ip addr show  = ip a

ifconfig

----------------------------------
# 2. 查看路由表
ip route show

# 3. 启用网络接口
 ip link set ens33 up        # 启用接口
 ifconfig ens33 up           # 启用接口

# 4. 禁用网络接口
 ip link set ens33 down
 ifconfig ens33 down
 --------------------------------------------------------
 #临时添加或修改ip地址
 #ip命令  添加/修改 IP 地址(不会覆盖原有 IP,需先删除旧 IP)
ip addr add 192.168.1.100/24 dev ens33

# 删除旧 IP 地址
ip addr del 192.168.1.200/24 dev ens33

# 激活网络接口
ip link set ens33 up

# 查看当前 IP 配置
ip addr show ens33
 
 
#ifconfig命令
# 设置 IP 地址(会覆盖原有 IP)
ifconfig ens33 192.168.1.100 netmask 255.255.255.0 

# 添加额外 IP 地址(不覆盖原有 IP)
ifconfig ens33:1 192.168.1.101 netmask 255.255.255.0

# 禁用网络接口
ifconfig ens3 down

---------------------------------------------------------

重启网络服务:

systemctl restart NetworkManager

命令对照表

功能 ip 命令 ifconfig / 其他命令
显示接口信息 ip addr show ifconfig
启用 / 禁用接口 ip link set ens33 up/down ifconfig ens33 up/down
设置 IP 地址 ip addr add 192.168.1.100/24 dev ens33 ifconfig ens33 192.168.1.100 netmask 255.255.255.0
删除 IP 地址 ip addr del 192.168.1.100/24 dev ens33 -
显示路由表 ip route show route -n
添加默认网关 ip route add default via 192.168.1.1 route add default gw 192.168.1.1
显示 ARP 表 ip neigh show arp -a
创建 VLAN 接口 ip link add link ens33 name ens33.10 type vlan id 10 -
显示网络命名空间 ip netns list -

74.nmtui:半图形化网络管理命令

  • 修改ip地址 等价于 vim /etc/sysconfig/network-script/ifcfg-ens33
  • 重启网卡 systemctl restart network
  • 修改主机名 hostnamectl set-hostname 主机名

75.ssh:安全的远程连接

通过非对称加密,实现数据传输过程中的安全性。

ssh协议

ssh 服务属于c/s Client/Server ;

远程客户端

  • ssh 用户名@ip/主机名/域名 [-p 端口号(默认22号)]

  • sshd:服务端,安装在服务器上(CentOS默认安装)

    • CentOS:yum install openssh-server
    • Ubuntu:sudo apt install openssh-server
SSH 协议的核心功能
  1. 远程登录
    允许用户通过加密连接登录到远程服务器,就像在本地操作一样执行命令。例如,管理员可通过 SSH 远程管理 Linux 服务器。
  2. 安全文件传输
    基于 SSH 协议的衍生工具(如 SCP、SFTP)支持加密的文件上传和下载,避免传统 FTP 的明文传输风险。
  3. 端口转发(隧道)
    可创建加密 “隧道”,将其他协议(如 HTTP、MySQL)的流量通过 SSH 端口转发,实现安全访问(如访问内网数据库)。

SSH 工作原理

SSH 协议通过 非对称加密和对称加密 结合的方式实现安全通信,核心流程包括:

1. 握手阶段

  • 客户端与服务器建立 TCP 连接(默认端口 22)。
  • 双方协商协议版本(SSH-1 已淘汰,主流为 SSH-2)和加密算法(如 AES、ChaCha20)。
  • 服务器向客户端发送公钥,客户端验证服务器身份(首次连接需用户确认公钥指纹)。

2. 密钥交换

  • 客户端生成一个 会话密钥(对称加密密钥),用服务器的公钥加密后发送给服务器。
  • 服务器用私钥解密得到会话密钥,双方后续通信均使用此密钥进行对称加密(效率更高)。

3. 身份认证

客户端需验证身份才能登录,主要方式有:

  • 密码认证:输入服务器账户密码(明文在传输中被加密)。
  • 公钥认证(更安全):客户端生成公钥/私钥对,将公钥上传到服务器;登录时,服务器用公钥加密随机信息,客户端用私钥解密并返回结果,验证通过即可登录(无需输入密码)。

修改sshd配置文件 :

vim /etc/ssh/sshd_config

​ systemctl restart sshd #重启sshd

image

  • 跳板机:作为用户访问后端目标服务器(如生产服务器、数据库服务器等)的 唯一入口,用于集中管控、审计和保护对敏感资源的访问。
  • 白名单
允许指定用户进行登录(白名单)

在/etc/ssh/sshd_config 配置文件中设置AllowUsers选项,

在配置文件末尾添加行格式如下(例如允许用户tom通过192.168.8.30登录)。

AllowUsers tom@192.168.8.30
或者
AllowUsers tom@192.168.8.0/24

# 重启sshd
systemctl restart sshd

配置了指定用户或者用户组允许登录后,默认拒绝其他所有用户或者用户组。

  • 黑名单
禁止指定用户登录(黑名单)

在 /etc/ssh/sshd_config 配置文件中设置DenyUsers选项,

# 在配置文件末尾添加行格式如下(例如禁止用户lily登录)。
DenyUsers lily

# 重启sshd
systemctl restart sshd

秘钥验证:

客户端的公钥存放到服务端,每次登录通过公钥进行验证,省略密码。

  1. 在客户端生成秘钥对;【私钥保存在本地,保证私钥安全】
ssh-keygen #生成秘钥 敲3个回车
  1. 将公钥发送到服务端; /root/.ssh/authorized_keys
ssh-copy-id root@192.168.25.20
  1. 之后进行登录自动识别身份;
ssh root@192.168.25.20

76.scp:远程文件复制

  • 命令格式:
    • 上传:将本地文件发送到目标服务器上;
    • scp [-r] 原文件 root@ip:/目标路径
    • 下载:将服务器上的文件下载到本地;
    • scp [-r] root@ip:/路径 本地目录
# 将本地文件复制到远程服务器
scp redis-6.2.14.tar.gz root@192.168.8.20:/root
# 将远程服务器上的文件下载到本地
scp root@192.168.8.20:/root/20.txt ./
  • scp是全量复制

77.rsync:高效文件同步工具

  • rsync:支持增量传输,只同步变化的部分,比 scp 更高效。
  • 格式:
    • rsync [选项] 本地文件 root@ip:路径
    • rsync [选项] root@ip:文件 本地路径
  • 选项:
    • -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD。
    • -v, --verbose 详细模式输出。
    • -z, --compress 对备份的文件在传输时进行压缩处理。
    • --delete 删除那些DST中SRC没有的文件。
# rsync同步目录或文件
rsync -avz --delete redis-6.2.14 root@192.168.8.20:/root
  • 问题:如何实现实时同步?



#1.在客户端先下载inotify
yum install -y epel-release 
yum install -y inotify-tools

#2.在客户端新建一个名为sync.sh的脚本文件
touch sync.sh

#3.在 sync.sh 文件内添加以下内容
-----------------------------------
#!/bin/bash
while inotifywait -r -e modify,create,delete,move /data/(客户机上要备份的目录);do
  rsync -avz /data/(客户机上要备份的目录) root@192.168.8.11:/opt/data/(服务端的要保存备份的目录)
done
-----------------------------------
#4.授予脚本执行权限并执行
chmod +x sync.sh

./sync.sh

#5.测试同步功能是否实现











posted @ 2025-07-21 11:16  落无一  阅读(51)  评论(0)    收藏  举报