Linux客户端使用命令行连接pptp VPN的方法

用Linux搭建pptp VPN服务器很简单,但是作为客户端连接的话却会有点小问题,network-manager倒是可以用,不过我用着不习惯就给删除了,所以我直接用命令行来连接VPN了。

1.安装pptp-linux:

  1. # apt-get install pptp-linux

复制代码

2.用pptpsetup命令建立连接:

  1. # pptpsetup –create <TUNNEL> –server <SERVER> [–domain <DOMAIN>]
  2.                      –username <USERNAME> –password <PASSWORD>
  3.                      –encrypt –start

复制代码

–create 建立连接,在后面输入此连接的名词,随便写,比如”vpntest”,以后启动vpn的时候会用到;
–server VPN服务器的IP地址或者域名
–username 用户名
–password 密码
–encrypt 加密
–start 启动

修改 /etc/ppp/options.pptp 有关认证方式。

3.连接建立好之后就可以用pon和poff这两个命令来启动和断开VPN连接了

  1. # pon vpntest
  2. # poff vpntest

复制代码

4.设置默认路由:

VPN建立好之后是无法用VPN上网的,因为默认是没有添加VPN的默认路由的。

  1. # nano /etc/ppp/peers/vpntest

复制代码

增加以下两行:

  1. defaultroute #添加默认路由
  2. usepeerdns #使用服务器端设置的DNS,如果不需要就不添加

复制代码

OK,断开再连接VPN,这个时候你再打开http://www.ip138.com看看是不是变成VPN服务器的地址了呢?

 

ubuntu建立vpn连接

 

1)先安装VPN客户端
sudo apt-get install pptp-linux binutils

sudo pptpsetup –create testvpn –server 123.45.67.88 –username kk –password fku –encrypt –start

(注: 如没有安装binutils,会出现如下错误

sh: strings: not found
/usr/sbin/pptpsetup: couldn’t find MPPE support in pppd.

出现如下问题:

LCP terminated by peer : Encryption negotiation rejected
编辑/etc/ppp/options文件
在末尾添加
       代码:       require-mppe
require-mppe-128
mppe-stateful
解决问题。

 

2)命令行下拨号连接VPN服务器

–create           后的是创建的连接名称,可以为任意名称;
–server           后接的是vpn服务器的IP;
–username     是用户名
–password      是密码,在这也可以没这个参数,命令稍后会自动询问。这样可以保证账号安全
–encrypt         是表示需要加密,不必指定加密方式,命令会读取配置文件中的加密方式
–start              是表示创建连接完后马上连接,如果你不想连,就不写

3)以后要连接VPN或断开VPN

pon testvpn    <–  VPN的“连接名称”

poff                <– 断开VPN连接

4)全部流量走VPN通道

# 把下面两行加入 /etc/ppp/ip-up 中或者直接命令行输入也行,删除默认网关及把 VPN 服务器作为默认网关,也就是改变路由策略,把所以传输流量通过 VPN 线路来走。

#route add default gw 192.168.0.1

#route del default gw 原来的网关 // 原来的默认网关地址可通过 route 命令来获取

 

 

方法1:
1. 安装VPN包

根据系统选择安装pptp-linux包。

亦有相关文章指出,安装VPNC插件继承入Network Manager中即可(仅适用于Ubuntu)。我没有尝试过。
2. 设置连接

进入终端,输入:

sudo pico /etc/ppp/peers/resnet

在编辑器中插入以下内容:

pty “pptp vpn.resnet.cuhk.edu.hk –nolaunchpppd”
file /etc/ppp/options.pptp
remotename PPTP
persist
defaultroute
usepeerdns
name s07xxxxx //此处输入用户名

按Ctrl+O, Enter, Ctrl+X保存关闭。
3. 修改连接设置

在终端中输入:

sudo pico /etc/ppp/options.pptp

在编辑器中显示的是PPTP连接设置,找到

require-mppe-128

将之注释掉(即在前面加上井号#)。Ctrl+O, Enter, Ctrl+X保存退出。
4. 设置用户名密码

在终端中输入:

sudo pico /etc/ppp/pap-secrets

在最后一行,输入

s07xxxxx PPTP 密码

PPTP在中间,和用户名、密码有一空格间隔。Ctrl+O, Enter, Ctrl+X保存退出。

到此为止,设置已成功,准备连接。
连接方法

在终端中输入

sudo pon resnet

等待几秒钟,让VPN连接好。然后继续输入

ip route

检查dev/ppp0是否已经成为了默认(default)。如果没有,输入:

sudo ip route del default //删掉现有默认
sudo ip route add default dev ppp0 //将ppp0添加为默认路由

此时VPN连接应已就绪。

可以通过写脚本的方法简化这一流程。例如:

sudo pon resnet
sleep 5
sudo ip route del default
sudo ip route add default dev ppp0

将之保存为connect.sh,设置属性允许其运行即可。

方法二:

首先需要安装两个包,pptp-linux和pptpconfig。我目前用的版本:
pptp-linux 1.7.0-2ubuntu1
pptpconfig 20060821-0
运行pptpconfig,它是一个图形化的客户端,可以用来配置和连接。
但有两个问题需要注意:
1.在pptpconfig窗口的列表里,深蓝色代表选中,浅蓝色代表未选中,如果未选中的话,是无法进行相关配置或者操作的。比如你发现怎么有些配置没保存上,就应该是这个问题。
2。pptpconfig配置的路由未起作用,需要手工加上。
比如:
sudo route add -net 172.20.0.0/16 gw 172.20.16.100
这里172.20.16.100是利用pptp连接上以后,你所连接的那台服务器的内网IP(通过ifconfig可以看到)
表示172.20.0.0段的IP都以172.20.16.100作为网关

发表评论

邮箱地址不会被公开。 必填项已用*标注