请原谅我的懒惰。我在 Linux 上安装了 Virtualbox,还有一些 Windows VM。不幸的是,Virtualbox 开箱即用,将端口 3389 暴露给互联网。考虑到以下情况,我有点惊讶和恼火 - 这应该保持私密(我使用 ssh 和转发端口来获得访问权限,仅供参考)。
$ grep private_network Vagrantfile
config.vm.network "private_network", ip: "192.168.33.10"
在 vagrant up 之后我们当然可以看到
==> default: Forwarding ports...
default: 3389 (guest) => 3389 (host) (adapter 1)
没错,从我放在完全不同地方的笔记本电脑上:
$ nmap 123.11.22.33 -pT:3389|grep open
3389/tcp open ms-wbt-server
是的,我可以用防火墙阻止,但我真的想阻止 Virtualbox 做这种疯狂的事情。感谢您的建议。
答案1
Windows 主机向本地网络公开了许多端口/服务,我假设 Linux 也是如此。在这两种情况下,它们通常不会直接暴露在互联网上。您的问题不是 Virtualbox,而是 Virtualbox 直接暴露在互联网上。您说您不想使用防火墙,但事实上这是正确且合适的解决方案。
答案2
好的,这是一个答案不一定这答案……该盒子正在运行 Debian 11(靶心)。如果有人有更优雅的方法,我洗耳恭听。下面令人讨厌的是它需要在主机上进行网络更改。如果 Vagrant 可以完成所有工作,我会很高兴。
我已将以下内容添加到 /etc/network/interfaces
auto eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0
pre-up ip link add eth0 type dummy
并重新启动网络或重新启动,所以现在我们有了一个新的界面。
在我的 Vagrantfile 中,我有以下内容,host_ip 和 host 是重要的部分。在 Vagrantfiles 之间,我们现在需要更改的是 host: portnumber。
Vagrant.configure("2") do |config|
config.vm.box = "~/box/windows10.box"
config.vm.network :forwarded_port, id: 'rdp', guest: 3389, host: 33810, host_ip: "10.0.0.1"
config.vm.network "private_network", ip: "192.168.33.110"
config.vm.provider "virtualbox" do |vb|
vb.gui = false
end
end
如果您了解 ssh,那么您现在可以通过 ssh 进入 tin,并且在 ~/.ssh/config 中使用 LocalForward 33810 10.0.0.1:33810,您可以将 RDP 客户端指向 127.0.0.1:33810。