通常,一台独立的计算机不仅仅连接到一个网络。 经常需要使用不同的服务提供商连接到不同的网络或互联网。 在这种情况下,每次想要连接到不同的站点时都更改配置文件可能会很麻烦。
我在这里提出的解决方案是为每个不同的连接使用不同的配置文件集。 你可以在这里找到一些脚本来自动化从一个连接切换到另一个连接的过程。
如果您的电子邮件客户端程序使用本地消息传输代理(Message Transfer Agent)和 smtp
中继主机来发送所有邮件,或者如果您使用的电子邮件客户端程序直接将邮件发送到您的提供商的 smtp
服务器,那么更改连接位置意味着您需要为 smtp
中继服务器重新配置此选项。 这是因为提供商通常会检查接收邮箱是否是本地的,或者是此提供商直接维护的任何域,或者来源 IP 地址是否来自此提供商分配的 IP 地址范围,以避免拥有可用于发送垃圾邮件、匿名消息等的开放中继服务器。
在下面的示例中,您将找到如何在 Smail 配置文件中更改此参数,在一个简单的配置中,所有外部邮件都发送到 smtp
中继服务器。 如果您在系统中使用另一个消息传输代理(MTA),您可以将您必须在 MTA 中进行的更改发送给我,以便将其包含在此处。 如果您使用的电子邮件客户端程序直接发送到外部 smtp
服务器(Kmail、Netscape 等),也请将您的更改发送给我。
首先,在 /etc/diald
下创建一个名为 providers
的子目录,您可以在其中存储您的脚本,用于自动从一个提供商切换到另一个提供商,以及包含用于配置每个提供商连接的文件集的子目录。
使用下一个脚本,将创建此目录,并使用来自 Diald、chat、pppd 和 Smail 的当前配置文件填充它,这些文件将作为后续配置的模板。
#!/bin/sh
#File /etc/diald/providers/setupdialdmultiprovider
mkdir /etc/diald/providers
mkdir /etc/diald/providers/setup
cp /etc/ppp/pap-secrets /etc/diald/providers/setup
cp /etc/ppp/chap-secrets /etc/diald/providers/setup
cp /etc/resolv.conf /etc/diald/providers/setup
cp /etc/diald/diald.options /etc/diald/providers/setup
cp /etc/diald/standard.filter /etc/diald/providers/setup
cp /etc/diald/personal.filter /etc/diald/providers/setup
cp /etc/diald/diald.connect /etc/diald/providers/setup
cp /etc/chatscripts/provider /etc/diald/providers/setup
cp /etc/diald/ip-up /etc/diald/providers/setup
cp /etc/diald/ip-down /etc/diald/providers/setup
cp /etc/smail/routers /etc/diald/providers/setup
使用下一个脚本,模板配置将被复制到一个新目录中,以准备用于新的提供商连接或新的网络连接。 此脚本 (/etc/diald/providers/newdialdprovider
) 将需要一个参数,即提供商或网络名称。
#!/bin/sh
#File /etc/diald/providers/newdialdprovider
mkdir /etc/diald/providers/$1
cp /etc/diald/providers/setup/* /etc/diald/providers/$1
现在,您将根据需要修改 /etc/diald/providers/providername
中的新文件,其中 providername
是传递给 newdialdprovider
的参数。
最后,使用此脚本,您将更改所有与 Diald 相关的配置文件,以连接到另一个提供商或网络。 我使用符号链接以避免使用重复文件。 使用符号链接,如果您在原始位置(如 /etc/resolv.conf
)更改任何配置文件,则更改实际上是在 /etc/diald/providers/providername/resolv.conf
文件中进行的。
#!/bin/sh
#File /etc/diald/providers/setdialdprovider
/etc/init.d/diald stop
#wait for Diald to stop.
sleep 4
ln -sf /etc/diald/providers/$1/pap-secrets /etc/ppp
ln -sf /etc/diald/providers/$1/chap-secrets /etc/ppp
ln -sf /etc/diald/providers/$1/resolv.conf /etc
ln -sf /etc/diald/providers/$1/diald.options /etc/diald
ln -sf /etc/diald/providers/$1/standard.filter /etc/diald
ln -sf /etc/diald/providers/$1/personal.filter /etc/diald
ln -sf /etc/diald/providers/$1/diald.connect /etc/diald
ln -sf /etc/diald/providers/$1/provider /etc/chatscripts
ln -sf /etc/diald/providers/$1/ip-up /etc/diald
ln -sf /etc/diald/providers/$1/ip-down /etc/diald
ln -sf /etc/diald/providers/$1/routers /etc/smail
/etc/init.d/diald start