繁体   English   中英

virtual box + vagrant centos8 box(无头)从互联网访问

[英]virtual box + vagrant centos8 box (headless) to access from internet

我使用centos8成功设置了vagrant-virtualbox。 yum pakage manager、openssl-server、openssl-client 全部更新。

sshd 服务正在运行。

该框启动时没有任何问题,我可以使用ssh vagrant@ip-address提示输入密码从我的主机连接并能够登录。

从部署阶段的 gitlag-ci.yml 文件中,我尝试使用ssh username@ipaddress/hostname访问 centos8 框,但它在 22 端口上超时。

我厌倦了ssh vagrant@ip-address-of-guestssh -p 2222 username@ip-address-of-host没有任何作用。

但是我可以使用我的命令 Windows 10 提示符进行连接,也可以使用 22 端口的主机上的腻子进行连接,没有任何问题。

在虚拟框中,设置 -> 网络 -> 端口转发(删除主机 ip 地址并将其留空)

配置

config.vm.network "forwarded_port", guest: 443, host: 8085
config.vm.network "public_network"

当您手动执行第一次安装时,您必须:

groupadd vagrant
useradd vagrant -g vagrant -G wheel
echo "vagrant" | passwd --stdin vagrant

# Install vagrant keys (vagrant will change this key at first boot)
mkdir -p /home/vagrant/.ssh

cat <<EOM >/home/vagrant/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8Y\
Vr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdO\
KLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7Pt\
ixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmC\
P3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcW\
yLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key
EOM

chown -R vagrant:vagrant /home/vagrant/.ssh
chmod -R u=rwX,go= /home/vagrant/.ssh

您还必须安装 virtualbox 来宾添加,以允许 vagrant 创建共享文件夹

yum install wget kernel-headers kernel-devel perl gcc bzip2 dmks make -y
wget http://download.virtualbox.org/virtualbox/6.1.4/VBoxGuestAdditions_6.1.4.iso
mkdir /media/VBoxGuestAdditions
mount -o loop VBoxGuestAdditions_6.1.4.iso /media/VBoxGuestAdditions
sh /media/VBoxGuestAdditions/VBoxLinuxAdditions.run
reboot

然后你可以打包你的安装以制作一个盒子:

mkdir boxes
vagrant package --base NAME_OF_YOUR_VM_ON_VIRTUALBOX --output ./boxes/CentOS.box

要使网络和 ssh 在 VirtualBox 适配器上工作,必须按以下顺序:

1) 纳特
2) 仅限主机

3) 桥接

因此,您必须将第一个设置为 nat(如果您使用 vagrant,它将自动执行此操作)然后

config.vm.network :private_network, ip: "192.168.xx.xxx", netmask: "255.255.255.0", :mac =>"08002782xxxx", name:"vboxnet1", :adapter => 2
config.vm.network :public_network, bridge: "wlp59s0", ip: "192.168.xx.xxx", :mac => "08002726xxxx", :adapter => 3

然后您必须确保您的网络接口已启动,因此只需尝试 ping google。

如果网络接口未启动,并且 ping 不起作用,请在 /etc/sysconfig/network-scripts/ifcfg- 中设置这些参数:

IPV6INIT="yes"
DHCP_HOSTNAME="hostname-here"
IPV6_AUTOCONF="yes"
BOOTPROTO="dhcp"
DEVICE="<device_name_here>"
ONBOOT="yes"
UUID="" #can be omitted

然后重启

请记住,如果您有多个 VM,它们必须具有不同的 mac 地址才能正常工作

我还分享了我的 vagrantfile 配置

Vagrant.configure("2") do |config|

  config.vm.define "nodo1" do |nodo1|
    nodo1.vm.box = "./boxes/CentOS.box"
    nodo1.vm.boot_timeout= 3000000
    nodo1.vm.hostname="nodo1server"
    nodo1.vm.network :private_network, ip: "192.168.xx.xxx", netmask: "255.255.255.0", :mac =>"08002782xxxx", name:"vboxnet1", :adapter => 2
    nodo1.vm.network :public_network, bridge: "wlp59s0", ip: "192.168.xx.xxx", :mac => "08002726xxxx", :adapter => 3

    nodo1.vm.provider "virtualbox" do |vb|

      vb.gui = false
      vb.memory = "2048"
      vb.name ="nodo1"

      vb.customize ["modifyvm", :id, "--ostype", "RedHat_64"]
      vb.customize ["modifyvm", :id, "--boot1", "dvd"]
      vb.customize ["modifyvm", :id, "--boot2", "disk"]
      vb.customize ["modifyvm", :id, "--boot3", "none"]
      vb.customize ["modifyvm", :id, "--boot4", "none"]
      vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
      vb.customize ["modifyvm", :id, "--nic1", "nat"]
      vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
      vb.customize ["modifyvm", :id, "--nictype3", "virtio"]
      vb.customize ["modifyvm", :id, "--nictype4", "virtio"]
      vb.customize ["modifyvm", :id, "--acpi", "on"]
      vb.customize ["modifyvm", :id, "--ioapic", "off"]
      vb.customize ["modifyvm", :id, "--chipset", "piix3"]
      vb.customize ["modifyvm", :id, "--vram", 256]
      vb.customize ["modifyvm", :id, "--rtcuseutc","on"]
      vb.customize ["modifyvm", :id, "--hpet","on"]
      vb.customize ["modifyvm", :id, "--bioslogofadein","off"]
      vb.customize ["modifyvm", :id, "--bioslogofadeout","off"]
      vb.customize ["modifyvm", :id, "--bioslogodisplaytime", 0]
      vb.customize ["modifyvm", :id, "--clipboard", "bidirectional"]
      vb.customize ["modifyvm", :id, "--draganddrop", "bidirectional"]
      vb.customize ["modifyvm", :id, "--vrde","on"]
      vb.customize ["modifyvm", :id, "--vrdemulticon", "on"]
      vb.customize ["modifyvm", :id, "--vrdeport", 3390]

      #vb.customize [
      #  "storageattach", :id,
      #  "--storagectl", "IDE",
      #  "--device", 0,
      #  "--port", 0,
      #  "--type", "dvddrive",
      #  "--medium", "${HOME}iso/CentOS-7-ks.iso"
      #]
#
      #vb.customize [
      #  "storageattach", :id,
      #  "--storagectl", "IDE",
      #  "--device", 0,
      #  "--port", 1,
      ##  "--type", "dvddrive",
      #  "--medium", "${HOME}/iso/VBoxGuestAdditions_6.1.4.iso"
      #]
    end

  end
end

希望能帮到你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM