(デフォルトのvpncスクリプトを使用して)openconnectを実行すると、/etc/resolv.conf
が変更され、実際には変更されません。完全なインターネット接続ではなく、いくつかの特定のホストにVPNを使用しています。
次のスクリプトを作成します/ etc/vpnc/no_resolverupdate.sh
#!/bin/sh
#
#
export INTERNAL_IP4_DNS=
. /usr/share/vpnc-scripts/vpnc-script
実行可能にします。
chmod +x /etc/vpnc/no_resolverupdate.sh
次に、接続構成ファイルに行を追加します(ここでは/ etc/vpnc/customer.conf)
echo 'Script /etc/vpnc/no_resolverupdate.sh' >> /etc/vpnc/customer.conf
Vpnc-scriptは this のように見えますか?もしそうなら、以下のコードはあなたの/etc/resolv.conf
を変更する理由です:
if [ -x /sbin/resolvconf ]; then # Optional tool on Debian, Ubuntu, Gentoo
MODIFYRESOLVCONF=modify_resolvconf_manager
RESTORERESOLVCONF=restore_resolvconf_manager
Elif [ -x /sbin/modify_resolvconf ]; then # Mandatory tool on Suse earlier than 11.1
MODIFYRESOLVCONF=modify_resolvconf_suse
RESTORERESOLVCONF=restore_resolvconf_suse
else # Generic for any OS
MODIFYRESOLVCONF=modify_resolvconf_generic
RESTORERESOLVCONF=restore_resolvconf_generic
fi
modify_resolvconf_manager() {
NEW_RESOLVCONF=""
for i in $INTERNAL_IP4_DNS; do
NEW_RESOLVCONF="$NEW_RESOLVCONF
nameserver $i"
done
if [ -n "$Cisco_DEF_DOMAIN" ]; then
NEW_RESOLVCONF="$NEW_RESOLVCONF
domain $Cisco_DEF_DOMAIN"
fi
echo "$NEW_RESOLVCONF" | /sbin/resolvconf -a $TUNDEV
}
「ダーティ」な方法は、/etc/resolv.conf
ファイルを不変にすることです。
# chattr +i /etc/resolv.conf
適切な方法は、vpnc-scriptを編集して、/etc/resolv.conf
が変更されないようにすることです。