注意:这里所说的上网并不是FQ、只是简单的通过iptables让客户端可以访问外网、因为有些时候有这样的需求

上一篇文章为大家介绍了OpenVPN、以及它的部署工作、而这一篇主要就是讲解如何让客户端可以访问外网、并将其设置为开机自动启动让其自动连接

在Linux部署完OpenVPN之后、如果客户端要通过它访问外网、需要借助iptables或firewalld等工具做SNAT即源地址转换、确保数据包可以正常转发到外网

最后需要说的就是开机自动启动、设置OpenVPN为开机自动启动的方法有很多种

其一:通过定义注册表、使其开机自动启动

其二:通过设置定时任务以及触发器、使其开机自动启动

注意:设置完开机自动后、登录时会弹出一个方框、就是因为设置了开机自动启动、所以图标会由绿色变成灰色、这个是属于正常现象、不影响通信、请放心使用


一、通过OpenVPN访问外网

1)在Linux中开启路由转发

[root@node1 ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@node1 ~]# sysctl -p

2)添加防火墙规则、确保数据包可以正常转发到外网

[root@node1 ~]# iptables -t nat -I POSTROUTING -s 172.16.0.0/16 -o ens33 -j MASQUERADE

3)在服务端编辑OpenVPN的配置文件

[root@node1 ~]# vim /etc/openvpn/server.conf
push "route 0.0.0.0 0.0.0.0"					#推送路由
push "dhcp-option DNS 114.114.114.114"			#设置DNS
push "dhcp-option DNS 114.114.115.115"			#设置DNS
push "redirect-gateway def1 bypass-dhcp"		#设置网关转发

4)验证OpenVPN客户端访问外网


二、设置OpenVPN为开机自动启动

1)在Linux中设置OpenVPN为开机自动启动

注意:这里一定要进入目录之后在去执行连接命令、否则会报错、不生效、这里需要特别注意

[root@client ~]# cat >> /etc/rc.d/rc.local << EOF
cd /etc/openvpn/ && /usr/sbin/openvpn --daemon --config client.ovpn && cd
EOF
[root@client ~]# chmod +x /etc/rc.d/rc.local

2)在Windows中设置OpenVPn为开机自动启动

1、修改注册表

复制这个路径:C:\Program Files\OpenVPN\bin\openvpn-gui.exe

在注册表的HKEY_LOCAL_MACHINE\SOFTWARE\OpenVPN-GUI路径中、将silent_connection的值修改为1

随后在注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run路径中、新建项即可

项目的值为:"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect client.ovpn

最后在service.msc中、将OpenVPN Serviced的启动类型由手动更改为自动即可、这样就完成了开机自动连接与启动

2、设置触发器

在Windows的搜索栏中搜索任务计划程序、进入点击创建基本任务、然后为任务定义名称

然后将触发器设置为计算机启动时启动程序

随后将程序设置为:"C:\Program Files\OpenVPN\bin\openvpn-gui.exe"、将参数设置为:--connect client.ovpn

之后将:当单击完成时打开此任务属性的对话框、这个复选框勾选上

最后将:不管用户是否登录都要运行与使用最高权限运行的复选框勾上、这样就完成了开机自动连接与启动

注意:设置完开机自动启动以后、在服务器开机以后OpenVPN会自动连接、不用手动去连接了、登录到服务器(Windows服务器)以后因为设置了开机自动启动、所以会弹出一个灰色方框、这个是正常的、不影响通信

【只是为了打发时间】

