在我的应用程序将数据包注入虚拟接口后source 100.64.0.77
,destination 192.168.1.95
该utun2
数据包被转发到接口en0
并按预期发送到其目的地。但是,当收到来自的响应数据包时,它会在source 192.168.1.95
接口上接收。destination 100.64.0.77
en0
我怎样才能让这个响应包被接收,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,则只需转发数据包即可。