![如何阻止虚拟机上除主机 IP 之外的所有流量?](https://linux22.com/image/776593/%E5%A6%82%E4%BD%95%E9%98%BB%E6%AD%A2%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%B8%8A%E9%99%A4%E4%B8%BB%E6%9C%BA%20IP%20%E4%B9%8B%E5%A4%96%E7%9A%84%E6%89%80%E6%9C%89%E6%B5%81%E9%87%8F%EF%BC%9F.png)
我正在运行 Vagrant VM,并尝试使用网络隔离模式。由于禁用或更改默认 NAT 接口的任何内容都会破坏 Vagrant,因此我决定阻止 CentOS 7 VM 内除主机 IP 之外的所有流量。
我们将 1.1.1.1 设为主机的 IP
这是我在 Guest CentOS 7 VM 中尝试的命令:
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -s 1.1.1.1 -j ACCEPT && \
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -d 1.1.1.1 -j ACCEPT && \
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 1 -j DROP && \
sudo firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -j DROP && \
sudo firewall-cmd --reload
通过这个,我能够从客户机 ping 通主机,但无法从主机 ping 通客户机。
我做错了什么?基本上,我只需要对虚拟机和主机有 SSH、TCP 和 UDP 访问权限。
答案1
看起来@djdomi 的答案对我有用。
我在虚拟机中使用以下命令删除了网关
sudo ip route del 0/0
网络已断开。不过,我能够使用 SSHvagrant ssh
最初,我尝试使用 nmap 扫描虚拟机时遇到了问题,但我使用的是 private_network 的静态 IP,这不起作用。使用 Vagrant 的 NAT IP,我能够从主机 ping 到虚拟机以及 nmap 扫描。