客户端与服务端通信的端口以及新增ARP缓存

news/2024/10/25 6:39:39/

        客户端(例如浏览器)在与服务器通信时确实会使用一个随机的、高于1024的端口。不过,在端口转发的场景中,我们主要关注的是两个不同的层面:服务器的监听端口(即最终目的地的端口)和客户端的源端口

端口转发的工作原理

  1. 客户端与服务器的通信

    当客户端(如Web浏览器)请求一个网页时,它会从操作系统中随机选择一个可用的高端口(通常是1024以上),并通过这个端口发送请求。请求是通过建立TCP连接的形式发送到服务器的特定端口(例如HTTP的80端口或HTTPS的443端口)。
  2. 端口转发的角色

    端口转发主要是在服务器端进行的。在上一篇文章的案例中,通过netsh设置端口转发,这使得你的计算机(作为服务端)能够将进入的流量从特定的端口(例如80端口)转发到内部网络中的其他设备。

结合起来

  • 客户端访问

    • 客户端会向10.0.0.1:80发送请求。这个IP假设是你的服务器上的IP地址。客户端会使用一个随机的源端口(例如60000),但这对转发规则没有影响。
  • 端口转发执行

    • 你的服务器(返回请求的地方)侦听在80端口,转发进入的请求到另一台目标服务器(例如192.168.1.100)的80端口。
  • 流量转发

    • 一旦数据包到达10.0.0.1:80,依据你的netsh规则,数据会被转发到192.168.1.100:80。目标服务器处理请求并返回响应。

 

添加新的ARP条目 

1. 打开命令提示符(以管理员身份运行)
  • 按下 Win + R 键,打开“运行”对话框。
  • 输入 cmd,然后右键点击并选择“以管理员身份运行”以打开命令提示符。
2. 查看当前的ARP缓存

在命令提示符中输入以下命令以查看当前的ARP缓存:

arp -a

这将显示当前ARP缓存中的IP地址与MAC地址的映射,包括网关的条目。

3. 指定要修改的网关IP地址

假设你的网关IP地址是 192.168.1.1,你可以使用以下命令格式来修改这个IP地址对应的MAC地址:

arp -s 192.168.1.1 [新的MAC地址]

例如,如果你想将网关 192.168.1.1 的MAC地址修改为 00-11-22-33-44-55,可以输入:

arp -s 192.168.1.1 00-11-22-33-44-55

4. 验证修改

再次使用以下命令查看当前ARP缓存,以确认你的修改是否生效:

arp -a

你应该能够在ARP缓存列表中看到网关的IP地址对应的MAC地址已经被修改。

注意事项

  • 管理员权限:修改ARP缓存通常需要管理员权限,因此在打开命令提示符时要以管理员身份运行。
  • 网络影响:修改网关的ARP条目可能会导致网络连接中断或不稳定。请务必在使用此方法之前确保你有充足的准备应对可能的网络问题。
  • ARP缓存时间限制:ARP缓存条目有一定的生存时间,修改后的条目可能会在一段时间后恢复到默认状态。这个生存时间取决于网络环境和操作系统设置。

http://www.ppmy.cn/news/1541768.html

相关文章

Linux -- 进程间通信、初识匿名管道

目录 进程间通信 什么是进程间通信 进程间通信的一般规律 前言: 管道 代码预准备: 如何创建管道 -- pipe 函数 参数: 返回值: wait 函数 参数: 验证管道的运行: 源文件 test.c : m…

【开发语言】c++的发展前景

C作为一种历史悠久且功能强大的编程语言,在软件开发领域一直保持着其独特的地位和广泛的应用前景。尽管近年来出现了许多新的编程语言和技术趋势,但C由于其高性能、低层访问能力以及广泛的生态系统,在多个领域依然具有不可替代的优势。以下是…

Docker存储

前提条件 拥有docker环境,可参考:Docker的安装掌握容器的使用,可参考:Docker容器的使用掌握镜像的使用,可参考:Docker镜像的使用 Docker存储的问题 容器是隔离环境,容器内程序的文件、配置、运…

【深度学习实验七】 自动梯度计算

目录 一、利用预定义算子重新实现前馈神经网络 (1)使用pytorch的预定义算子来重新实现二分类任务 (2)完善Runner类 (3) 模型训练 (4)性能评价 二、增加一个3个神经元的隐藏层,再次实现二分类,并与1做对比 三、自定义隐藏层层数和每个隐藏层中的神经元个数,尝…

使用 NumPy 和 Matplotlib 实现交互式数据可视化

使用 NumPy 和 Matplotlib 实现交互式数据可视化 在数据分析中,交互式可视化可以更好地帮助我们探索和理解数据。虽然 Matplotlib 是静态绘图库,但结合一些技巧和 Matplotlib 的交互功能(widgets、event handlers),我…

微积分复习笔记 Calculus Volume 1 - 3.6 The Chain Rule

3.6 The Chain Rule - Calculus Volume 1 | OpenStax

限流是什么?如何限流?怎么限流?

概述 什么是限流 对某一时间窗口内的请求数进行限制,保持系统的可用性和稳定性,防止因流量暴增而导致的系统运行缓慢或宕机 为什么要限流 因为互联网系统通常都要面对大并发大流量的请求,在突发情况下(最常见的场景就是秒杀、抢购),瞬时大流量会直接将系统打垮,无法…

java面试精选

mybatis的数据库连接池 数据库MyBatis本身不包含数据库连接池功能,但通常与其他第三方数据库连接池一起使用来管理数据库连接。以下是MyBatis常用的数据库连接池配置选项: C3P0 配置示例:<dataSource type="C3P0"><property name="driver" va…