Haz*_*hak 7 networking virtual-machine vagrant
我正在尝试在 Vagrant 的帮助下使用本地计算机模拟生产环境。该虚拟机不应该有任何互联网访问权限。
尝试取消 VirtualBox 设置上的“电缆连接”,但我无法通过 SSH 连接到虚拟机,这达不到目的。
流浪文件:
config.vm.define "second" do |second|
second.vm.box = "centos/7"
second.vm.box_check_update = false
second.vm.hostname = 'second'
second.vm.network :private_network, ip: "111.111.11.111"
second.vm.provider :virtualbox do |v|
v.name = "second"
end
second.vm.synced_folder "/devdir", "/vagrant_data"
end
Run Code Online (Sandbox Code Playgroud)
确认:
curl www.google.com ## This should return error/ cannot found?
Run Code Online (Sandbox Code Playgroud)
预先感谢各位!
我想到了 2 个解决方案:
启动盒子时显示 VirtualBox GUI 并使用 GUI 与你的盒子交互:
config.vm.provider "virtualbox" do |vb|
vb.gui = true
end
Run Code Online (Sandbox Code Playgroud)
使用软件防火墙阻止所有传入、传出和转发的流量,但端口 22 的传入 SSH 连接除外。例如,使用iptables:
config.vm.provision "shell", inline: <<-SHELL
sudo iptables -F
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -P OUTPUT DROP
SHELL
Run Code Online (Sandbox Code Playgroud)
INPUT这将设置、FORWARD和OUTPUT链接到并仅允许端口 22 上的传入 TCP 连接的默认策略。DROP它还允许已建立连接的出站流量流动(响应传入 SSH 流量)。