我正在使用Ubuntu 8.04(x86_64)计算机连接到我雇主的Cisco VPN。 (客户端没有开箱即用,但我发现patches to update the client to compile on kernels released in the last two years。)这一切都很好,直到我的DHCP客户端决定更新其租约并更新/etc/resolv.conf,取代特定于VPN的使用我的常规网络服务器命名服务器。
在我的VPN处于活动状态时,是否有一种防止我的DHCP客户端更新/etc/resolv.conf的好方法?
答案 0 :(得分:5)
如果您在没有NetworkManager处理连接的情况下运行,请使用resolvconf包作为调整/etc/resolv.conf的程序的中介: sudo apt-get install resolvconf
如果您正在使用NetworkManager,它将为您处理此问题,因此请删除resolvconf包: sudo apt-get remove resolvconf
上周我在Ubuntu上设置vpnc时发现了这个问题。在ubuntuforums.org上搜索 vpn resolv.conf
有250个结果,其中很多是非常相关的!
答案 1 :(得分:2)
如果您正在使用NetworkManager的Ubuntu默认设置,请尝试删除CiscoVPN客户端并使用NetworkManager vpnc插件连接到Cisco VPN。这应该避免所有问题,因为NetworkManager然后知道你的VPN连接。
答案 2 :(得分:1)
我会建议遵循@Sean的建议,但如果由于某种原因失败,应该可以将dhclient配置为不在/etc/dhcp3/dhclient.conf中请求DNS服务器
答案 3 :(得分:1)
chattr + i /etc/resolv.conf应该可以正常工作。 (-i撤消)
但更好的是配置你的dhclient.conf: https://calomel.org/dhclient.html 查看超级域名服务器和域名。
另请查看“发送主机名”; 如果它在您的工作场所工作,您的PC将拥有一个很酷的主机名,而不是DHCP服务器分配的一些奇怪的名称。
答案 4 :(得分:0)
答案 5 :(得分:0)
可以告诉DHCPclient守护程序不要使用命令行开关更新resolv.conf。 (-r我认为,取决于客户)
这不那么动态,因为你必须在连接时重启/重新配置DHCP,但不要太难。同样,你可以停止服务,但在此期间你可能会失去你的IP,所以我不会真的推荐它。
或者,您可以在cron作业中运行dhcpclient,添加适当的进程检查。
答案 6 :(得分:0)
在DHCP租约年龄较低的网络上,此问题更为明显。在Ubuntu的dhcp3包启动板中存在一个错误:
https://bugs.launchpad.net/ubuntu/+source/dhcp3/+bug/90681
在说明中包含此补丁:
--- /sbin/dhclient-script.orig 2007-03-08 19:19:56.000000000 +0000
+++ /sbin/dhclient-script 2007-03-08 19:19:46.000000000 +0000
@@ -13,6 +13,10 @@
# The alias handling in here probably still sucks. -mdz
make_resolv_conf() {
+ # don't overwrite resolv.conf at RENEW time, since a VPN/PPTP tunnel may
+ # have updated it with remote DNS servers
+ [ "$reason" = "RENEW" ] && return
+
if [ -n "$new_domain_name" -o -n "$new_domain_name_servers" ]; then
# Find out whether we are going to mount / rw
exec 9>&0 </etc/fstab
对/sbin/dhcp-script
的此更改会阻止DHCP客户端在续订租约时覆盖/etc/resolv.conf
。