我最近回到大学上课,从存储中取出了运行 64 位 Arch Linux 的台式电脑。在使用 更新软件包后sudo pacman -Syu
,我重新启动并开始遇到一些奇怪的问题。虽然我仍然可以通过 chromium 和 uzbl 访问网页,但其他一些程序(如 pacman、wget 和 curl)现在无法运行。我也无法 ping 学校本地网络之外的任何网站(尽管我所有的朋友都报告他们的 Windows 电脑有同样的问题,所以这可能是学校造成的)。我主要通过 wget 进行测试,所以我现在识别出几个错误。我经常遇到的错误如下:
:: Synchronizing package databases...
--2011-09-08 17:28:59-- ftp://mirrors.kernel.org/archlinux/core/os/x86_64/core.db
=> `/var/lib/pacman/sync/core.db.part'
Resolving mirrors.kernel.org... failed: Name or service not known.
wget: unable to resolve host address `mirrors.kernel.org'
经过几个小时的谷歌搜索,许多类似的问题显然可以通过强制使用 IPv4 来解决。然而,修改 pacman.conf 以将 -4 附加到 wget 命令只会将错误更改为:
--2011-09-08 17:36:56-- ftp://mirrors.kernel.org/archlinux/core/os/x86_64/core.db
=> `/var/lib/pacman/sync/core.db.part'
Resolving mirrors.kernel.org... failed: Temporary failure in name resolution.
wget: unable to resolve host address `mirrors.kernel.org'
我尝试了无数的更改,但到目前为止都没有奏效。我将在下面发布一些配置文件。最后要考虑的一点是,在我的学校(伦斯勒理工学院),他们重新设计了内部网络,使其完全兼容 IPv6。我也不知道他们会对我们设置什么其他防火墙或限制。但是,我确实有一台笔记本电脑在同一个网络上运行,配置几乎相同。它没有任何问题,所以这台电脑一定出了问题。
在 /etc/hosts 中:
#
# /etc/hosts: static lookup table for host names
#
#<ip-address> <hostname.domain.org> <hostname>
127.0.0.1 localhost.localdomain localhost austonst-archlinux
::1 localhost.localdomain localhost
# End of file
/etc/resolv.conf:
# Generated by dhcpcd from eth0
# /etc/resolv.conf.head can replace this line
domain dynamic.rpi.edu
nameserver 128.113.28.67
nameserver 128.113.26.77
# /etc/resolv.conf.tail can replace this line
/etc/rc.conf (相关部分):
interface=eth0
address=
netmask=
broadcast=
gateway=
/etc/nsswitch.conf (相关部分):
hosts: files dns
networks: files
路线-n:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 128.113.192.254 0.0.0.0 UG 202 0 0 eth0
128.113.192.0 0.0.0.0 255.255.240.0 U 202 0 0 eth0