注意:这里所说的上网并不是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. MD5:js,java,C#三种语言加密结果不同解决办法

    最近遇到前端js MD5加密与后端C#与Java MD5加密结果不一致的问题,所以写个关于此问题的解决办法 前端js引用的md5类库,类库地址:https://blueimp.github.io/Ja ...

  2. 【一起学源码-微服务】Eureka+Ribbon+Feign阶段性总结

    前言 想说的话 这里已经梳理完Eureka.Ribbon.Feign三大组件的基本原理了,今天做一个总结,里面会有一个比较详细的调用关系流程图. 说明 原创不易,如若转载 请标明来源! 博客地址:一枝 ...

  3. 执行sql中的 函数,function

    CREATE FUNCTION [dbo].[GetWeight] ( ,)--重量/体积重 ) ,) as begin --顺丰重量/体积重以0.5kg为单位向上取值(小数点后两位4舍5入) ,) ...

  4. Docker学习(三)认识Docker和常用命令

    Docker学习(三)认识Docker和常用命令 Docker体系结构 docker服务端,作为服务的提供方,核心进程 docker daemon,所有docker命令都是通过这个进程完成的 REST ...

  5. java 自增/减运算符

    注意:python中没有 一.自增运算符 1.单独使用时,目的获取变量的值,前++和后++没有区别,使用后值都会递增一. 2.混合使用时,才有区别.前++,先加后用.后++,先用后加 二.自减运算符 ...

  6. make_safe

    from django.utils.safestring import mark_safe mark_safe('<input type="checkbox" id=&quo ...

  7. Serilog高级玩法之用Serilog记录所选终结点附加属性

    这是该系列的第二篇文章:在ASP.NET Core 3.0中使用Serilog.AspNetCore. 第1部分-使用Serilog RequestLogging来简化ASP.NET Core的日志输 ...

  8. 第二阶段冲刺个人任务——seven

    今日任务: 整体运行测试上传到公网上的程序. 昨日成果: 搭建网络服务器,上传数据库及程序.

  9. if循环后打印数据竖行输出和横排输出

    代码A如下: def func(*kargs):     return kargs, l = func(5,3,4,5,6) for i in l:          print (i) 打印结果: ...

  10. URL各部分详解

    就以下面这个URL为例,介绍下普通URL的各部分组成 http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&pa ...