通过open上网并设置开机自启与自动连接的更多相关文章

  1. Linux(CentOS6.5)下Nginx注册系统服务(启动、停止、重启、重载等)&设置开机自启

    本文地址http://comexchan.cnblogs.com/ ,作者Comex Chan,尊重知识产权,转载请注明出处,谢谢! 完成了Nginx的编译安装后,仅仅是能支持Nginx最基本的功能, ...

  2. centos7安装docker并设置开机自启以及常用命令

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...

  3. redis设置开机自启

    开机自启动redis(其他服务类似) centos 7以上是用Systemd进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvini ...

  4. Win10 如何以管理员身份设置开机自启程序(1)

    原文:Win10 如何以管理员身份设置开机自启程序(1) 最近一个项目在win10上部署时遇到问题,即如何设置以管理员身份开机自启.现把解决方法整理如下: 首先,为了进行验证,我编了一个简单的程序te ...

  5. Win10 如何以管理员身份设置开机自启程序(2)

    原文:Win10 如何以管理员身份设置开机自启程序(2) 自己水平太菜,对Windows的权限问题一直不是特别了解.之前在<Win10 如何以管理员身份设置开机自启程序(1)>一文中介绍了 ...

  6. nginx设置开机自启

    环境:centos7 nginx1.16.1 方法一:(适用于centos7以上版本) 使用systemctl工具 方法二:(使用多种linux) 使用nginx官方的脚本,设置开机自启

  7. Centos7安装elasticsearch6.3及ik分词器,设置开机自启

    参考Elasticsearch 在CentOs7 环境中开机启动 建议虚拟机的内存大小为4G 1. 新建一个用户john 出于安全考虑,elasticsearch默认不允许以root账号运行. 创建用 ...

  8. ubuntu18.04设置开机自启Django

    设置开机自启: rc-local.server [Unit] Description=/etc/rc.local Compatibility ConditionPathExists=/etc/rc.l ...

  9. (2)Ngixn 编译安装设置开机自启

    设置nginx开机自启 #!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 ...

随机推荐

  1. Java开发中的各种乱码问题

    乱码问题 其实解决乱码问题,就是保证所有的编码格式一致,就不会出现问题. 控制台乱码 修改idea的控制台格式 修改 idea.exe.vmoptions和idea64.exe.vmoptions 在 ...

  2. 通过例子学习C++(三)最大公约数,并知其然

    本文是通过例子学习C++的第三篇,通过这个例子可以快速入门c++相关的语法. 题目要求:输入两个整数,求其大公约数. 解答方法一:两个数的最大公约数,是这两个数中的小数,或者是这2个数的公约数中的最大 ...

  3. mqtt实现跨平台跨应用通讯

    介绍 最近物联网应用一直很火,也打算做一些这方面的尝试,就边学边做在家花了2天时间做了一个简单demo,功能很简单,使用emq x 作为mqtt broker,用python写了一个定时抓取主机CPU ...

  4. 使用iview遇到问题记录总结

    1.iview设置日期不可用,设置开始开始时间早于结束时间 官网示例,设置今天之前不可选,但是不能识别thisdisabledDate (date) { return date && ...

  5. mongodb学习(三)——函数使用的小技巧

    $group 下 $sum 函数 Returns a sum of numerical values. Ignores non-numeric values 只能对数字求和,非数字没有作用 查询一段时 ...

  6. CSP-S rp++

    心无旁骛 认真思考 努力骗分(哈哈) I Love CSP! 反正像我这种大菜鸟也考不了多少 尽力打 本次考试期望 day1 100 70-100 30-? day2 100 ? ? 总:300-? ...

  7. vue 项目路由跳转后显示不同的title

    1.在router/index.js的每个路由中配置title 2.在项目中运行命令 npm install vue-wechat-title --save 安装插件(在 package.json文件 ...

  8. Python线程-死锁

    死锁产生的4个必要条件:    1.互斥:一个资源同一时刻只允许一个线程进行访问.    2.占有未释放:一个线程占有资源,且没有释放资源.    3.不可抢占:一个已经占有资源的线程无法抢占到其他线 ...

  9. double涉及大数据的时候会变成科学计数法

    double b=1.23456789128E8DecimalFormat df = new DecimalFormat("0.00");//精度自己控制保留几位小数点 Strin ...

  10. Frameworks.Entity.Core 4

    Project.Core\Frameworks.Entity.Core\Commons\ 1 AutoMapperExtension.cs AutoMapper扩展方法 2枚举类型扩展方法EnumEx ...