首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linux:禁止使用环回,并在一个组件的两个ETH卡之间通过有线发送数据

linux:禁止使用环回,并在一个组件的两个ETH卡之间通过有线发送数据
EN

Stack Overflow用户
提问于 2010-04-29 09:02:51
回答 3查看 18.7K关注 0票数 7

我有一个有2个eth卡的comp,用跳线连接(直接eth。从1到2的电缆)。

linux已安装,我想将数据从第一个网卡发送到第二个网卡。我想强制数据包通过电缆传输。我可以在卡片上设置任何ip地址。

使用ping命令,我可以得到卡片上的计数器常量。

是否可以使用tcp/ip套接字?

PS。我需要写一个程序。它将通过eth发送数据包,因此与堆栈溢出相关的问题。可以有一些依赖于操作系统的方法,它们也会帮助我

EN

回答 3

Stack Overflow用户

发布于 2010-12-20 21:48:30

查看本地路由表。在安装了iproute2工具的情况下,在本地做ip路由显示表。如您所见,所有发往本地IP的数据包都不会经过NIC,因为它们被标记为本地

为了强制分组通过以太网卡,移除适当的路由(即ip路由删除192.168.122.1dev eth0 table local)。要恢复此路由,只需关闭并打开接口:内核将执行插入这些路由的工作。

票数 7
EN

Stack Overflow用户

发布于 2011-09-23 22:25:41

我试过ip路由...上面的表本地方法。要么是它不工作,要么是我做错了什么。

诀窍是使用一组虚拟IP地址来强制内核通过线路对其进行路由,并使用NAT将其更改回真实的IP地址。

假设eth0和eth1是两个以太网卡;IP0和IP1是其IP地址;MAC0和MAC1分别是其MAC地址。我们将使用两个虚拟IP地址: IP00和IP11。

代码语言:javascript
复制
arp -s IP00 MAC0
arp -s IP11 MAC1
ip route add IP00 dev eth1
ip route add IP11 dev eth0
iptables -t nat -A POSTROUTING -d IP11 -j SNAT --to-source IP00
iptables -t nat -A POSTROUTING -d IP00 -j SNAT --to-source IP11
iptables -t nat -A PREROUTING -d IP00 -j DNAT --to-destination IP0
iptables -t nat -A PREROUTING -d IP11 -j DNAT --to-destination IP1

使用虚拟IP地址IP00和IP11,而不是真实IP地址。

票数 4
EN

Stack Overflow用户

发布于 2010-04-29 10:52:19

您应该能够使用数据包套接字(协议族PF_PACKET)编写这样的程序,但是您必须自己处理IP和更高层的报头。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2734144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档