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 效率要高些,没有证明过!
### 如果:
(1)192.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查看服务器PPP0的MTU为1396,减IP和TCP头各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)
(2)windows客户端
### 说明:客户端拨号创建网上资料太多了,这里不做详细说明,有问题可以留言。
### 拨号验证通过成功后测试:
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一样:
不打钩时,没有得到网关,而使用本地的网关。
远程网络上使用默认网关”到底选不选这句话的意思是:××× 连接建立后,是否改变本地的默认网关。
勾选和不勾选各有优劣:
(1)选上
好处:无需添加静态路由即可访问 ××× 服务后面的局域网资源。
不足: ××× 拨上号后,本地无法上网,需要在 ××× 服务器开通路由转发功能进行NAT转
发后才行。
评点: 需要访问远程局域网时,进行××× 拨号,不需要时断开,但不适合“本地上网”和“访问远程局域网”同时进行的场合。
(2)不选
好处: 不改变本地默认网关,×××拨号后本地上网不受影响,仍然走本地线路。
不足: 访问远程局域网资源时,需要手动添加静态路由。
点评: 手动添加静态路由比较麻烦,可以通过批处理文件来辅助完成。
综合以上分析,得出以下结论:如果 ××× 客户端不需要访问远程局域网,只需要拨入客户端之间可以相互访问,则不用勾选“默认网关”;如果需要,但是又不想手动添加静态路由,则可以采用第2种方案。