Linux 虚拟机可以';t ping主机';通过NAT将两个交换机和一个路由器分开

Linux 虚拟机可以';t ping主机';通过NAT将两个交换机和一个路由器分开,linux,networking,nat,Linux,Networking,Nat,我有一个Linux虚拟机(Kali),它连接到一个只支持主机的交换机 eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.40 netmask 255.255.255.0 broadcast 192.168.0.255 该交换机连接到一个Ubuntu服务器虚拟机,该虚拟机在192.168.0.0/24网络上启用了伪装NAT,并通过桥接交换机连接到运行Ubuntu 16.04的

我有一个Linux虚拟机(Kali),它连接到一个只支持主机的交换机

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.0.40  netmask 255.255.255.0  broadcast 192.168.0.255
该交换机连接到一个Ubuntu服务器虚拟机,该虚拟机在192.168.0.0/24网络上启用了伪装NAT,并通过桥接交换机连接到运行Ubuntu 16.04的实际主机

NAT规则位于后路由链上,如下所示

auto eth0
iface eth0 inet static
    address 192.168.0.40
    netmask 255.255.255
    gateway 192.168.0.254
    dns-nameservers 8.8.8.8
Chain POSTROUTING (policy ACCEPT 20 packets, 1440 bytes)
pkts bytes target     prot opt in     out     source               destination         
0     0 MASQUERADE  all  --  *      ens33   192.168.0.0/24       0.0.0.0/0 
 # The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto ens33
iface ens33 inet static
    address 172.16.23.100
    netmask 255.255.0.0
    gateway 172.16.0.254
    dns-nameservers 8.8.8.8
#iface ens33 inet dhcp


#Gateway for LAN1 - 192.168.0.0/24
auto ens38
iface ens38 inet static
    address 192.168.0.254
    netmask 255.255.255.0
default via 172.16.0.254 dev enp3s0 
169.254.0.0/16 dev enp3s0  scope link  metric 1000 
172.16.0.0/16 dev enp3s0  proto kernel  scope link  src 172.16.0.6 
服务器机器上的接口文件如下所示

auto eth0
iface eth0 inet static
    address 192.168.0.40
    netmask 255.255.255
    gateway 192.168.0.254
    dns-nameservers 8.8.8.8
Chain POSTROUTING (policy ACCEPT 20 packets, 1440 bytes)
pkts bytes target     prot opt in     out     source               destination         
0     0 MASQUERADE  all  --  *      ens33   192.168.0.0/24       0.0.0.0/0 
 # The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto ens33
iface ens33 inet static
    address 172.16.23.100
    netmask 255.255.0.0
    gateway 172.16.0.254
    dns-nameservers 8.8.8.8
#iface ens33 inet dhcp


#Gateway for LAN1 - 192.168.0.0/24
auto ens38
iface ens38 inet static
    address 192.168.0.254
    netmask 255.255.255.0
default via 172.16.0.254 dev enp3s0 
169.254.0.0/16 dev enp3s0  scope link  metric 1000 
172.16.0.0/16 dev enp3s0  proto kernel  scope link  src 172.16.0.6 
主机上的路由表如下所示

auto eth0
iface eth0 inet static
    address 192.168.0.40
    netmask 255.255.255
    gateway 192.168.0.254
    dns-nameservers 8.8.8.8
Chain POSTROUTING (policy ACCEPT 20 packets, 1440 bytes)
pkts bytes target     prot opt in     out     source               destination         
0     0 MASQUERADE  all  --  *      ens33   192.168.0.0/24       0.0.0.0/0 
 # The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto ens33
iface ens33 inet static
    address 172.16.23.100
    netmask 255.255.0.0
    gateway 172.16.0.254
    dns-nameservers 8.8.8.8
#iface ens33 inet dhcp


#Gateway for LAN1 - 192.168.0.0/24
auto ens38
iface ens38 inet static
    address 192.168.0.254
    netmask 255.255.255.0
default via 172.16.0.254 dev enp3s0 
169.254.0.0/16 dev enp3s0  scope link  metric 1000 
172.16.0.0/16 dev enp3s0  proto kernel  scope link  src 172.16.0.6 
现在我尝试从Kali机器ping主机(从192.168.0.40到172.16.0.6),但是ping没有通过,我在主机上的唯一接口上使用192.168.0.40作为主机进行了tcpdump,但它没有接收任何流量。出于某种原因,NAT规则没有被使用

我可以用Kali ping默认网关和服务器/路由器VM,但是主机的ping没有通过。我做错了什么


我认为应该发生的是,数据包通过Kali的默认网关进入服务器,一旦它进入服务器机器,它就会被转换为ens33的地址,然后从那里它会进入主机,主机会将它发送回ens33,因为这应该是当前的源ip,但很明显,这并没有发生

我不善于注意事物,我把NAT规则改为eth33而不是ens33,修复了它,现在它就可以工作了

你的问题应该转移到超级用户(或者服务器故障,这取决于)上,因为它不是一个与编程/编程语言相关的问题,我该怎么做?只需删除它并将其发布到那里?既然8分钟前你说它现在可以工作了,为什么要将其发布到那里?@RyanB。我的意思是现在没有理由了,只是general@RonMaupin…不像你自己,编程和网络配置没有区别