【问题标题】:virtual box + vagrant centos8 box (headless) to access from internet虚拟盒子 + vagrant centos8 盒子(无头)从互联网访问
【发布时间】:2020-03-08 18:40:24
【问题描述】:

我用 centos8 成功设置了 vagrant-virtualbox。 yum 包管理器、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"

【问题讨论】:

    标签: networking ssh vagrant virtualbox


    【解决方案1】:

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

    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
    

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 2017-11-30
      • 2015-10-11
      • 2014-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-28
      相关资源
      最近更新 更多