问题: 在做一个国外的开源项目,需要用到很多 ubuntu 上特定版本的应用,由于国内墙的问题,导致Ubuntu 14.04在需要添加一些国外的库的时候(add-apt-repository ppa:user/ppa-name),然后update会导致Hash Sum mismatch错误(16.06已经修复), 各种手段都用了,只有 fan 墙才能解决.下面介绍下Ubuntu14.04通过PPTP协议使用VPN


1. 安装 pptp-linux 客户端

sudo apt-get install pptp-linux

2. 查看电脑的网卡与网关信息

记录信息,在关闭 VPN 时使用

ifconfig 查看自己的网卡名字 $ETH0,

route -n 查看自己默认网关信息 $GATEWAY

3. 建立VPN 连接

sudo pptpsetup --create  本地名 \
--server 服务器域名(或 IP) --username VPN账户用户名 \
--password VPN账户密码 --encrypt --start

这时 ifconfig 会发现多了一个叫做 ppp0 的网卡,虽然VPN已经连接成功,但是路由没有通过VPN上网,因为当前路由的默认网关是还是上述$GATEWAY , 我们需要流量从网卡 ppp0 发出去我们需要修改默认网关.

sudo ip route del default
sudo ip route add default dev ppp0

4. 建立 vpn 的最后一步,也是关键一步


DNS改为google域名解析服务器的 8.8.8.8 或者 8.8.4.4

成功连接到远程VPN服务器。

通过刚才的创建脚步:

在/etc/ppp/peers目录下面,会生成一个叫$本地名的文件。

在/etc/ppp目录下面,用户名和密码会写在chap-secrets文件中。

5. 关闭VPN

由于之前我们把默认路由删除了, 关闭 VPN 时是没法上网的,需要做以下操作

#!/bin/bash
set -e
sudo ifconfig $ETH0 down
sudo ifconfig $ETH0 up
sudo route add default gw $GATEWAY

现在就可以正常上网了:)

贴上脚本

开启VPN

#!/bin/bash
# 使用前安装pptp-linux工具
set -e
sudo pptpsetup --create nowgood --server us01.blockcn.net \
--username *** --password *** \
--encrypt --start
sudo ip route del default
sudo ip route add default dev ppp0

关闭 VPN

#!/bin/bash
set -e
sudo ifconfig $ETH0 down
sudo ifconfig $ETH0 up
sudo route add default gw $GATEWAY

ubuntu server命令行搭建虚拟专用网的更多相关文章

  1. Ubuntu Server 命令行下的默认语言改为英语en_US.UTF-8

    源文链接:http://tonychiu.blog.51cto.com/656605/393131 如果Ubuntu Server在安装过程中,选择的是中文(很多新手都会在安装时选择中文,便于上手), ...

  2. Ubuntu Server 命令行下显示中文乱码(菱形)解决办法

    如果Ubuntu Server在安装过程中,选择的是中文(很多新手都会在安装时选择中文,便于上手),这样在完成安装后,系统默认的语言将会是中文zh_CN.UTF- 8.但问题是我们安装的是服务器,只需 ...

  3. [转]Ubuntu Server命令行更换软件源

    sucd /etc/aptwget http://mirrors.163.com/.help/sources.list.lucidmv sources.list sources.list.backup ...

  4. 【Problem】xampp in ubuntu下命令行启动mysql报错: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/opt/lampp/var/mysql/mysql.sock' (2)

    xampp in ubuntu下命令行启动mysql报错: reddevil@reddevil-Lenovo:/opt/lampp$ ./bin/mysql -u root -p Enter pass ...

  5. MSSQL-Scripter,一个新的生成T-SQL脚本的SQL Server命令行工具

    这里向大家介绍一个新的生成T-SQL脚本的SQL Server命令行工具:mssql-scripter.它支持在SQL Server.Azure SQL DB以及Azure SQL DW中为数据库生成 ...

  6. Ubuntu使用命令行打印文件

    Ubuntu使用命令行打印文件 正文 环境: Ubuntu 16.04.3 LTS HP Deskjet InkAdvantage 4648 准备步骤 安装Common UNIX Printing S ...

  7. Ubuntu终端命令行不显示颜色

    在网上找到的一个有效方案是在.bash_profile 中增加颜色定义 export LS_COLORS='di=01;35:ln=01;36:pi=40;33:so=01;35:do=01;35:b ...

  8. Vue - 使用命令行搭建单页面应用

    使用命令行搭建单页面应用 我们来看一下最后完成的效果: 大纲 1. 下载 node, git, npm 2. 使用命令行安装一个项目 一. 下载工具 node , git  的下载大家可以去官网自行下 ...

  9. ubuntu 下命令行播放器mplayer 使用详解

    ubuntu 下命令行播放器mplayer 使用详解 2011-01-02 21:00:42|  分类: Linux/Unix |  标签: |字号大中小 订阅 使用 MPlayer 播放媒体文件最简 ...

随机推荐

  1. busybox(一)浅析

    目录 busybox(一)浅析 引入 读取inittab 创建执行脚本链表 执行脚本 小结 title: busybox(一)浅析 tag: arm date: 2018-11-13 23:02:33 ...

  2. ansbile Tags && Block

    Tags 官网示例:https://docs.ansible.com/ansible/2.6/user_guide/playbooks_tags.html 编写执行playbook的时候,每次修改完y ...

  3. python 微信爬虫实例

    单线程版: import urllib.request import urllib.parse import urllib.error import re,time headers = (" ...

  4. JAVA-Clone 对象拷贝

    JAVA 中对象的赋值是复制对象的引用,即复制引用 public static void main(String[] args) { User user = new User(1,"asds ...

  5. sql 三表左外链接的2种写法【原】

    初始化语句 DROP TABLE student; ) )); ','bobo'); ','sisi'); ','gugu'); ','mimi'); DROP TABLE room; ) ),roo ...

  6. HDU - 1255 覆盖的面积 (线段树求面积交)

    https://cn.vjudge.net/problem/HDU-1255 题意 给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积. 分析 求面积并的题:https://www.cnbl ...

  7. Django聚合与分组查询中value与annotate的顺序问题

    在学习Django聚合与分组查询中,发现value与annotate的顺序不同时,查询结果大相径庭,经过一下午的研究,终于弄明白了,现在分享给大家,先上结论: 结论 value在annotate前面时 ...

  8. gethostbyname和gethostbyaddr

    一.gethostbyname函数原型 #include <netdb.h> struct hostent *gethostbyname(const char *ghostname); 返 ...

  9. 持续集成CI相关的几个概念

    持续集成 https://en.wikipedia.org/wiki/Continuous_integration 为什么要持续? 持续集成, 可以避免集成地狱(由于工作的源码 和 库中的源码的差异导 ...

  10. vs不自动退出控制台程序的办法

    1.在主函数rerurn 前加上getchar();即可. 2.ctrl+F5;