数据包没有到达正确的接口?

数据包没有到达正确的接口?

在我的应用程序将数据包注入虚拟接口后source 100.64.0.77destination 192.168.1.95utun2数据包被转发到接口en0并按预期发送到其目的地。但是,当收到来自的响应数据包时,它会在source 192.168.1.95接口上接收。destination 100.64.0.77en0

我怎样才能让这个响应包被接收,utun2以便我的应用程序能够读取这个包?

utun2 的 ifconfig: inet 100.64.0.77 --> 100.64.0.77 netmask 0xffffff00

Routing tables

Internet:
Destination        Gateway            Flags        Netif Expire
default            192.168.1.254      UGSc           en0       
default            link#10            UCSI         utun2       
100.64.0.77        100.64.0.77        UH           utun2       
127                127.0.0.1          UCS            lo0       
127.0.0.1          127.0.0.1          UH             lo0       
169.254            link#7             UCS            en0      !
192.168.1          link#7             UCS            en0      !
192.168.1          link#10            UCSI         utun2       
192.168.1.92/32    link#7             UCS            en0      !
192.168.1.99       8c:a9:82:2e:d6:2e  UHLWI          en0    986
192.168.1.254/32   link#7             UCS            en0      !
192.168.1.254      70:f1:96:86:e6:a0  UHLWIir        en0   1196
224.0.0/4          link#7             UmCS           en0      !
224.0.0/4          link#10            UmCSI        utun2       
224.0.0.251        1:0:5e:0:0:fb      UHmLWI         en0       
255.255.255.255/32 link#7             UCS            en0      !
255.255.255.255/32 link#10            UCSI         utun2   

答案1

我觉得没问题。如果您使用从 TUN 到 en0 的源 NAT,则还需要使用 NAT 表作为反向路径。如果没有 NAT,则只需转发数据包即可。

相关内容