如果从其他设备接收到数据包,Linux 会丢弃该数据包

如果从其他设备接收到数据包,Linux 会丢弃该数据包

问题描述:

当我在 VPN 客户端和我的家庭服务器之间建立 VPN 连接时,如果连接穿过我的防火墙 (pfSense) 或直接建立,则连接正常。

但是,如果 VPN 客户端直接建立到家庭服务器的连接,并且响应穿过我的防火墙 pfSense,则 VPN 服务器不会将数据包从 LAN 接口 (eth0) 路由到 VPN 接口 (tun0)。

你知道为什么吗 ?


第一个例子好:具有直接连接:

转到:VPN 客户端 => VPN 服务器 => 家庭服务器

返回:主服务器 => VPN 服务器 => VPN 客户端


第二个例子好:与两个连接 accros 防火墙 (pfSense):

转到:VPN 客户端 => VPN 服务器 => 防火墙 pfSense => 家庭服务器

返回:主服务器 => 防火墙 pfSense => VPN 服务器 => VPN 客户端


第三个例子不行:开始时直接连接,后面使用 accros 防火墙 (pfSense):

转到:VPN 客户端 => VPN 服务器 => 家庭服务器

返回:主服务器 => 防火墙 pfSense => VPN 服务器 => VPN 客户端


IP列表:

家庭服务器:192.168.100.50

防火墙 pfSense:192.168.100.20

VPN 服务器:192.168.100.40(接口:eth0)和 10.8.0.1(接口:tun0)

VPN客户端:10.8.0.6


笔记:在第一个和第二个示例中,当我执行 tcpdump 时,我在 eth0 和 tun0 上看到返回数据包。但在第三个中,我在 tun0 上看不到返回数据包,而只在 eth0 上看到返回数据包。

假设:这就像数据包从不同的设备返回时被丢弃一样。

谢谢。

答案1

解决 !

只需添加“浮动规则”即可。在此规则中,“状态类型”中选择“无”。

“none”是一个系统:“不使用状态机制来跟踪。这仅在您在某些情况下进行高级排队时才有用。请检查文档。”

事实上,pfSense 丢弃了数据包,因为它之前没有收到“SYN”标志。当网络遵循非对称路由时,这是一个基本问题和常见问题。

相关内容