Centos使用cpolar内网穿透部署openvpn管理器pritunl

什么是Pritunl?

Pritunl是一款图形化的OpenVPN软件,提供一个友好的图形WebUI界面,对传统OpenVPN服务端与客户端复杂的安装配置流程进行了极大的简化,并且通过图形界面可以进行人员管理、参数配置,给予用户非常大的便捷性,适合openvpn入门配置。

什么是cpolar?

cpolar是一个非常强大的内网穿透工具,开发调试的必备利器。

cpolar可以将本地内网服务器的HTTP、HTTPS、TCP协议端口映射为公网地址端口,使得公网用户可以轻松访问您的内网服务器,无需部署至公网服务器。

本文旨在使用使用cpolar内网穿透部署openvpn管理器pritunl,提供给用户简洁明了的openvpn部署方案,免去传统openvpn繁杂的配置流程。

应用场景:与目标服务端处在公网级别上,需要访问目标服务端的内网资源

(举个栗子,我在家办公,但我要访问公司内网某台机的数据,这个时候就可以挂个vpn,以服务端的身份从公网进入公司内网)

服务端操作系统:centos 7(centos 8也可)

客户端操作系统:windows 安卓 ios

内网穿透:cpolar极点云 永久免费版套餐(1M带宽),或基础版套餐(2M带宽)

部署服务端:pritunl

部署客户端:openvpn(windows,android安卓)

第一步:注册cpolar账号

访问官网站点:https://www.cpolar.com

注册账号

第二步:下载cpolar并安装、配置内网穿透

1. cpolar 安装(国内使用)
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

或 cpolar短链接安装方式:(国外使用)

curl -sL https://git.io/cpolar | sudo bash
2. 查看版本号,有正常显示版本号即为安装成功
cpolar version
3. token认证

登录cpolar官网后台,点击左侧的验证,查看自己的认证token,

之后将token贴在命令行里

cpolar authtoken xxxxxxx
4.向系统添加服务
sudo systemctl enable cpolar

ShellCopy

5. 启动cpolar服务
sudo systemctl start cpolar

ShellCopy

6. 查看服务状态
sudo systemctl status cpolar

第三步:预留cpolar端口

套餐参考网址:价格 - cpolar 极点云

case1:如果您是一位永久免费版用户:

浏览器打开cpolar本地webui后台管理界面:

http://您的centos7系统ip端口:9200

输入您在第一步注册的账号密码

创建隧道,这里我为openvpn预留了19679端口(这个端口后面要修改)

这里可以看到我返回cpolar的22851端口,记住红框框住的tcp地址xxxx:22851

此时,本机的19679端口映射到cpolar服务器的22851端口

然而,pritunl要求本机端口和cpolar端口需要保持一致,那么我们进行接下来的操作:将本机端口19679改成22851

这样永久免费版的用户就创建好,接下来我们前往第四步安装pritunl客户端。(需要注意的是,永久免费版每24小时变换一次tcp地址,所以每隔24小时需要重新进行本文第三步的操作)

case2:如果您是以为基础版以上的套餐版本用户

首先,到官网后台预留固定的tcp地址cpolar - secure introspectable tunnels to localhost

这里我保留了21071端口

浏览器打开cpolar本地webui后台管理界面:

http://您的centos7系统ip端口:9200

输入您在第一步注册的账号密码

创建隧道,这里我为openvpn预留了21071端口

隧道创建成功。接下来我们前往第四步安装pritunl客户端。

第四步:安装配置pritunl服务端

step1:安装依赖

为了安装 Pritunl,我们需要将必要的存储库添加到 yum.

本文使用的是vim,您也可以选择使用nano编辑

添加MongoDB 存储库:
vim /etc/yum.repos.d/mongodb-org-3.4.repo

输入文件后是空白的。 将以下内容粘贴到:

