Linux连接PPTP协议的VPN

安装软件

1
yum install ppp pptp pptp-setup

创建VPN连接

1
pptpsetup  --create vpnname --server x.x.x.x  --username uaername --password XXXXXX --encrypt --start
  • create是创建的连接名称
  • server是vpn的ip地址
  • username是用户名
  • password是密码,也可以没这个参数,命令稍后会自动询问。这样可以保证账号安全
  • encrypt 是表示需要加密,不必指定加密方式,命令会读取配置文件中的加密方式(默认使用require-mppe-128加密)
  • start是表示创建连接完后马上连接

连接已有的VPN配置

1
pon vpnname

这个命令在系统中bin目录中找不到,在pptd的安装目录下的script目录下,如果不清楚这个命令具体在哪里的可以执行以下命令查找

1
find / -name "poff" -type f

我使用yum安装的软件,可以参考去以下路径查找

/usr/share/doc/ppp-2.4.5/scripts/

路由

连接成功后会在本地创建一个虚拟网口ppp0

相关的路由也会加在路由表中,可以通过route -nifconfig命令查看

VPN连通后,可以指定本地所有流量都走VPN,也可以指定某几个网段的流量走VPN

  • 所有流量都走VPN,设置为默认路由
1
2
3
route add -net 0.0.0.0 dev ppp0

route add default dev ppp0

删除

1
2
3
route del -net 0.0.0.0 dev ppp0

route del default
  • 指定网段的流量走VPN
1
route add -net 192.168.168.0/24 dev ppp0

注意:重启网卡也会清除VPN通道

关闭VPN通道

1
poff vpnname (全部下线poff -a)

这个命令在系统中bin目录中找不到,在pptd的安装目录下的script目录下,如果不清楚这个命令具体在哪里的可以执行以下命令查找

1
find / -name "poff" -type f

我使用yum安装的软件,可以参考去以下路径查找

/usr/share/doc/ppp-2.4.5/scripts/

相关目录

  • /etc/ppp/peers/ 存放用户创建的vpnname配置文件的地方
  • /etc/ppp/chap-secrets 用户名密码存放的地方(明文的)

  • 注1: pon 和 poff命令可在ppp源码目录下的scripts目录中找到。
  • 注2: 要想使用vpn通道,需要根据需要在本地添加静态路由