我刚刚将Vagrant VM从一台主机复制到另一台主机。两台机器都运行Windows 7。

尝试访问Github时,我将VM复制到的机器上出现以下错误。

该仓库肯定存在,我在原始机器上具有完全相同的Git配置。为什么会这样?对于此错误,最重要的答案对我没有影响。

[vagrant@localhost /var/www/wrestlemaniamainevent]# git remote -v 
origin  git@github.com:crmpicco/wrestlemaniamainevent.git (fetch) 
origin  git@github.com:crmpicco/wrestlemaniamainevent.git (push) 
 
[vagrant@localhost /var/www/wrestlemaniamainevent]# git fetch origin 
ssh: connect to host github.com port 22: Network is unreachable 
fatal: Could not read from remote repository. 
 
Please make sure you have the correct access rights 
and the repository exists. 

我可以ping Github,当我将URL更改为https时,得到以下信息:
[vagrant@localhost /var/www/wrestlemaniamainevent]# ping github.com 
PING github.com (192.30.252.129) 56(84) bytes of data. 
64 bytes from 192.30.252.129: icmp_seq=23 ttl=51 time=112 ms 
64 bytes from 192.30.252.129: icmp_seq=24 ttl=51 time=110 ms 
64 bytes from 192.30.252.129: icmp_seq=25 ttl=51 time=112 ms 
64 bytes from 192.30.252.129: icmp_seq=26 ttl=51 time=111 ms 
64 bytes from 192.30.252.129: icmp_seq=27 ttl=51 time=112 ms 
^C 
--- github.com ping statistics --- 
27 packets transmitted, 5 received, 81% packet loss, time 26010ms 
rtt min/avg/max/mdev = 110.904/111.957/112.869/0.756 ms 
[vagrant@localhost /var/www/wrestlemaniamainevent]# git fetch origin 
fatal: unable to access 'https://github.com/crmpicco/wrestlemaniamainevent.git/': Failed connect to github.com:443; Network is unreachable 

我的流浪文件
unless Vagrant.has_plugin?("vagrant-host-shell") 
  raise 'vagrant-host-shell plugin is not installed!' 
end 
 
# -*- mode: ruby -*- 
# vi: set ft=ruby : 
 
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! 
VAGRANTFILE_API_VERSION = "2" 
 
PRIVATE_NETWORK_IP = "10.0.0.200" 
 
SERVER_NAME = "crmpicco.dev" 
 
nfs_setting = RUBY_PLATFORM =~ /darwin/ || RUBY_PLATFORM =~ /linux/ 
 
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
    # Disable automatic box update checking. If you disable this, then 
    # boxes will only be checked for updates when the user runs 
    # `vagrant box outdated`. This is not recommended. 
    # config.vm.box_check_update = false 
 
    config.ssh.forward_agent = true 
 
    config.vm.define "local", primary: true do |local| 
 
        nfs_setting = RUBY_PLATFORM =~ /darwin/ || RUBY_PLATFORM =~ /linux/ 
 
        local.vm.network :forwarded_port, guest:4444, host:4444 
        local.vm.network :private_network, ip: PRIVATE_NETWORK_IP 
 
        local.vm.box = "crmpicco-centos7" 
        local.vm.box_url = "http://crmpicco.com/boxes/crmpicco.box" 
 
# If you want to keep your code local and mount onto your VM, uncomment this. 
# 
#        local.vm.synced_folder "./../www", "/var/www", id: "vagrant-root" , :nfs => nfs_setting, 
#            mount_options: ["sync,rsize=32768,wsize=32768,rw,proto=tcp"] 
 
        local.vm.provider :virtualbox do |v| 
            v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] 
            v.customize ["modifyvm", :id, "--memory", 3072] 
            v.customize ["modifyvm", :id, "--cpus", 2] 
            v.customize ["modifyvm", :id, "--name", SERVER_NAME] 
        end 
    end 
 
 
# If you want to keep your code local and mount onto your VM, comment this whole section 
     if nfs_setting 
            config.vm.provision :host_shell do |host_shell| 
              host_shell.inline = 'mkdir -p /Users/Shared/crmpicco' 
            end 
 
            config.vm.provision :host_shell, run: "always" do |host_shell| 
              host_shell.inline = "echo 'Waiting for NFS to be available, it can take a while'" 
            end 
 
            config.vm.provision :host_shell, run: "always" do |host_shell| 
              host_shell.inline = "sleep 30" 
            end 
 
            config.vm.provision :host_shell, run: "always" do |host_shell| 
              host_shell.inline = "mount -t nfs -o 'sync,rsize=32768,wsize=32768,rw' #{PRIVATE_NETWORK_IP}:/var/www/current /Users/Shared/crmpicco" 
            end 
     end 
 
end 

请您参考如下方法:

首先,您是否从新主机验证了它不是网络问题,是否可以从新主机上的vm ping github?

第二个,如果ssh有问题(并且您不是像我这样的网络专家,它可能是新主机上的防火墙问题...),则可以更改为使用https版本

run `git config --local -e` 

你应该有一节
[remote "origin"] 
    url = git@github.com:crmpicco/wrestlemaniamainevent.git 

您可以将其更改为
[remote "origin"] 
    url = https://github.com/crmpicco/wrestlemaniamainevent.git 

第三个,确保两台主机上的vagrant版本相同(特别是如果一台主机运行vagrant 1.6而另一台主机运行vagrant 1.7),则如果虚拟盒不同,则虚拟盒应该可以,但如果您使用虚拟盒的版本不同,则请更新GuestAdditions。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!