1、安装

1)检查环境

#cat /dev/ppp

cat: /dev/ppp: No such device or address

#cat /dev/net/tun

cat: /dev/net/tun: File descriptor in badstate

2)在线安装

#apt-get install pptpd         //安装PPtpd

#netstat -antup |grep pptpd   //核查已经自启动

tcp       0      0 0.0.0.0:1723            0.0.0.0:*               LISTEN      8091/pptpd

2、配置

2.1 IP配置

# cp/etc/pptpd.conf /back/pptpd.conf

#vim /etc/pptpd.conf

localip 192.168.86.1    //***服务器的地址

remoteip 192.168.86.168-169  //***客户端的地址,可以配置成一个地址范围

2.2 DNS配置

# cp/etc/ppp/pptpd-options /back/

#vim /etc/ppp/pptpd-options

ms-dns 8.8.8.8      //设定个人区域DNS

ms-dns 8.8.4.4

2.3用户名密码配置

#vim /etc/ppp/chap-secrets

# Secrets for authentication using CHAP

# client       server  secret                  IP addresses

zwliu pptpd yourpassword *


3、配置路由转发功能

1修改内核文件,使系统支持转发。

#vim /etc/sysctl.conf //修改

net.ipv4.ip_forward=1

#sysctl -p

2配置防火墙增加转发规则

#!/bin/bash

### 自己其他的规则省略…..

CLIENTIP="PC客户端nat后的公有IP地址"

×××PORT="1723"

iptables -A INPUT -i eth1 -p tcp -s${CLIENTIP} -d ${×××服务器IP地址} --dport ${×××PORT} -j ACCEPT

iptables -t nat -A POSTROUTING -s192.168.86.0/24 -o eth1 -j SNAT --to-source ×××服务器IP地址

#或:iptables -t nat -APOSTROUTING -o ppp0 -j MASQUERADE

### 说明:传说因为-j SNAT要比-jMASQUERADE 效率要高些,没有证明过!

### 如果:

1192.168.86/24访问×××服务器IP地址内网IP地址时需要加入:

   iptables -A INPUT -i ppp0 -j ACCEPT

2某些网站无法访问,SSH可用,但scp不行,ftp能握手,但传不了文件时:

   iptables -A FORWARD -s 192.168.86.0/24 -p tcp -m tcp --tcp-flagsFIN,SYN,RST,ACK SYN -j TCPMSS --set-mss 1356

 ###解释:修改×××服务器的MTU(可通过netstat -i查看服务器PPP0MTU1396,IPTCP头各20字节为1356)

4、重启×××并测试

1服务器端

#/etc/init.d/pptpd restart

#ifconfig   //×××服务器上

ppp0     Link encap:Point-to-Point Protocol

        inet addr:192.168.86.1 P-t-P:192.168.86.168 Mask:255.255.255.255

        UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1396  Metric:1

        RX packets:107 errors:0 dropped:0 overruns:0 frame:0

        TX packets:9 errors:0 dropped:0 overruns:0 carrier:0

        collisions:0 txqueuelen:3

        RX bytes:7871 (7.6 KiB)  TXbytes:120 (120.0 B)  

2windows客户端

### 说明:客户端拨号创建网上资料太多了,这里不做详细说明,有问题可以留言。

### 拨号验证通过成功后测试:

C:\Documents andSettings\Administrator>ping 192.168.86.1


Pinging 192.168.86.1 with 32 bytes of data:

Reply from 192.168.86.1: bytes=32 time=12msTTL=64

Reply from 192.168.86.1: bytes=32 time=9msTTL=64

Reply from 192.168.86.1: bytes=32 time=9msTTL=64


C:\Documents andSettings\Administrator>ipconfig /all


PPP adapter me:


 Connection-specific DNS Suffix  .:

 Description . . . . . . . . . . . : WAN (PPP/SLIP) Interface

 Physical Address. . . . . . . . . : 00-53-45-00-00-00

 DHCP Enabled. . . . . . . . . . . : No

  IPAddress. . . . . . . . . . . . : 192.168.86.168

 Subnet Mask . . . . . . . . . . . : 255.255.255.255

 Default Gateway . . . . . . . . . : 192.168.86.168

 DNS Servers . . . . . . . . . . . : 8.8.8.8

### 注意:此时你只能通过×××服务器NAT后访问Internet网络提供的各种服务,若想使用PC通过你的本地接入宽带上网(不是×××服务器接入宽带),解决:

1、右键单击“虚拟连接”,选择属性菜单;

2、在弹出的对话框中,选择“网络”选项卡;

3、选择“INTERNET属性(TCP/IP)”,然后单击“属性”按钮;

4、在弹出的常规对话框中,单击“高级”按钮;

5、在“常规”选择项卡中,勾掉“在远程网络上使用默认网关”选项;

这样,你就可以使用虚拟连接的同时上网了。

### 测试截图:

打钩后,得到的网关跟IP一样:

Debian6.0.2 ×××(pptpd) 安装_第1张图片

不打钩时,没有得到网关,而使用本地的网关。

Debian6.0.2 ×××(pptpd) 安装_第2张图片

远程网络上使用默认网关”到底选不选这句话的意思是:××× 连接建立后,是否改变本地的默认网关。

勾选和不勾选各有优劣:

1)选上

好处:无需添加静态路由即可访问 ××× 服务后面的局域网资源。

不足: ××× 拨上号后,本地无法上网,需要在 ××× 服务器开通路由转发功能进行NAT

发后才行。

评点: 需要访问远程局域网时,进行××× 拨号,不需要时断开,但不适合“本地上网”和“访问远程局域网”同时进行的场合。

2)不选

好处: 不改变本地默认网关,×××拨号后本地上网不受影响,仍然走本地线路。

不足: 访问远程局域网资源时,需要手动添加静态路由。

点评: 手动添加静态路由比较麻烦,可以通过批处理文件来辅助完成。

综合以上分析,得出以下结论:如果 ××× 客户端不需要访问远程局域网,只需要拨入客户端之间可以相互访问,则不用勾选“默认网关”;如果需要,但是又不想手动添加静态路由,则可以采用第2种方案。