两台装有Ubuntu系统的服务器搭建VPN(一台为本地服务器,另一台为云服务器)
我们搭建VPN采用的是openvpn,搭建过程总体需要经过三大步骤:
1、openvpn的安装与配置
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(一台为本地服务器,另一台为云服务器)的更多相关文章
- JavaScript进阶(九)JS实现本地文件上传至阿里云服务器
JS实现本地文件上传至阿里云服务器 前言 在前面的博客< JavaScript进阶(八)JS实现图片预览并导入服务器功能>(点击查看详情)中,实现了JS将本地图片文件预览并上传至阿里云服务 ...
- ubuntu系统用docker搭建wordpress
目标:在docker中搭建wordpress 安装顺序: 首先要有一个云服务器---购买或者自己搭建(本人是自己在主机上装了虚拟机,搭建了一个ubuntu14.04,安装链接:https://www. ...
- Hadoop 在ubuntu系统上的搭建[图解]
前言 本文介绍如何在Ubuntu Kylin操作系统上搭建Hadoop平台. 配置 1. 操作系统: Ubuntu Kylin 14.04 2. 编程语言: JDK 1.8 3. 通信协议: SSH ...
- Ubuntu系统之Hadoop搭建
作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/3223 一.在Window中安装Oracle VM VirtualBox 二 ...
- 本地Linux备份服务器[Client]定期备份云服务器[Server]上的文件(下)
https://www.cnblogs.com/kevingrace/p/5972563.html Client上使用rsync命令查看服务器上文件列表rsync --list-only -e &qu ...
- ubuntu系统lamp环境搭建、数据库迁移、设置数据库外部访问
sudo passwd root设置两次密码su输入设置的密码exit (退出root帐号) 1.sudo apt-get update 2.sudo apt-get install apache2 ...
- 2003服务器搭建vpn
先说下为什么会有本文,公司的git突然被防火墙屏蔽了,有些同事无奈用4g网去提交,我比较穷,1g的小水管hold不住,于是我想着用vpn.国内封杀的比较严重,免费的更是少,找朋友要了一个3小时试用的, ...
- Windows7系统中nginx与IIS服务器搭建集群实现负载均衡
10分钟搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡 分布式,集群,云计算机.大数据.负载均衡.高并发······当耳边响起这些词时,做为一个菜鸟程序猿无疑 ...
- 3.linux(ubuntu)常用服务器搭建
1 ftp 1.1 ftp服务器 1.安装vsftpd服务器 sudo apt-get install vsftpd 2.配置vsftpd.conf文件 sudo vi /etc/vsftpd.con ...
随机推荐
- 1019: [SHOI2008]汉诺塔
1019: [SHOI2008]汉诺塔 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1495 Solved: 916[Submit][Status] ...
- stopPropagation, preventDefault 和 return false 的区别
因为有父, 子节点同在, 因为有监听事件和浏览器默认动作之分. 使用 JavaScript 时为了达到预期效果经常需要阻止事件和动作执行. 一般我们会用到三种方法, 分别是 stopPropagati ...
- jieba分词
一.安装 pip 安装 或者 先下载http://pypi.python.org/pypi/jieba/ ,解压后运行python setup.py install 二.功能 1.分词 2.添加自定义 ...
- 转载ali面
引言 首先声明,不要再问LZ谁是林萧,林萧就是某著名程序员小说的主角名字. 写这篇文章的目的其实很简单,算是对之前LZ一篇文章的补充和完善. 之前LZ写过一篇<回答阿里社招面试如何准备,顺便谈谈 ...
- JS控制TABLE表格在任意一行下面添加一行(有待完善)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- AE调用GP工具的方法(转)
第一,首先要明确自己需要调用arctoolbox里面的什么工具,实现什么样的功能. 第二,按照需求看看在arctoolbox工具中是怎么实现功能的,然后确定需要的数据源. 第三,编写command或t ...
- .net乱码问题
最近在给一个客户做framwwork版本升级,从1.0版本升级到4.0版本,发现最大的问题就是乱码. 在1.0版本下,gb2312编码能够运行得很好,可是升级到4.0后就都是乱码. 随后将webcon ...
- gulp教程之gulp-less
简介: 使用gulp-less插件将less文件编译成css,当有less文件发生改变自动编译less,并保证less语法错误或出现异常时能正常工作并提示错误信息. 1.安装nodejs/全局安装gu ...
- hdu 3473 Minimum Sum
传送门 之前看挑战的时候看到一道分桶法的题目,其实我不是很明白分桶法应该怎么写.看到poj后面的讨论版上写着划分树裸题,而我以前就听说过了划分树,就干脆拿来学习一下.在写这篇博客的时候,其实我还是对这 ...
- Wpf之Xaml属性值和特性值(一)
其实我一直很好奇在xaml中,通过Attribute=Value这种方式可以进行对元素的描述, 例如: <Rectangle Name=” rectangle” Fill=”Blue”/> ...