为啥不能伪造 IP 地址?

Posted

技术标签:

【中文标题】为啥不能伪造 IP 地址?【英文标题】:Why is it not possible to fake an IP address?为什么不能伪造 IP 地址? 【发布时间】:2011-07-08 00:34:09 【问题描述】:

我知道可以使用代理更改 IP 地址,但我感兴趣的是为什么不能通过从单台计算机发送更改的数据来更改它?

更新:

感谢您的快速回复,但不清楚如果使用无状态协议(如 HTTP)会发生什么。我对底层网络通信不熟悉,但理论上如果PC连接到服务器并立即收到回复,理论上应该可以伪造IP地址。

【问题讨论】:

您不能使用代理“更改”您的 IP 地址。您将简单地向端点显示代理的 IP 地址。你没有“改变”任何东西,只是躲在别人后面。 一个外行的类比:如果您发送一封带有虚假 FROM 电子邮件地址的电子邮件,收件人将回复该电子邮件地址,因此从这个意义上说没有意义,因为您不会收到回复。但是,您可以发送大量此类电子邮件,这可能会导致收件人的电子邮件服务器崩溃 - 从理论上讲。 【参考方案1】:

(*这是一个老问题,答案还可以,只需添加一个) 它被称为 IP 欺骗,防火墙正在努力检测和阻止它,网桥可能会被它弄糊涂(有一段时间)http://en.wikipedia.org/wiki/IP_address_spoofing

【讨论】:

【参考方案2】:

完全有可能使用伪造的发件人 IP 发送数据。但是,您将很难获得回复,因为回复将被发送到假 IP 并且永远不会到达您。此外,如果您使用路由器不希望从您那里到达的“来自”IP 发送数据,路由器通常会简单地丢弃它,并且有时会通知 ISP 您正在处理违反您的 TOS 的事情。

编辑:回应已编辑的帖子。

任何建立在面向连接的协议 (TCP) 之上的协议(例如 HTTP)都需要有效的 IP。假 IP 普遍存在的情况主要涉及拒绝服务攻击,使用 UDP、ICMP 或 TCP 握手中的初始 SYN 数据包。

【讨论】:

HTTP需要TCP连接,需要发送数据并得到响应。 黑客能否使用假IP发送请求,然后拦截来自服务器的响应? @kgrote,如果黑客可以访问返回数据包所采用的路径,那么可以。 所以白名单或黑名单 IP 地址并不真正安全,因为伪造的 IP 端可以发送一些潜在的破坏性数据? @StephenZeng 好问题,UDP 流量可能就是这种情况。但是就我而言,TCP 流量需要双向通信。如果有经验的人能证实这一点,那就太好了。【参考方案3】:

如果您尝试通过更改源 IP 地址来发送数据包,您可以将其发送给其他人,但如果您希望数据包返回您的电脑,则必须使用 NAT 之类的东西

如果你在网络上的路由器后面,你实质上就是在改变隐藏你自己的身份

示例: 你:192.168.1.4 内部路由器:192.168.1.1 外部IP:8.8.8.8 目标IP:8.8.4.4

发送数据包: 从:192.168.1.4(你)到 8.8.4.4(目的地) 路由器转换为: 从:8.8.8.8(外部 IP)到 8.8.4.4(目标) 并将你的ip保存在他的记忆中

比数据包到达他的目的地。

现在目的地发回一个数据包 从:8.8.4.4 (dest) 到 8.8.8.8 (external-ip) 路由器转换为(使用其内存) 从:8.8.4.4(dest)到192.168.1.4(you)

现在数据包返回到你的电脑

如你所见,目的地不知道你的 ip,但只知道路由器的 ip

这是一种你可以隐藏你的ip的方法

【讨论】:

【参考方案4】:

您可以使用任何您想要的 IP 地址进行发送,但回复将转到您使用的 IP 地址,因此您无法通过这种方式建立双向通信。

【讨论】:

以上是关于为啥不能伪造 IP 地址?的主要内容,如果未能解决你的问题,请参考以下文章

为啥直接输入ip地址不能访问

为啥ip开头不能用0、127、255?

如果我可以从我的私人 IP 地址访问本地文件,为啥我不能从我的公共 IP 地址访问本地文件?

在同一个网段中的IP地址,为啥相互不能PING通?

为啥WINDOWS在运行里输入IP地址不能访问网络位置的解决办法

为啥WINDOWS在运行里输入IP地址不能访问网络位置的解决办法