Linux网络信息(含ssh服务和rsync)

发布于:2025-07-22 ⋅ 阅读:(13) ⋅ 点赞:(0)

73.telnet:测试端口连通性

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

测试目标主机的指定端口是否开放,检查网络服务连通性。

eg:

telnet www.baidu.com 80

# 说明:

# - 如果连接成功,显示 "Connected to ..."。

# - 如果失败,显示 "Connection refused" 或 "Unable to connect"。

这会测试百度的 HTTP 服务(80 端口)是否可以连接。

常用场景:

测试服务器的特定服务是否正常运行。

检查防火墙是否阻止了指定端口。

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

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

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

# tcpdump 常用选项:

# -i:指定监听的网络接口(如 eth0,ens33)。

# -w:将捕获的数据包保存到文件(如 capture.pcap)。

# -r:从文件中读取并解析数据包(如读取保存的 pcap 文件)。

# -n:不解析主机名和服务名称,直接显示 IP 和端口号。

# -nn:同时禁用主机名和端口解析,显示数字地址和端口号。

# -c:限制捕获的数据包数量(如 -c 10 表示捕获 10 个包后退出)。

# -X:显示数据包的十六进制和 ASCII 内容。

# -A:以 ASCII 格式显示数据包内容(适合查看 HTTP 数据)。

# -v:显示数据包的详细信息

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

tcpdump -i eth0

# 2.捕获并保存数据包到文件

tcpdump -i eth0 -w capture.pcap

# 3.捕获来自特定 IP 的数据包

tcpdump -i eth0 src 192.168.1.100

# 4.捕获目标 IP 的数据包

tcpdump -i eth0 dst 192.168.1.200

# 5.捕获特定端口(如 80)上的流量

tcpdump -i eth0 port 80

# 6.捕获来自特定源 IP 且目标端口为 80 的数据包,并保存到文件 capture.pcap 里

tcpdump -i eth0 src 192.168.1.100 and dst port 80 -w capture.pcap -nn -v # 比较常用!

·抓取数据包: 用 tcpdump -i 接口 监听网络流量。

·保存数据分析: 用 -w 保存为文件,配合 Wireshark 等工具分析。

·过滤特定流量: 配合 src、dst 或 port 筛选数据包。

·查看详细信息: 用 -v 或更详细的 -vv 输出抓包细节。

75.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

76.ip/ifconfig:查看ip地址

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

lo:访问自己

ens33:访问别人

# 1. 查看ip地址(类似ifconfig

ip addr show/ip -a

# 2. 查看路由表

ip route show

# 3. 启用网络接口

sudo ip link set eth0 up

# 4. 禁用网络接口

sudo ip link set eth0 down

使用ifconfig需要先下载yum install net-tools(eth0改为ens33)

ifconfig ens33:0 192.168.8.11/24 down

补充一点:修改ip地址

使用ip命令(推荐)

1. 临时添加一个新 IP 地址(不删除原有地址)

ip addr add 192.168.1.100/24 dev eth0

192.168.1.100:新 IP 地址

/24:子网掩码(等同于 255.255.255.0)

eth0:网络接口名称(需替换为实际接口名,如ens33)

2. 临时修改(替换)当前 IP 地址

ip addr flush dev eth0                      # 清空当前所有IP配置

ip addr add 192.168.1.101/24 dev eth0   # 添加新IP

3. 临时添加第二个 IP 地址(多 IP 配置)

ip addr add 192.168.1.102/24 dev eth0 label eth0:1

eth0:1:虚拟接口名称(可自定义,用于区分多个 IP)

4. 激活 / 禁用网络接口

ip link set eth0 up    # 启用接口

ip link set eth0 down  # 禁用接口

使用ifconfig命令(传统方法,部分系统已弃用)

1. 临时添加一个新 IP 地址

ifconfig eth0:1 192.168.1.103 netmask 255.255.255.0 up

eth0:1:虚拟接口名称

192.168.1.103:新 IP 地址

2. 临时修改(替换)当前 IP 地址

ifconfig eth0 192.168.1.104 netmask 255.255.255.0

3. 激活 / 禁用网络接口

ifconfig eth0 up      # 启用接口

ifconfig eth0 down   # 禁用接口

注意事项

临时生效:上述方法配置的 IP 地址在重启网络服务或系统后会丢失。若需永久保存,需修改配置文件(如/etc/network/interfaces或/etc/sysconfig/network-scripts/ifcfg-eth0)。

权限要求:执行上述命令需要 root 权限(需使用sudo或切换到 root 用户)。

检查接口名称:使用ip a或ifconfig查看实际网络接口名称(如eth0、ens33、enp0s3等)。

冲突避免:确保新 IP 地址不在 DHCP 分配范围内,避免与其他设备冲突。

验证配置

配置完成后,使用以下命令检查 IP 地址是否生效:

