我爱python...
生工学院py大一实验报告
生工学院大二py实验报告2(sklearn)
外国语学院大二py实验报告1(NLP-nltk)
外国语学院py实验报告
外国语学院大二py实验报告4.1
外国语学院大二py实验报告4.2
豆瓣爬虫
ECUST - 2022年下半年大二上学期外语学院python期末考试真题题库(python与语言智能)
ECUST - 2022年下半年大二上学期外语学院python备考资料
c语言求解n的阶乘1
c语言随机生成数组并排序
c语言编写递归,求解阶乘之和
2025 openvpn入门:用openvpn+云服务器实现私有网络代理
本文档使用 MrDoc 发布
-
+
首页
2025 openvpn入门:用openvpn+云服务器实现私有网络代理
## 0.准备: 服务器端:任意品牌云服务器,centos7系统,开放安全组配置。 本地端:windows 10及以上,openvpngui。 ## 1.本地端: 安装openvpn GUI (OpenVPN 64 bit 2.6.12) https://www.npackd.org/p/openvpn64/2.6.12 安装完成后记录配置文件位置,一般选择默认安装,配置文件位置为:C:\Program Files\OpenVPN\config,后面需要使用。 ## 2.服务器端: ### 2.1 安装openvpn 连接云服务器,首先更新yum: ``` `yum -y update` ``` 安装依赖: ``` yum install -y lrzsz gcc-c++ openssl openssl-devel net-tools lzo lzo-devel pam pam-devel vim wget ``` 服务器端下载openvpn,建议切换目录为/root下载 ``` wget https://swupdate.openvpn.org/community/releases/openvpn-2.5.6.tar.gz ``` 解压: ``` tar -zxvf openvpn-2.5.6.tar.gz ``` 此时目录结构为: -root -openvpn-2.5.6 安装编译: ``` cd openvpn-2.5.6/ ``` ``` ./configure --prefix=/root/openvpn/ ``` 这里的安装位置可以自由指定,建议为/root/openvpn,需要记住,后面更改配置文件要用 ``` make install ``` 配置环境,将/root/openvpn替换为你的安装位置 ``` echo -e "PATH=$PATH:/root/openvpn/sbin" >/etc/profile.d/openvpn256.sh source /etc/profile openvpn --version ``` 2.2 创建CA机构与服务器证书 下载EasyRSA,建议切换目录为/root下载 ``` wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.8/EasyRSA-3.0.8.tgz ``` 解压 ``` tar -zxvf EasyRSA-3.0.8.tgz ``` 此时忽略下载压缩包文件后的目录结构为: -root -openvpn -openvpn-2.5.6 -EasyRSA-3.0.8 切换至EasyRSA-3.0.8目录下,签发证书的默认变量文件 ``` egrep -v "$|#" vars.example > vars ``` 配置环境文件 ``` echo -e "set_var EASYRSA_CA_EXPIRE 36500\nset_var EASYRSA_CERT_EXPIRE 3650" > vars ``` 初始化pki目录 ``` ./easyrsa init-pki ``` 创建ca文件 ``` ./easyrsa build-ca nopass ``` 你的服务器请求和私钥文件如下: 这里会提示命名,输入CA名称,可以任意填写,例如demo CA证书文件: `/root/EasyRSA-3.0.8/pki/ca.crt` CA密钥文件: `/root/EasyRSA-3.0.8/pki/private/ca.key` 创建服务器证书,生成服务器证书请求和密钥 ``` ./easyrsa gen-req openvpn_server nopass ``` 你的服务器请求和私钥文件如下: 服务器请求文件: `/root/EasyRSA-3.0.8/pki/reqs/openvpn_server.req` 服务器私钥文件: `/root/EasyRSA-3.0.8/pki/private/openvpn_server.key` 使用CA签署服务器证书请求 ``` ./easyrsa sign server openvpn_server ``` 在提示时输入yes确认签署。 生成的服务端证书文件位置: 服务端证书文件: `/root/EasyRSA-3.0.8/pki/issued/openvpn_server.crt` 创建交互密钥,生成Diffie-Hellman参数 ``` ./easyrsa gen-dh ``` 生成的交换密钥文件位置: 交换密钥文件:` /root/EasyRSA-3.0.8/pki/dh.pem` 启用安全增强配置,生成TLS认证密钥,安全增强文件为可选择项不是必选项,部分情况下后续操作会报错,可以尝试用root用户或sudo生成,可以先生成,但后面不进行使用。 ``` openvpn --genkey secret ta.key ``` 生成的安全增强文件位置: 安全增强文件: `/root/EasyRSA-3.0.8/ta.key` 通过这些步骤,你已经成功创建了服务端证书和必要的密钥文件,可以用于配置OpenVPN服务器。 ### 2.3 OpenVPN服务端配置 首先切换到2.1小节你安装openvpn的目录下,如“PATH=$PATH:/root/openvpn/sbin” ``` cd /root/openvpn ``` 创建日志文件 ``` mkdir logs ``` 创建用户 ``` groupadd openvpn useradd -M -s /sbin/nologin -g openvpn openvpn ``` 创建服务端配置文件config,后面配置文件的编写也可以本地编写后上传至服务器。 ``` vim server.conf ``` 按 i 进入插入模式,将以下代码写入,写入前注意: 1. 确认端口的开放及可用性,可以本地用powershell进行端口测试 2. 请认真核对每个证书文件的位置是否正确 3. 安全增强文件是可选项,非必选,后续可能由于ta.key的读写错误导致连接失败,这里可以选择把这一行注释。 4. 请检查日志和状态日志是否能正常读写 5. 由于openvpn更新,在openvpn服务启动中会弹出警告但不影响运行,可根据日志中的警告更改加密算法,压缩算法等。 6. 若有连接外网需求,可以设置更改DNS,全部流量通过VPN等。 ``` #端口 port 1194 #port 51820 #协议 proto tcp dev tun #ca证书文件 ca /root/EasyRSA-3.0.8/pki/ca.crt #服务端证书文件 cert /root/EasyRSA-3.0.8/pki/issued/openvpn_server.crt #服务端私钥文件 key /root/EasyRSA-3.0.8/pki/private/openvpn_server.key #交换秘钥文件 dh /root/EasyRSA-3.0.8/pki/dh.pem #安全增强文件,0是服务端,1是客户端,注意!!!后续连接失败可能由于ta.key的读写错误!!! tls-auth /root/EasyRSA-3.0.8/ta.key 0 #分配客户端IP的网段,不能和服务器一个网段,不能冲突 server 10.8.0.0 255.255.255.0 #运行通讯的内网路由,可以多条 push "route 192.168.0.0 255.255.255.0" #会话检测,每十秒测试一下,超过120秒没回应就认为对方down keepalive 10 120 #加密算法 cipher AES-256-CBC #压缩算法 compress lz4-v2 #推送客户端使用lz4-v2算法 push "compress lz4-v2" #最大客户端数 max-clients 100 #运行openvpn的用户和用户组 user openvpn group openvpn #状态日志 status /root/openvpn/logs/openvpn-status.log log-append /root/openvpn/logs/openvpn.log #日志级别 verb 3 mute 20 ``` 若使用vim,添加完成按”esc“ 再输入 :wq 退出 检查server.conf的位置为/root/openvpn,或你的openvpn安装位置 2.4 OPENVPN启动项配置 创建开机启动文件 ``` vim /etc/systemd/system/openvpn.service ``` 按 i 插入以下内容,注意: 1. 确保内容大小写正确 2. 确保openvpn可执行文件位置和配置文件位置正确,可执行文件的位置即你的openvpn安装位置加/sbin/openvpn,也可用which或where命令查询,配置文件位置即2.3小节添加的配置文件 ``` [Unit] Description=OpenVPN Server After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] ExecStart=/root/openvpn/sbin/openvpn --config /root/openvpn/server.conf ``` 启动项配置成功后,准备运行 加载系统服务 ``` systemctl daemon-reload ``` 开机启动 ``` systemctl enable openvpn.service ``` 启动服务 ``` systemctl start openvpn.service ``` 查看服务运行状态 ``` systemctl status openvpn.service -l ``` 若显示active runing等字样则运行成功,若显示failed字样则服务运行不成功: 1. 首先检查配2.3节配置文件中各密钥或证书文件的位置和权限是否正确,考虑是否注释ta.key,并确保日志和状态日志文件的权限。 2. 检查2.4节启动项配置文件是否正确。 3. 检查openvpn日志报错,注意选择最新日志时间。 4. 完成检查或更改后重新执行 加载系统服务, 启动服务, 查看服务运行状态 2.5 证书文件打包 创建一个新目录用于将客户端所需证书打包,建议在/root目录下 ``` mkdir openvpn_client ``` 复制所需文件到新建目录下 ``` cp -r /root/EasyRSA-3.0.8/ /root/openvpn_client/ ``` 此时目录结构为 ``` -root -openvpn-2.5.6 -EasyRSA-3.0.8 -openvpn -openvpn_client -EasyRSA-3.0.8 ``` 初始化PKI并生成客户端请求 ``` cd /root/openvpn_client/EasyRSA-3.0.8 ``` 或者切换到你的openvpn_client目录 ``` ./easyrsa init-pki ./easyrsa gen-req client_demo nopass ``` 生成的文件: 客户端请求文件: `/root/openvpn_client/EasyRSA-3.0.8/pki/reqs/client_demo.req` 客户端私钥文件: `/root/openvpn_client/EasyRSA-3.0.8/pki/private/client_demo.key` 回到EasyRSA-3.0.8初始目录,导入请求并签发证书 如上目录结构所示,回到root下的目录,而不是复制后的目录 ``` cd /root/EasyRSA-3.0.8 ./easyrsa import-req /root/openvpn_client/EasyRSA-3.0.8/pki/reqs/client_demo.req client_demo ./easyrsa sign client client_demo ``` 准备客户端配置文件,创建目录并复制所需文件, 可以在任意目录下复制,建议进入openvpn安装目录 ``` cd /root/openvpn mkdir -p client/client_demo cp /root/openvpn_client/EasyRSA-3.0.8/pki/private/client_demo.key /root/openvpn/client/client_demo cp /root/EasyRSA-3.0.8/pki/issued/client_demo.crt /root/openvpn/client/client_demo cp /root/openvpn_client/EasyRSA-3.0.8/ta.key /root/openvpn/client/client_demo cp /root/EasyRSA-3.0.8/pki/issued/openvpn_server.crt /root/openvpn/client/client_demo cp /root/openvpn_client/EasyRSA-3.0.8/pki/ca.crt /root/openvpn/client/client_demo ``` 注意这个ta.key,若在配置文件中选用ta.key别搞混了,在root下的EasyRSA-3.0.8和openvpn_client下的EasyRSA-3.0.8先后生成了两个ta.key,选择openvpn_client下的。 此时的目录结构为: -root -openvpn-2.5.6 -EasyRSA-3.0.8 -openvpn -client -openvpn_client -EasyRSA-3.0.8 编辑客户端配置文件 ``` vim /root/openvpn/client/client_demo/client.ovpn ``` 文件内容 ``` client dev tun proto tcp remote 你的云服务器ip 1194 resolv-retry infinite nobind ca ca.crt cert client_demo.crt key client_demo.key remote-cert-tls server tls-auth ta.key 1 cipher AES-256-CBC verb 3 compress lz4-v2 ``` 注意:拼写正确,注意端口是否开放,注意密钥和证书文件是否有权限,注意是否选用ta.key,若不选用,将此行删掉。 其他注意事项可参见2.3服务端配置注意事项。 打包客户端所需证书文件 ``` tar -zcvf client_demo.tar.gz /root/openvpn/client ``` 在本地使用scp或各种服务器连接软件将压缩包下载到本地 ``` scp root@你的云服务器IP:/root/openvpn-2.5.6/client/client_demo.tar.gz D:/ ``` 配置防火墙,再次检查端口开放情况。 ## 3.连接测试 将该压缩包文件解压,放置于第1节本地端的配置目录中,如 C:\Program Files\OpenVPN\config 客户端启动连接 若弹出分配ip为xxxxx,则为连接成功,若一直显示连接中则为连接失败。 若失败: 1. 在服务器端查看端口监听情况 2. 在服务器端查看服务运行情况 ``` systemctl status openvpn.service -l ``` 3. 在本地端使用powershell测试与服务器端端口的连接情况。 4. 查看日志。 若端口监听正常,服务运行正常,openvpn日志无报错,但服务器端口连接失败,则可能为端口或ip被墙,请参考下一篇博客,Obfsproxy - 混淆/加密端口数据。
zhy@@ldy
2025年3月22日 17:02
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码