2023年11月28日发(作者:)
Debian 使用PPTP client
1. 用以下命令安装pptp client软件和gcc软件
# apt-get install pptp-linuxgcc
有时我们会在字符终端模式下启用SSH连接,以进行远程维护。这时我们要用到pon、
poff程序。pon用于VPN拔号,poff用于断开VPN连接。要正常使用这两个程序,前提是
要按上面的配置方法成功配置了一个VPN连接。假设我们已建立了一个名为remote的
VPN连接,则可用以下命令连接 VPN服务器。
debian:~# pon remote # 建立一个VPN连接
debian:~# plog # 查看VPN连接状态信息
debian:~# poff remote # 断开VPN连接
remote这个VPN连接的信息主要存放在两个文件中
分别是/etc/ppp/chap-secrets和/etc/ppp/peers/remote。
2. /etc/ppp/chap-secrets文件示例:
# Secrets for authentication using CHAP
# client server secret IP addresses
username PPTP userpass *
3. /etc/ppp/peers/remote文件示例:
# 这一行是 pptp 拨号时执行的程序,其中 10.0.0.100 是 pptp 服务器的地址
pty "pptp 0.0.0.0 --nolaunchpppd"
# name 表示在 PPTP 服务器端的用户名
name username
# remotename 表示在 chap-secrets 文件中的服务名
remotename PPTP
require-mppe-128
file /etc/ppp/
ipparam remote
# defaultroute 表示用新创建的 ppp 连接作为缺省路由
defaultroute
# replacedefaultroute 表示在用新建连接做缺省路由时,替换掉原先的缺省路由
replacedefaultroute
最后两项如果是ADSL拨号网络的话是不能加的。会引起断线
解决的方法是在/etc/ppp/ip-up.d/和/etc/ppp/ip-down.d/里面写脚本。脚本书写这里暂不说
明
4. /etc/ppp/ 文件示例:
lock
noauth
refuse-eap
refuse-chap
refuse-mschap
nobsdcomp
nodeflate
require-mppe-128
mppe-stateful
defaultroute
5.使用时需用真实的username和password代替配置文件中这两项内容。
6.在 interfaces 文件中添加 ppp 拨号连接
在 /etc/network/interfaces 中添加如下内容:
iface remote inet ppp
provider remote
添加完之后,就可以用 ifup remote 来启动 pptp 虚拟专用网了。
7.为本地局域网添加路由
这个步骤和虚拟专用网本没有太大关系,但因为需要,就写在这里。还是修改
/etc/network/interfaces 文件,在原有的 eth0 的局域网配置中加入:
route add -net 10.0.0.0 netmask 255.0.0.0 eth0
这样在不使用 pptp 的时候虽然多了一个路由项,但对系统不会有任何的影响。而在开启
pptp 后,路由也不会出错。
8.网关拨vpn内网客户机上网
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
/sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
/sbin/iptables -A FORWARD -p tcp --syn -s 192.168.1.0/24 -j TCPMSS --set-mss 1300
9.编写自动检测连接程序(C语言)
nano zx.c //创建zx.c的源文件
写入以下语句
#include
int main ()
{
FILE *pt;
pt=fopen ("/var/www/ppp0","w+");
fclose(pt);
system("ifconfig | grep ppp0 >>/var/www/ppp0");
pt=fopen ("/var/www/ppp0","r");
if ((fgetc(pt)==EOF) && (fclose(pt) == 0))
{
system("pon remote");
system("plog >> /var/log/");
}
}
保存并推出。
cc zx.c //编译zx.c
//将可执行程序复制到/etc/init.d/目录下 cp /etc/init.d/
10. 用crontab -e 编辑定时作业脚本:
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow command
*/5 * * * * /etc/init.d/>> /var/log/
注意 SHELL=/bin/bash 和 PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 这两
行代码是必须的
11.开机自动连接
nano /etc/
在exit 0 前一行写入 /etc/init.d/
发布评论