centos 6.5 安装openvpn
内网IP:10.1××.×.×
外网IP:119.195.xxx.xxx
1、安装前准备
# 关闭selinux
setenforce 0
sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config
# 安装openssl和lzo,lzo用于压缩通讯数据加快传输速度
yum -y install openssl openssl-devel
yum -y install lzo
# 安装epel源
rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
sed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum.repos.d/epel.repo
2、安装及配置OpenVPN和easy-rsa
# 安装openvpn和easy-rsa
yum -y install openvpn easy-rsa
# 修改vars文件
cd /usr/share/easy-rsa/2.0/
vim vars
# 修改注册信息,比如公司地址、公司名称、部门名称等。××× 下面的随便填 ×××××
export KEY_COUNTRY="CN"
export KEY_PROVINCE="Shandong"
export KEY_CITY="Qingdao"
export KEY_ORG="MyOrganization"
export KEY_EMAIL="me@myhost.mydomain"
export KEY_OU="MyOrganizationalUnit"
# 初始化环境变量
source vars
# 清除keys目录下所有与证书相关的文件
# 下面步骤生成的证书和密钥都在/usr/share/easy-rsa/2.0/keys目录里
./clean-all
# 生成根证书ca.crt和根密钥ca.key(一路按回车即可)
./build-ca
# 为服务端生成证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次)
./build-key-server server
# 每一个登陆的VPN客户端需要有一个证书,每个证书在同一时刻只能供一个客户端连接,下面建立2份
# 为客户端生成证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次)
./build-key jack
./build-key client2
# 创建迪菲·赫尔曼密钥,会生成dh2048.pem文件(生成过程比较慢,在此期间不要去中断它)
./build-dh
# 生成ta.key文件(防DDos攻击、UDP淹没等恶意攻击)
openvpn --genkey --secret keys/ta.key
3、创建服务器端配置文件
# 在openvpn的配置目录下新建一个keys目录
mkdir /etc/openvpn/keys
# 将需要用到的openvpn证书和密钥复制一份到刚创建好的keys目录中
cp /usr/share/easy-rsa/2.0/keys/{ca.crt,server.{crt,key},dh2048.pem,ta.key} /etc/openvpn/keys/
# 复制一份服务器端配置文件模板server.conf到/etc/openvpn/
cp /usr/share/doc/openvpn-2.3.8/sample/sample-config-files/server.conf /etc/openvpn/
################ 查看server.conf里的配置参数 grep '^[^#;]' /etc/openvpn/server.conf
# 编辑server.conf===========server.conf=============================
vim /etc/openvpn/server.conf
port 1194 # 默认端口,可以修改
# 改成tcp,默认使用udp,如果使用HTTP Proxy,必须使用tcp协议
proto tcp
dev tun
# 路径前面加keys,全路径为/etc/openvpn/keys/ca.crt
ca keys/ca.crt
cert keys/server.crt
key keys/server.key # This file should be kept secret
dh keys/dh2048.pem
# 默认虚拟局域网网段,不要和本地、服务器上的的局域网冲突即可 #
server 10.9.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
# ,读者应该根据自身实际情况进行修改
push "route 10.0.0.0 255.0.0.0"
# 可以让客户端之间相互访问直接通过openvpn程序转发,根据需要设置
client-to-client
# 如果客户端都使用相同的证书和密钥连接VPN,一定要打开这个选项,否则每个证书只允许一个人连接VPN
duplicate-cn
在使用OpenVPN时,有的时候需要使用VPN的DNS,有的时候却需要使用本地网络的DNS。OpenVPN可以在配置中支持DNS设置,如果是server来配置客户端DNS, 需要在配置文件中加入:
push “dhcp-option DNS 202.106.0.20″
push “dhcp-option DNS 8.8.8.8″
keepalive 10 120
tls-auth keys/ta.key 0 # This file is secret
comp-lzo
persist-key
persist-tun
# OpenVPN的状态日志,默认为/etc/openvpn/openvpn-status.log
status openvpn-status.log
# OpenVPN的运行日志,默认为/etc/openvpn/openvpn.log
log-append openvpn.log
# 改成verb 5可以多查看一些调试信息
verb 5
4、配置内核和防火墙,启动服务
# 开启路由转发功能
sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf (其实是在/etc/sysctl.conf 里加一句:net.ipv4.ip_forward = 1)
sysctl -p
# 配置防火墙,别忘记保存
iptables -I INPUT -p tcp --dport 1194 -m comment --comment "openvpn" -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o eth0 -j MASQUERADE
/etc/init.d/iptables save
/etc/init.d/iptables restart
再用 iptables -L 看看
# 启动openvpn并设置为开机启动
service openvpn start
chkconfig openvpn on
5、创建客户端配置文件( linux ) ================================================
# 复制一份client.conf模板命名为client.ovpn
cp /usr/share/doc/openvpn-2.3.8/sample/sample-config-files/client.conf client.ovpn
# 编辑client.ovpn
vim client.ovpn
client
dev tun
# 改为tcp
proto tcp
# OpenVPN服务器的外网IP和端口
remote vpn.domain.com 1194 #vpn服务器外网ip
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
# client1的证书
cert client1.crt
# client1的密钥
key client1.key
# 去掉前面的注释
tls-auth ta.key 1
comp-lzo
verb 3
up /etc/openvpn/update-resolv-conf #下面这两句 可以 让 服务器推送的 DNS 地址到本地的/etc/resolv.conf ,当断开连接时,又会自动从 /etc/resolv.conf 清除
down /etc/openvpn/update-resolv-conf #
-------------------------------------------------------
库户端 需要复制 client1.crt , client1.key , ca.crt , client.conf ( client.ovpn for windows )
到 /etc/openvpn/ 目录下 ,然后执行:
$ sudo openvpn --config client.conf --script-security 2 #启动openvpn 客户端
u Apr 14 11:36:04 2016 ERROR: Linux route add command failed: external program exited with error status: 2
Thu Apr 14 11:36:04 2016 Initialization Sequence Completed
看到上面的就说明成功连接到openvpn 服务器了,就可以上谷歌了 ,,上面的ERROR 忽略就行。
===============下面是windows 客户端配置=======================
# 编辑client.ovpn
vim client.ovpn
client
dev tun
# 改为tcp
proto tcp
# OpenVPN服务器的外网IP和端口
remote vpn.domain.com 1194 #vpn服务器外网ip
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
# client1的证书
cert client1.crt
# client1的密钥
key client1.key
# 去掉前面的注释
tls-auth ta.key 1
comp-lzo
verb 3
dhcp-option DNS 202.106.0.20 # 这两个可以解析域名,浏览不了网页
dhcp-option SNS 8.8.8.8
--------------------------------------the following are question:solution --------------------------------------
问题:MULTI: bad source address from client [192.168.1.224], packet dropped
解决方法:
在openvpn servers 端 加入如下iptables 规则:
# iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o eth0 -j MASQUERADE
# /etc/init.d/iptables save # 保存 规则
# /etc/init.d/iptables restart 重启iptables
2.---------------Openvpn – MULTI: bad source address from client –
-----------------solution:(add the following two line into server.conf,and restart openvpn)
client-config-dir ccd
route 192.168.1.0 255.255.255.0
××××××××××××××××××××××××××××××××××××
-
分享到:
相关推荐
#### 二、准备工作与环境搭建 **1. 环境设置** - **AD域服务器**: Windows Server 2003 SP2 - 名称: ad1 - IP地址: 192.168.1.241 - DNS服务器: 192.168.1.241 - 域名: Rainbird.net - **Linux客户端**: ...
内容概要:本文详细介绍了基于.NET5开发的一个仓储管理系统,涵盖了多个关键技术的应用。首先,在数据访问方面,使用了EF Core进行ORM操作,并引入了全局逻辑删除和多租户过滤等功能。其次,权限管理部分采用Policy机制实现动态按钮权限控制,权限数据存储于Redis中,确保高效响应。再次,消息队列方面,通过RabbitMQ实现库存变动后的异步通知,保障库存数据的一致性和可靠性。此外,系统还支持多租户模式,能够根据不同租户的需求灵活切换数据库连接。前端则选择了LayUI作为主要框架,配合WebSocket实现库存变化的实时推送。部署环节涉及Ocelot网关、Consul服务注册以及Docker容器化部署,确保系统的高可用性和扩展性。 适合人群:具有一定.NET开发经验的研发人员和技术爱好者。 使用场景及目标:适用于希望深入了解.NET5企业级应用开发的技术人员,尤其是对仓储管理系统感兴趣的人群。通过学习本文,读者可以掌握如何将多种现代技术集成到一个完整的解决方案中,从而提高开发效率和系统性能。 其他说明:文中提供了大量实际代码片段,帮助读者更好地理解和实践相关技术。同时,作者分享了许
内容概要:本文档是中国联通发布的关于自智网络技术白皮书,详细介绍了云光和云网专线场景下的自智网络技术。主要内容涵盖行业洞察、中国联通专线自智网络概述、云光和云网专线自智网络的技术特征、分级标准及其关键技术,以及专线自智网络的分级测评和认证体系。文中强调了自智网络在提升网络智能化、自动化方面的关键作用,特别是在云光和云网专线场景的应用,旨在为行业客户提供高品质的专线服务,促进网络向融合化、智能化、绿色化发展。 适合人群:适用于通信行业的技术人员、研究人员、管理人员,尤其是关注自智网络技术及其应用的专业人士。 使用场景及目标:①帮助行业客户理解自智网络技术在云光和云网专线场景中的应用;②为运营商提供技术参考,提升网络智能化水平;③促进产业链上下游协同发展,推动自智网络的商业化应用。 其他说明:本文档不仅提供了详细的理论和技术解析,还结合了中国联通的实际案例,展示了自智网络在实际应用中的成效和发展前景。
内容概要:本文详细介绍了三菱Q系列PLC在液晶电视导光板加工中的应用案例。主要内容涵盖Q系列PLC的使用、QD75MH定位模块和SSNET总线伺服的应用、伺服控制、触摸屏程序设计以及温控器的使用。文中不仅提供了详细的硬件配置和软件编程实例,还深入解析了各个组件的工作原理及其协同工作的机制。此外,文章还分享了一些实际操作中的经验和常见问题解决方案,如伺服控制中的加减速曲线优化、温控器的Modbus通讯调试、以及总线通讯中的丢包问题处理等。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对三菱Q系列PLC和伺服控制系统感兴趣的读者。 使用场景及目标:适用于液晶电视导光板加工生产线的设计、安装、调试和维护。目标是帮助技术人员理解和掌握三菱Q系列PLC及相关组件的应用,提升系统的稳定性和精度。 其他说明:文章通过具体的代码示例和实际操作经验,展示了如何利用三菱Q系列PLC实现高效、稳定的工业自动化控制。对于希望深入了解工业自动化控制技术和三菱PLC编程的读者来说,是一份非常有价值的参考资料。
# 基于Go语言的用户积分系统 PointSystem ## 项目简介 本项目是一个基于Go语言的用户积分系统,旨在实现常见的用户积分功能,包括积分的获取、扣除和查询等。该系统适用于各种需要用户积分的场景,如购物网站、社区论坛等。 ## 项目的主要特性和功能 1. 用户积分管理系统能够记录用户的积分变化,包括增加积分和减少积分。 2. 积分查询用户可以查询自己的总积分。 3. 积分明细查询用户可以查询自己的积分变化明细,包括积分增加和扣除的记录。 4. 日志记录系统能够记录操作日志,方便问题追踪和审计。 ## 安装使用步骤 1. 确保已安装Go语言环境,并设置好环境变量。 2. 下载项目的源代码文件,解压到本地目录。 3. 在项目根目录下,找到并打开文件 confconf.go,根据实际需求修改数据库连接配置信息(mysqlHost、mysqlUsername、mysqlPassword、mysqlDb 和 LogPath)。
# 基于Arduino的SIMONTRONI游戏 ## 项目简介 SIMONTRONI是一个基于Arduino的交互式记忆游戏。玩家需要记住并重复由LED灯显示的随机序列。随着游戏的进行,序列的长度会逐渐增加,挑战玩家的记忆能力。该项目还包括一个音量调节功能,通过旋钮调节游戏音量。 ## 项目的主要特性和功能 1. 记忆挑战玩家需要记住并重复LED灯显示的序列。 2. 多级游戏随着游戏的进行,序列的长度会逐渐增加,增加游戏的难度。 3. 音量调节通过旋钮调节游戏音量,满足不同玩家的需求。 4. 硬件交互使用Arduino Uno、LED灯、按钮和电阻等硬件组件,实现游戏的物理交互。 ## 安装使用步骤 1. 准备硬件 1个Arduino Uno 4个LED灯 4个按钮 1个蜂鸣器 1个5k电位器 若干电阻(220和330) 1个面包板和若干导线 2. 下载代码
1、文件说明: Centos8操作系统sqlite-devel-3.26.0-15.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf sqlite-devel-3.26.0-15.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm
# 基于Python的迷宫探索强化学习项目 ## 项目简介 本项目是一个基于强化学习算法的迷宫探索任务。它使用Python编程语言和多种强化学习算法(如QLearning、Sarsa、Sarsa Lambda等)来训练智能体,使其在随机变化的迷宫环境中找到最短路径到达目标点。 ## 项目的主要特性和功能 1. 迷宫环境模拟项目使用CSV文件定义迷宫地图,模拟二维迷宫环境,包括障碍物、悬崖和终点等。 2. 强化学习算法实现实现了QLearning、Sarsa、Sarsa Lambda等强化学习算法,用于智能体的决策过程。 3. 奖励函数设计设计了多种奖励函数,包括距离奖励、危险区域惩罚、防止终点区域“守株待兔”现象和重复路径惩罚等,以引导智能体更好地探索迷宫。 4. 经验回放策略采用了经验回放策略,以提高数据利用效率并稳定学习过程。 5. 可视化界面提供了基于pygame库的可视化界面,用于展示迷宫的布局、智能体的移动和奖励曲线等。
Java项目课程设计,包含源码+数据库+论文
# 基于Vue框架的商家管理系统 ## 项目简介 本项目是一个基于Vue框架开发的前端项目,主要实现了商家展示、搜索、购物车管理、用户评价等功能。通过本项目的学习和实践,可以深入理解Vue框架的核心思想和相关技术要点,包括组件化开发、异步数据处理、动态数据展示等。 ## 项目的主要特性和功能 1. 异步数据处理通过Vuex管理应用状态,实现前后端数据交互和异步数据处理。包括登录注册功能、商家信息的展示和搜索功能等。 2. 组件化开发项目采用组件化开发模式,将页面拆分成多个独立组件,提高代码复用性和可维护性。 3. 动态数据展示利用Vue的响应式机制,实现动态数据展示,包括轮播图、商家列表等。 4. 交互体验优化通过使用betterscroll插件实现页面的滑动效果,提升用户体验。同时,使用vuelazyload插件实现图片懒加载,优化页面加载速度。 ## 安装使用步骤 2. 安装依赖在项目根目录下运行npm install命令,安装项目所需依赖。
内容概要:本文介绍了TeslaModbusSCADA安卓组态软件的功能特点及其应用场景。该软件通过Wi-Fi和Modbus协议实现了对工业生产设备和农业设施的数据采集与控制。其主要优点包括全中文界面、简易组态、丰富的控件库、无数据点限制以及良好的通信稳定性。文中详细展示了如何快速搭建监控界面,并通过多个实例说明了其在实际项目中的应用效果。 适用人群:适用于工农业生产、物联网控制领域的工程师和技术爱好者,尤其是希望简化数据采集和设备控制流程的用户。 使用场景及目标:①用于构建工业生产线上设备的状态监测与控制系统;②应用于农业大棚、养殖厂等场所的环境参数监控;③提供灵活易用的界面设计工具,降低开发门槛,提高工作效率。 其他说明:尽管存在一些局限性(如暂时不支持OPC UA协议),但未来版本计划增加更多功能,进一步拓展其应用范围。
JAVA编写的socket服务,可以实现以多种方式的通信 接收socket客户端服务端发送的信息,发送给socket 服务端客户的顶端信息
docker
内容概要:本文详细探讨了国产AI大模型DeepSeek的技术水平及其在全球范围内的影响力。首先介绍了DeepSeek的技术背景与核心优势,强调其在自然语言处理、计算机视觉、强化学习和多模态融合等方面的表现。其次,解析了DeepSeek的核心技术,包括自然语言处理、计算机视觉、强化学习和多模态融合的具体应用。接着,阐述了DeepSeek的架构设计与性能优化措施,展示了其在电商、医疗、教育等多个领域的实际应用案例。最后,展望了DeepSeek的未来发展趋势,如多模态融合、实时视频分析、三维视觉与增强现实、模型轻量化、联邦学习以及AI伦理与可持续发展。 适合人群:对人工智能技术感兴趣的科研人员、工程师、产品经理和技术爱好者。 使用场景及目标:适用于希望深入了解国产AI大模型技术水平及其应用前景的人士,目标是掌握DeepSeek的技术特点、应用场景和发展方向。 其他说明:本文不仅介绍了DeepSeek的技术优势,还通过具体案例展示了其在不同行业中的实际应用效果,有助于读者全面了解DeepSeek的潜力和价值。
# 基于 Vue 3 + Vite 和 TensorFlow 的视力测试图形识别游戏系统 ## 项目简介 本项目是一个集图像识别与游戏化视力测试为一体的系统。借助 Vue 3 + Vite 搭建项目框架,运用 TensorFlow 完成图像识别功能,同时利用 PIXI 框架绘制 2D 游戏界面。用户在游戏过程中,通过对特定字母图像的识别来进行视力测试。 ## 项目的主要特性和功能 1. 前端框架采用 Vue 3 + Vite 搭建,具备高效的模块打包和快速的服务器启动能力,确保开发和使用的流畅性。 2. 图像识别借助 TensorFlow 的算法模型,实现精确的图像识别功能,为游戏的准确性提供保障。 3. 游戏绘制使用 PIXI 2D canvas 框架绘制游戏界面,包含多个界面布局,如开始界面、介绍界面和主界面,且对界面元素进行了封装,方便维护和复用。
# 基于Vue框架的后台管理模板 ## 项目简介 本项目是一个基于Vue框架的后台管理模板,精简版是从优秀的vuepureadmin项目中提炼出的主体功能,更适合实际项目开发。该项目拥有高效的代码结构、丰富的功能组件和友好的用户体验设计。通过全局引入elementplus,打包后的文件大小仍然低于2.3MB,并且通过brotli压缩和cdn替换本地库模式,打包大小可进一步降低到低于350KB。项目还提供了官方快速开发文档,方便开发者快速上手和使用。 ## 项目的主要特性和功能 1. 环境要求项目需要node版本不小于16,pnpm版本不小于6。为优化npm包管理工具的兼容性,该项目推荐使用pnpm作为包管理工具。 2. Vue版本项目推荐使用Vue3.3 Composition API进行组件开发,更加符合现代前端开发趋势。
# 基于Python的微信智能聊天机器人 ## 项目简介 本项目是一个基于Python的微信智能聊天机器人,旨在通过ChatGPT的强大对话和信息整合能力,将微信打造成一个智能机器人。它支持多端部署,包括个人微信、微信公众号和企业微信应用,能够进行智能对话、语音识别、图片生成等多种功能,并且支持丰富的插件扩展。 ## 主要特性和功能 多端部署支持个人微信、微信公众号和企业微信应用等多种部署方式。 智能对话支持私聊及群聊的消息智能回复,支持多轮会话上下文记忆,支持GPT3、GPT3.5、GPT4模型。 语音识别可识别语音消息,通过文字或语音回复,支持Azure、Baidu、Google、OpenAI等多种语音模型。 图片生成支持图片生成和图生图(如照片修复),可选择DellE、Stable Diffusion、Replicate模型。 丰富插件支持个性化插件扩展,已实现多角色切换、文字冒险、敏感词过滤、聊天记录总结等插件。
内容概要:本文详细介绍了基于B/S架构,采用PHP、CSS、JavaScript和MySQL技术栈构建的图书馆管理系统。首先阐述了系统的架构和技术亮点,如B/S架构的优势、PHP的灵活性、CSS的美化能力以及JavaScript的交互性和MySQL的数据管理功能。接着具体展示了系统的功能模块,包括用户注册登录、管理员权限管理、图书管理、借还书操作等。文中还特别强调了安全性措施,如验证码机制、会话管理和密码哈希等。最后给出了项目的搭建方法和一些优化建议,如使用phpstudy和navicat工具,以及数据库性能优化等。 适合人群:具有一定编程基础的技术爱好者、Web开发者、图书馆管理人员。 使用场景及目标:适用于希望快速搭建并部署图书馆管理系统的个人或机构,旨在提高图书馆管理效率,同时提供一个完整的Web开发案例供学习和参考。 其他说明:文中提供的代码片段和搭建指南有助于理解和实践,同时也指出了一些潜在的安全隐患和改进方向,如避免SQL注入、使用预处理语句等。
IMG_7222.HEIC
# 基于Python3的机器学习示例项目 ## 项目简介 本项目是一个基于Python3的机器学习示例项目,旨在通过多个Python脚本展示如何使用Python和sklearn库进行机器学习。项目涵盖了从简单的线性回归和分类,到更复杂的神经网络和聚类分析,每个脚本都附有详细的代码功能解释,帮助读者理解每个脚本的目的和工作原理。 ## 项目的主要特性和功能 线性回归通过简单的线性回归模型拟合数据,并可视化结果。 分类问题使用K最近邻(KNN)分类器对模拟数据集进行分类,并可视化分类结果。 神经网络使用多层感知器(MLP)神经网络对红酒数据集进行分类,并可视化分类边界。 聚类分析使用DBSCAN和KMeans算法对数据进行聚类,并可视化结果。 数据可视化使用matplotlib库对数据和模型结果进行可视化。 ## 安装使用步骤 1. 安装Python和sklearn库