如何在 Linux 下连接 VPN 服务?

VPN是一种常用于连接中、大型企业或团体与团体间的私人网络的通讯方法。它利用已加密的通道协议(Tunneling Protocol)来达到保密、发送端认证、消息准确性等私人消息安全效果。本文主要讲述如何在 Linux 下连接 VPN 服务。

1.安装vpn客户端

Ubuntu:

sudo apt-get install -y pptp-linux

centos:

yum -y install ppp pptp pptp-setup

2.连接vpn服务

Ubuntu:

sudo pptpsetup --create pptpd --server x.x.x.x --username vpntest --password 1234567890 --encrypt --start

centos:

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

3.连接/断开vpn

vpn建立好之后,可以通过 ponpoff 连接和断开vpn服务

pon vpntest    /连接名称为vpntest,vpn服务
poff vpntest    /断开名称为vpntest,vpn服务

报错解决办法

1.centos连接VpnServer 超时,执行下面命令:

iptables -F

2.连接vpn server,报如下错误:

Using interface ppp0
Connect: ppp0 <--> /dev/pts/2
EAP: unknown authentication type 26; Naking
EAP: peer reports authentication failure
Connection terminated.

解决办法:

vi /etc/ppp/options

将下面字段添加到/etc/ppp/options文件中(root用户权限可更改)

refuse-pap
refuse-eap
refuse-chap
refuse-mschap
require-mppe

连接成功:

pptpsetup --create pptpd --server x.x.x.x --username vpntest --password 1234567890 --encrypt --start    /重新启动
    Using interface ppp0
    Connect: ppp0 <--> /dev/pts/2
    CHAP authentication succeeded
    MPPE 128-bit stateless compression enabled
    local  IP address 10.0.0.10
    remote IP address 10.0.0.1

3.连接成功没网:

需要将vpn连接设置成默认路由!

Ubuntu:

查看路由表

netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.13.7.1       0.0.0.0         UG        0 0          0 enp0s3
10.0.0.1        0.0.0.0         255.255.255.255 UH        0 0          0 ppp0
10.13.7.0       0.0.0.0         255.255.255.128 U         0 0          0 enp0s3
10.13.7.49      0.0.0.0         255.255.255.255 UH        0 0          0 enp0s3

解决办法:

删除原来的默认路由:

route del default

将vpn连接ppp0设置成默认路由:

route add default dev ppp0

联网成功:

PING www.a.shifen.com (180.97.33.107) 56(84) bytes of data.
64 bytes from 180.97.33.107: icmp_seq=1 ttl=51 time=38.5 ms
64 bytes from 180.97.33.107: icmp_seq=2 ttl=51 time=38.5 ms
64 bytes from 180.97.33.107: icmp_seq=3 ttl=51 time=38.4 ms
64 bytes from 180.97.33.107: icmp_seq=4 ttl=51 time=38.5 ms
64 bytes from 180.97.33.107: icmp_seq=5 ttl=51 time=38.9 ms
64 bytes from 180.97.33.107: icmp_seq=6 ttl=51 time=38.4 ms

Centos:

查看路由表

ip route

解决办法:

将vpn连接ppp0设置成默认路由:

ip route replace default dev ppp0

联网成功:

64 bytes from 180.97.33.107: icmp_seq=4 ttl=51 time=46.3 ms
64 bytes from 180.97.33.107: icmp_seq=5 ttl=51 time=46.5 ms
64 bytes from 180.97.33.107: icmp_seq=6 ttl=51 time=46.4 ms

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

cols1

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏C/C++基础

Linux系统相关配置

为了使程序在崩溃时产生core文件,我们经常在终端使用命令ulimit -c unlimited 来设置。但是当前设置只能在当前会话有效,当关闭当前会话,打开新...

772
来自专栏实战docker

Docker下,极速体验编译pinpoint1.6.x分支

pinpoint是一款优秀的APM监控工具(Application Performance Management),用java编写的,用于分布式系统的监控和调用...

30510
来自专栏从零学习云计算

kubernetes工作记录(2)——基于release工程的kubernetes1.7.3 rpm包的编译生成

使用release工程编译的方式,生成kubernetes1.7.3的rpm包。 虚拟机环境为Centos7.2。 安装git # yum -y install...

2330
来自专栏Script Boy (CN-SIMO)

PowerShell:因为在此系统上禁止运行脚本

在安装chocolatey(官网)的时候,不能运行chocolateyInstall.pal脚本文件。 ? 查阅资料后,得出如下解决办法: 首次在计算机上启动 ...

2460
来自专栏别先生

EasyUI之Hello world(EasyUI的入门学习)

1:创建一个动态web工程:     去官网http://www.jeasyui.net/download/下载官网文档     我去官网下载的最新版本,个人根...

19610
来自专栏深度学习自然语言处理

Python命令行参数学习

Python的命令行参数,提供了很多有用的功能,可以方便调试和运行,通过man python就能查看,以下是一些常用参数使用实例和场景: 1. -B参数,在im...

3398
来自专栏实战docker

Docker下HBase学习,三部曲之二:集群HBase搭建

上一章《Docker下HBase学习,三部曲之一:极速体验》我们快速体验了单机版HBase提供的基础服务,接下来我们实战HBase集群环境的搭建。 集群规划 首...

3898
来自专栏哎_小羊

windows上 nginx 配置代理服务,配置多域名,以及最简单实现跨域配置

Nginx,不用多说啦,大家都熟悉的不能再熟悉了,它是一款轻量级的高性能Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,最近在本地研究...

3189
来自专栏企鹅号快讯

React 学习笔记

React 学习笔记 Wednesday, 03. January 2018 04:45PM react 基于nodejs环境。 ? 一、环境安装 nodejs...

1847
来自专栏惨绿少年

练习题二上

第1章 linux启动过程 1、开机自检bios 2、mbr引导 3、GRUB 菜单:选择不同的内核 4、加载内核 5、运行init进程 6、读取/etc/in...

2230

扫码关注云+社区