gpt4 book ai didi

routing - DD-WRT (pptp-客户端) : Automatically add routes and DNS info when connected to VPN?

转载 作者:行者123 更新时间:2023-12-02 00:33:37 25 4
gpt4 key购买 nike

我正在使用 DD-WRT 的 PPTP 客户端连接到 VPN。在服务/PPTP 客户端配置页面上,我指定了远程子网 192.168.112.0 和掩码 255.255.255.0。

建立连接后,会自动添加该路由。但是,通过该连接可以使用其他子网,例如 192.168.7.0,但我必须在命令行手动添加这些路由才能使其正常工作。

我相信 VPN 服务器一定会发送路由列表,因为当我使用 Windows XP 连接到 VPN 时,所有这些子网的路由都会自动添加到路由表中。

有没有办法让DD-WRT在建立连接时自动添加这些路由?也就是说,如果 VPN 服务器后面的网络配置发生变化,我就不必在我的 DD-WRT 上手动编辑路由表。

DNS 服务器也是一样,有没有办法避免手动输入 DNS 服务器用于 VPN 连接?

最佳答案

当 ppp 连接启动这个脚本时:

/etc/ppp/ip-up

在您的系统中执行。请注意,有一些变量是从服务器传递过来的。阅读最后的for语句,它会启动更多的脚本:

#!/bin/sh
# This script is run by pppd after the link is established.
# It executes all the scripts available in /etc/ppp/ip-up.d directory,
# with the following parameters:
# $1 = interface name (e.g. ppp0)
# $2 = tty device
# $3 = speed
# $4 = local IP address
# $5 = remote IP address
# $6 = ipparam (user specified parameter, see man pppd)
ifconfig $1 mtu 1280 || true

cd /etc/ppp/ip-up.d || exit

for SCRIPT in *.sh ; do
. ./"${SCRIPT}" "$@"
done

/etc/ppp/ip-up.d 文件夹中,我有一个名为 40-dns.sh 的文件。它看起来像这样,它将设置 /etc/resolve.conf 为 VPN 服务器发送的 DNS 服务器

#!/bin/sh    
# Handle resolv.conf generation when usepeerdns pppd option is being used.
# Used parameters and environment variables:
# $1 - interface name (e.g. ppp0)
# $USEPEERDNS - set if user specified usepeerdns
# $DNS1 and $DNS2 - DNS servers reported by peer

if [ "$USEPEERDNS" ]; then

if [ -x /sbin/resolvconf ]; then
{
echo "# Generated by ppp for $1"
[ -n "$DNS1" ] && echo "nameserver $DNS1"
[ -n "$DNS2" ] && echo "nameserver $DNS2"
} | /sbin/resolvconf -a "$1"
else
# add the server supplied DNS entries to /etc/resolv.conf
# (taken from debian's 0000usepeerdns)

# follow any symlink to find the real file
REALRESOLVCONF=$(readlink -f /etc/resolv.conf)

if [ "$REALRESOLVCONF" != "/etc/ppp/resolv.conf" ]; then

# merge the new nameservers with the other options from the old configuration
{
grep --invert-match '^nameserver[[:space:]]' $REALRESOLVCONF
cat /etc/ppp/resolv.conf
} > $REALRESOLVCONF.tmp

# backup the old configuration and install the new one
cp -dpP $REALRESOLVCONF $REALRESOLVCONF.pppd-backup
mv $REALRESOLVCONF.tmp $REALRESOLVCONF

# correct permissions
chmod 0644 /etc/resolv.conf
chown root:root /etc/resolv.conf
fi
fi

fi

对于在建立连接时在路由表中推送的路由,您应该能够执行类似的技巧。转到 pppd 手册页以查看您需要使用的变量名称。

此代码示例来 self 的 Gentoo Linux PC,但这些东西是 Linux 通用的,因此它也可以在 DD-WRT 上运行。

关于routing - DD-WRT (pptp-客户端) : Automatically add routes and DNS info when connected to VPN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5595877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com