ip a show eth0        # 查看接口详细信息

ping 192.168.1.1     # 测试网络连通性

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

Network Manage tui

·修改ip地址  等价于vim  /etc/sysconfig/network-script/ifcfg-ens33

·重启网卡           systemctl  restart  network

·修改主机名         hostnamectl  set-hostname 主机名

77.ssh:安全的远程连接

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

·ssh协议

SSH(Secure Shell)协议是一种用于在网络中实现安全远程登录、文件传输和命令执行的加密网络协议。它通过加密技术保护数据在传输过程中的安全性,有效替代了传统的明文传输协议(如 Telnet、FTP),广泛应用于服务器管理、网络设备配置等场景。

一、SSH 协议的核心功能

远程登录

允许用户通过加密连接登录到远程服务器,就像在本地操作一样执行命令。例如,管理员可以通过 SSH 登录到云服务器进行配置。

安全文件传输

基于 SSH 协议的衍生工具(如 SCP、SFTP)支持加密的文件上传和下载,避免文件内容被窃听或篡改。

端口转发(隧道)

可建立加密 “隧道”,将其他协议(如 HTTP、MySQL)的流量通过 SSH 传输,实现安全的跨网络访问(例如访问内网数据库)。

远程命令执行

支持在本地直接向远程服务器发送命令并获取结果,无需交互式登录(常用于脚本自动化)。

二、SSH 的加密原理

SSH 协议通过非对称加密和对称加密结合的方式保证安全性,主要过程如下:

握手阶段

客户端与服务器建立 TCP 连接后,协商 SSH 版本和加密算法(如 AES、ChaCha20)。

服务器向客户端发送公钥,客户端验证公钥合法性(首次连接时需手动确认)。

密钥交换

客户端生成一个临时对称密钥,用服务器的公钥加密后发送给服务器。

服务器用私钥解密得到对称密钥,此后双方使用该密钥对所有通信内容进行加密(对称加密效率更高)。

身份认证

密码认证:客户端发送加密后的密码,服务器验证。

密钥认证(更安全):客户端生成一对密钥(公钥 + 私钥),公钥存放在服务器,登录时服务器用公钥验证客户端私钥,无需输入密码。

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

客户端远程连接:

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

是否同意加密?yes

输入对方密码

exit 退出

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

CentOS:yum  install  openssh-server

Ubuntu:sudo  apt  install  openssh-server

修改sshd的配置文件:

vim  /etc/ssh/sshd_config

systemctl  restart  sshd   #重启服务

·跳板机:跳板机(Jump Server)是一种部署在网络边界或内部网络中的专用服务器,作为用户访问目标设备(如生产服务器、数据库、网络设备等)的中间节点,起到集中管控、安全审计、权限隔离的作用。

密钥验证:

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

  1. 在客户端生成密钥对;私钥保存在本地,保证私钥的安全;

ssh-keygen                #默认三个回车

  1. 将公钥发送到服务端/root/.ssh/authorized_keys进行保存;

ssh-copy-id  用户名@ip   #输入密码(以下ip都是服务器的ip)

  1. 之后进行登录自动识别身份;

ssh  root@192.168.8.20

XShell免密登录

1、工具——新建用户密钥生成向导——默认,下一步——完成

属性里可以看公钥,复制粘贴到服务器,vim .ssh/authorized_keys第二行

2、工具——身份验证配置文件——密钥类型:RSA;密钥长度:2048;下一步——默认,下一步——点刚刚设置的,密钥很多个就点第一个——点公钥,把下面一长串复制到要登陆的服务器里面(服务器打开vim  .ssh/authorized_keys如何粘贴到第二行)——点菜单栏里的断开连接(在编辑下面)——用户名输入root——选择密钥登录(public key),直接确定。

78.scp:远程文件复制

命令格式:

上传:将本地文件发送到目标服务器上;

scp  [-r]  原文件  root@ip:/目标路径

客户端   服务器

下载:将服务器上的文件下载到本地;

scp  [-r]  root@ip:/目标路径  本地目录

服务器               客户端

scp是全量复制:从头到尾全部复制,速度相对较慢

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

·rsync是增量复制、差异复制,支持增量传输,只同步变化的部分,比 scp 更高效。

只复制增加和修改的文件,一般用来做备份

·格式:rsync  [选项]  本地文件  root@ip:路径

        rsync  [选项]  root@ip:文件  本地路径

常用选项:

-a,--archive归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD。

-v,--verbose详细模式输出。

-z:--compress对备份的文件在传输时进行压缩处理。

--delete:删除目标中源目录不存在的文件。

-e:指定远程传输方式(如 SSH)。

# rsync同步目录或文件

rsync -avz --delete redis-6.2.14 root@192.168.8.20:/root

问题:如何实现实时同步?


网站公告

今日签到

点亮在社区的每一天
去签到