[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

按esc, 输入:wq 回车保存 。

添加 Pritunl 存储库
vim /etc/yum.repos.d/pritunl.repo
[pritunl]
name=Pritunl Repository
baseurl=https://repo.pritunl.com/stable/yum/centos/7/
gpgcheck=1
enabled=1

按esc, 输入:wq 回车保存 。

安装 epel-release:

sudo yum -y install epel-release

禁用 SELinux:

vim /etc/selinux/config

打开后应该会显示以下内容:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing . 
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected, 
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

将这里的第6行 SELINUX=enforcing 更改为 SELINUX=disabled.

reboot重新启动服务器,然后重新登录服务器。

step2:安装pritunl

安装之前声明:因为涉及到国外的网站下载,可能下载速度慢。如遇因延迟高无法接收到请求而下载失败的情况,请在下载前先ping通。

需要添加一些密钥(存储库运行所必需的):

gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A
gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A > temp.tmp; sudo rpm --import temp.tmp

安装 Pritunl:

yum -y install pritunl mongodb-org

启动 Pritunl 和 MongoDB ,并使其开机自动运行:

systemctl start mongod pritunl
systemctl enable mongod pritunl

step3:服务端配置

运行命令产生密钥:

pritunl setup-key

记下运行上述命令所产生的密钥。

访问您的服务器:(请注意,这里是https://,不是http://)

https://YOUR_IP_ADDRESS

这里,pritunl的web-ui界面默认占用本机443 端口。如需修改端口,请进行以下操作(这里设置为本机8845端口)

pritunl set app.server_port 8845

改了端口后访问您的服务器:(请注意,这里是https://,不是http://

https://YOUR_IP_ADDRESS:8845

打开网页后,您将获得以下界面

按提示,在centos 7服务器输入

sudo pritunl default-password

记住所产生的账号和密码,并在浏览器web-ui中输入。

进入初始化设置界面。

上图的外网ip:

对于免费版用户:请查看本文第三步case1留下的tcp地址,我这里是1.tcp.vip.cpolar.cn:22851,

于是,我的外网ip填写1.tcp.vip.cpolar.cn

对于付费套餐用户:请查看本文第三步case2留下的tcp地址,我这里是1.tcp.cpolar.cn:21071,

于是,我的外网ip填写1.tcp.cpolar.cn

点击save。

后期可以更改,在setting更改

添加组织organization

添加用户user

添加openvpn服务器

对于输入的端口:

免费版用户:请查看本文第三步case1留下的tcp地址,我这里是1.tcp.vip.cpolar.cn:22851,

于是,我的端口填写22851

付费套餐用户:请查看本文第三步case2留下的tcp地址,我这里是1.tcp.cpolar.cn:21071

于是,我的端口填写21071

给openvpn服务器分配组织organization

启动服务器

第五步:安装配置pritunl客户端

从服务端web界面下载用户密钥文件 .ovpn

下载完成后对压缩包解压

下载openvpn客户端

windows用户:

openvpn官网下载Community Downloads | OpenVPN

选择好对应版本。我是x86_64的win10 系统,所以我选择第一个

如果无法下载,可以使用baiduwangpan:

链接:https://pan.baidu.com/s/1n7ETB_yJcmmjRfuqIz8b9Q?pwd=1234 提取码:1234

下载完以后安装打开。上传用户密钥文件 .ovpn

连接成功。

android用户:

使用baiduwangpan下载apk:

链接:https://pan.baidu.com/s/1n7ETB_yJcmmjRfuqIz8b9Q?pwd=1234 提取码:1234

下载完以后安装打开。上传用户密钥文件 .ovpn

连接成功。

ios下载:到appstore下载openvpn,国区帐号不行,要用美区账号下载。

下载完以后安装打开。上传用户密钥文件 .ovpn

连接成功。

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1. 安装OpenVPN 首先,安装OpenVPN及其依赖包: ``` yum install -y epel-release yum install -y openvpn easy-rsa ``` 2. 生成证书 创建一个目录用于存储证书: ``` mkdir /etc/openvpn/easy-rsa cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/ ``` 编辑文件 `/etc/openvpn/easy-rsa/vars`,修改以下变量: ``` export KEY_COUNTRY="CN" export KEY_PROVINCE="Beijing" export KEY_CITY="Beijing" export KEY_ORG="My Company" export KEY_EMAIL="admin@example.com" export KEY_OU="My Unit" ``` 切换到 `/etc/openvpn/easy-rsa/` 目录,执行以下命令: ``` ./easyrsa init-pki ./easyrsa build-ca ./easyrsa gen-dh ./easyrsa gen-req server nopass ./easyrsa sign-req server server ./easyrsa gen-req client nopass ./easyrsa sign-req client client ``` 以上命令中,第一行初始化PKI(public key infrastructure)目录,第二行生成CA(Certificate Authority)证书,第三行生成DH(Diffie-Hellman)参数,第四行生成服务器证书请求,第五行签署服务器证书请求,第六行生成客户端证书请求,第七行签署客户端证书请求。 3. 配置OpenVPN 创建配置文件 `/etc/openvpn/server.conf`,并添加以下内容: ``` port 1194 proto udp dev tun ca /etc/openvpn/easy-rsa/pki/ca.crt cert /etc/openvpn/easy-rsa/pki/issued/server.crt key /etc/openvpn/easy-rsa/pki/private/server.key dh /etc/openvpn/easy-rsa/pki/dh.pem server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 8.8.8.8" push "dhcp-option DNS 8.8.4.4" keepalive 10 120 cipher AES-256-CBC user nobody group nobody persist-key persist-tun status openvpn-status.log verb 3 ``` 以上配置文件中,`port` 指定OpenVPN监听的端口号,`proto` 指定使用的协议(UDP或TCP),`dev` 指定使用的虚拟网络设备,`ca`、`cert`、`key`、`dh` 分别指定证书和私钥文件的路径,`server` 指定虚拟IP地址池,`ifconfig-pool-persist` 指定分配的IP地址和客户端名称的持久化存储文件,`push` 指令用于将服务端配置推送给客户端,`keepalive` 指定心跳包的时间间隔和重试次数,`cipher` 指定加密算法,`user`、`group` 指定OpenVPN进程的运行用户和组,`persist-key`、`persist-tun` 分别指定持久化存储密钥和虚拟网络设备,`status` 指定状态日志文件,`verb` 指定日志输出级别。 4. 启动OpenVPN 启动OpenVPN服务: ``` systemctl start openvpn@server ``` 查看服务状态: ``` systemctl status openvpn@server ``` 如果服务正常运行,可以通过以下命令查看OpenVPN服务器的IP地址: ``` ip addr show tun0 ``` 5. 客户端配置 在客户端电脑上安装OpenVPN客户端,下载证书和配置文件: ``` scp root@<server_ip>:/etc/openvpn/easy-rsa/pki/ca.crt <destination_folder> scp root@<server_ip>:/etc/openvpn/easy-rsa/pki/issued/client.crt <destination_folder> scp root@<server_ip>:/etc/openvpn/easy-rsa/pki/private/client.key <destination_folder> scp root@<server_ip>:/etc/openvpn/client.ovpn <destination_folder> ``` 编辑文件 `client.ovpn`,将以下内容替换为实际值: ``` remote <server_ip> 1194 proto udp dev tun nobind persist-key persist-tun ca ca.crt cert client.crt key client.key cipher AES-256-CBC ``` 将 `ca.crt`、`client.crt` 和 `client.key` 移动到OpenVPN客户端的配置目录,例如 `/etc/openvpn/client/`。 启动OpenVPN客户端: ``` openvpn --config /etc/openvpn/client/client.ovpn ``` 如果连接成功,可以通过以下命令查看客户端的IP地址: ``` ip addr show tun0 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值