信息:我使用的是 Windows 7 Pro(64 位)和 VMware Workstation 版本 10.0.1 。我第一次使用 CentOS(64bit) 6.5 最小版本。我从工作场所网络运行此程序,该网络可能使用代理服务器。
背景:我一直在关注这个教程(http://1stopit.blogspot.com/2013/11/creating-centos-64-minimal-vm-with.html)
按照教程中的建议,我将虚拟机配置为使用桥接网络,而不是 NAT(默认设置)。
起初,当尝试运行时,yum update
我收到了 PYCURL ERROR 6,它看起来像这样:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
could not retreive mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os error was
14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
Error: Cannot find a valid baseurl for repo: base
然后我尝试运行ping mirrorlist.centos.org
,结果是ping:unknown host mirrorlist.centos.org
然后我尝试了:
ifdown eth0
then
ifup eth0
,结果是:Determining IP information for eth0... failed.
以下是我的文件的当前内容/etc/sysconfig/network-scripts/ifcfg-eth0
:
DEVICE=eth0
HWADDR=xx:xx:xx:xx:xx:xx
TYPE=Ethernet
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp
(我不知道是否应该显示我的 HWADDR 和 UUID,所以我匿名)
由于我试图从我的工作场所(可能使用代理服务器)运行它,我想我会尝试这里的建议https://unix.stackexchange.com/a/93428/60724,然后编辑/etc/yum.conf
,我添加了proxy=http://xxx.xxx.xx.xx:8080
,这是 yum.conf 的完整文件:
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php? project_id=16&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
proxy=http://xxx.xxx.xx.xx:8080
#comments
#metadata_expire=90
然后,当我尝试运行时yum update
,我开始收到 PYCURL 错误 5,而不是 PYCURL 错误 6,请参阅以下内容:
running yum update results in:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
4&repo=os error was
14: PYCURL ERROR 5 - "Couldn't resolve proxy 'xxx.xxx.xx.xx'"
Error: Cannot find a valid baseurl for repo:base
答案1
这是 Centos/RHEL 6.x 最小安装的一个错误。安装期间不会激活网络,因为出于某种原因,他们希望所有安装都使用网络管理器。将文件 /etc/sysconfig/network-scripts/ifcfg-eth0 中的行 ONBOOT="no" 更改为 ONBOOT="yes" (或任何您的 eth 连接号)。
顺便说一句,不推荐使用 ifconfig,而是使用“ip a”和/或“ip r”。
答案2
首先你需要弄清楚你是否通过代理
如果它正在工作,我敢打赌它是一个经过身份验证的代理。将此脚本保存为 connect.sh,chmod +x connect.sh 以使其可运行。然后运行
#!/bin/bash
echo -n "User:";
read user
echo -n "Password:";
read -s password
proxy=http://$user:[email protected]:8080
if http_proxy="$proxy" curl -silent http://www.google.com | grep authentication_failed;
then
echo NO CONNECT
unset http_proxy
else
echo -n OK
http_proxy="$proxy" $*
fi
然后运行 ./connect.sh 'yum update'
如果它不起作用,则可能是镜像,这是我的 EPEL /etc/yum.repo.d/epel.repo 使用工作镜像完整路径的示例
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
baseurl=http://mirror.umd.edu/fedora/epel/6/x86_64
答案3
运行 ifconfig -a 并告诉我您已经拥有一个真实的、可用的 IP。我敢打赌,从 NAT 后面移出还会丢失一台 DHCP(通过 dnsmasq)服务器,您可以从中获取可用的 IP,而您却得不到。
最简单的事情是再次回到 NAT 后面并恢复正常(服务网络重新启动或只是重新启动)。
否则,如果您从桥接网络上的某些 DHCP 获取可用的 IP,我们应该检查您的 DNS 和路由。我确信这很简单,因为您无法访问 DNS(或其他任何东西),这就是为什么您无法到达任何地方。因此,如果您的虚拟机网卡上有真实可用的 IP,请执行 cat /etc/resolv.conf 和route -n。
答案4
在设置 CentOS 6.5 时遇到了同样的问题。我的系统使用静态 IP 地址,然后繁荣!!!不工作。唯一的区别是我安装了 XFCE gui(规格不是很好),然后是 X11 字体包...
不知何故,当我检查 ifconfig 时,静态信息在那里,但 /etc/resolv.conf 中的名称服务器信息消失了......?我无法想象 GUI 的安装将如何做到这一点,但这是唯一的区别。
我怎么找到这个...?我可以 ping 通 8.8.8.8 等,但不能 ping 通 google.com 等域名。所以,我尝试了卷曲http://www.google.comresolv.conf 中的默认条目显示不存在名称服务器
一旦我把它们放进去,一切都很好。