我们搭建VPN采用的是openvpn,搭建过程总体需要经过三大步骤:

       1openvpn的安装与配置

         2、端口转发

         3、系统重启iptables规则自动生效

 注意:以下所有名令在root权限下输入(进入root权限命令 sudo su) 下面用红颜色标注的字体是修改了的;如果按以前的操作失败了的可以把下面两条红色的语句重新添加到服务器中就可以了。

  PS:感谢jsa大神指正我的错误.

一、openvpn的安装与配置

  

         openvpn安装与配置教程,此链接中的内容介绍了openvpn的安装与配置步骤(图文并茂)

二、端口转发

  第一步完成后,本地服务器与云服务器组成了一个局域网(我们配置后的本地服务器虚拟网卡IP为10.8.0.6,云服务器虚拟网卡IP为10.8.0.1),可以试着在本地服务器上运行命令 ping  10.8.0.1或者在云服务器上运行命令  ping 10.8.0.6,如果数据包都能被接收说明两台服务器已成为一个局域网,否则说明配置未成功。

  在做端口转发时先看看这篇博客http://blog.csdn.net/daisy_chenting/article/details/7058145  它介绍了iptables规则了,如果想详看可以去看看《鸟哥的Linux私房菜》

  云服务器与本地服务器IP:

    

      本地服务器IP: 172.16.200.33    本地服务器虚拟网卡IP: 10.8.0.6    端口:80

      云服务器公网IP: 115.159.185.192 端口:80     内网IP(虚拟网卡IP):10.8.0.1  端口:80

  端口转发命令:

      sysctl net.ipv4.ip_forward=1(这条必须写到/etc/sysctl.conf文件下,否则当服务器重启时,路由功能会失效,导致要访问的页面失败)

      iptables -P FORWARD DROP

      iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

      iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 10.8.0.6:80

      iptables -A FORWARD -p tcp --dport 80 -j ACCEPT

      iptables -t nat -A POSTROUTING -d 10.8.0.6 -p tcp --dport 80 -j SNAT --to 10.8.0.1

最后三条命令就是将所有访问10.8.0.6的用户请求访问的源IP改为10.8.0.1,让10.8.0.6误以为是10.8.0.1发送的请求,由于它们已在同一个局域网中,所以可以访问成功。

三、系统重启iptables规则自动生效

  有两种方法可以在系统重启后使得iptables规则自动生效,两种修改方法如下:

    1、 修改Operation System

          iptable-save > /etc/iptables-config  (root权限下,将当前规则存到/etc/rc.local文件中) (保存iptables规则这条语句以前漏掉了,现在添加上)

          iptables-restore < /etc/iptables-config (在/etc/rc.local文件末尾添加这条命令,Ubuntu开机之后会执行/etc/rc.local文件中的脚本)

    

    2、修改网卡

        

          iptables-save > /etc/iptables.up.rules (root权限下,将当前规则存到/etc/iptables.up.rules文件中)
          

          pre-up iptables-restore < /etc/iptables.up.rules (修改脚本/etc/network/interfaces,在其末尾添加这条命令,在网络启动时应用防火墙规则)

    

    注:先去了解下对文件的操作

  

两台装有Ubuntu系统的服务器搭建VPN(一台为本地服务器,另一台为云服务器)的更多相关文章

  1. JavaScript进阶(九)JS实现本地文件上传至阿里云服务器

    JS实现本地文件上传至阿里云服务器 前言 在前面的博客< JavaScript进阶(八)JS实现图片预览并导入服务器功能>(点击查看详情)中,实现了JS将本地图片文件预览并上传至阿里云服务 ...

  2. ubuntu系统用docker搭建wordpress

    目标:在docker中搭建wordpress 安装顺序: 首先要有一个云服务器---购买或者自己搭建(本人是自己在主机上装了虚拟机,搭建了一个ubuntu14.04,安装链接:https://www. ...

  3. Hadoop 在ubuntu系统上的搭建[图解]

    前言 本文介绍如何在Ubuntu Kylin操作系统上搭建Hadoop平台. 配置 1. 操作系统: Ubuntu Kylin 14.04 2. 编程语言: JDK 1.8 3. 通信协议: SSH ...

  4. Ubuntu系统之Hadoop搭建

    作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/3223 一.在Window中安装Oracle VM VirtualBox 二 ...

  5. 本地Linux备份服务器[Client]定期备份云服务器[Server]上的文件(下)

    https://www.cnblogs.com/kevingrace/p/5972563.html Client上使用rsync命令查看服务器上文件列表rsync --list-only -e &qu ...

  6. ubuntu系统lamp环境搭建、数据库迁移、设置数据库外部访问

    sudo passwd root设置两次密码su输入设置的密码exit (退出root帐号) 1.sudo apt-get update 2.sudo apt-get install apache2 ...

  7. 2003服务器搭建vpn

    先说下为什么会有本文,公司的git突然被防火墙屏蔽了,有些同事无奈用4g网去提交,我比较穷,1g的小水管hold不住,于是我想着用vpn.国内封杀的比较严重,免费的更是少,找朋友要了一个3小时试用的, ...

  8. Windows7系统中nginx与IIS服务器搭建集群实现负载均衡

    10分钟搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡   分布式,集群,云计算机.大数据.负载均衡.高并发······当耳边响起这些词时,做为一个菜鸟程序猿无疑 ...

  9. 3.linux(ubuntu)常用服务器搭建

    1 ftp 1.1 ftp服务器 1.安装vsftpd服务器 sudo apt-get install vsftpd 2.配置vsftpd.conf文件 sudo vi /etc/vsftpd.con ...

随机推荐

  1. HMI与设计模式

    设计模式是做一个好的架构的一个基础.那么设计模式具体的概念是啥呢?百度百科曰:设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是 ...

  2. nodejs的第五天学习笔记

    一.调试nodejs代码 1)使用console.log() 使用麻烦,用了以后还要删除 2)nodejs的自带调试器 -node debug a.js 没有任何作用,一个玩具,将来有一天可以会变得强 ...

  3. ROS学习笔记(一)——软件版本的选择

    下面是Google的SLAM系统Cartographer对系统的要求: Cartographer对ROS版本要求: ROS Indigo 对Ubantu 的版本要求: 所以,综上所述: Ubantu ...

  4. gvim 快速编辑例子

    1 准备工作 首先, 我们打开 VIM, 输入一段文本,  用于今天的演示: this is a test 2 查找替换 按几下 ESC 进入 Normal 模式, 输入以下命令: :%s/ /\r/ ...

  5. linux学习网站分享

    http://www.zhihu.com/question/19895288 http://linux.vbird.org/ 两个linux学习的网页存起来,以后学习.

  6. 7 -- Spring的基本用法 -- 5...

    7.5 Spring容器中的Bean 7.5.1 Bean的基本定义和Bean别名 <beans.../>元素是Spring配置文件的根元素,该元素可以指定如下属性: default-la ...

  7. 解读浮动闭合最佳方案:clearfix

    .clear{clear:both;height:0;overflow:hidden;} 上诉办法是在需要清除浮动的地方加个div.clear或者br.clear,我们知道这样能解决基本清浮动问题. ...

  8. pdf预览-js版本

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  9. 基础算法之选择排序Selection Sort

    原理 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾.以此类推,直到所有元素均排序完毕.一种简单直观的排序算 ...

  10. 错误: java.lang.reflect.InvocationTargetException

    错误: java.lang.reflect.InvocationTargetException    at sun.reflect.NativeMethodAccessorImpl.invoke0(N ...