这里是我之前在服务器上使用Pritunl搭建了一个vpn服务端,Pritunl是一款免费开源的VPN平台软件。它易于初级用户快速搭建VPN服务,所以这里使用了它。下面将介绍Linux下安装Pritunl并配置VPN以及OpenVPN客户端的安装和使用。
Linux下安装Pritunl
环境安装
创建MongoDB仓库文件:
sudo tee /etc/yum.repos.d/mongodb-org-6.0.repo << EOF
添加如下内容,然后回车:
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
EOF
创建pritunl仓库文件
sudo tee /etc/yum.repos.d/pritunl.repo << EOF
在下面添加如下内容,然后回车:(这里是 CentOS 8 )
[pritunl]
name=Pritunl Repository
baseurl=https://repo.pritunl.com/stable/yum/oraclelinux/8/
gpgcheck=1
enabled=1
EOF
从密钥服务器导入签名密钥
gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 7568D9BB55FF9E5287D586017AE645C0CF8E292A
gpg --armor --export 7568D9BB55FF9E5287D586017AE645C0CF8E292A > key.tmp; sudo rpm --import key.tmp; rm -f key.tmp
安装oracle-epel-release-el8
sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
开始安装
安装pritunl-openvpn,执行下列命令,然后等待安装完成
sudo yum --allowerasing install pritunl-openvpn
安装mongodb-org
sudo yum -y install pritunl mongodb-org
启动mongod pritunl
sudo systemctl start mongod pritunl
设置开机启动(尽量在配置所有服务且连接无误后再使用开机启动)
sudo systemctl enable mongod pritunl
关闭一下防火墙(如果开启了防火墙)
systemctl stop firewalld
登录测试
此时,Pritunl 已启动并正在运行,并且可以通过 https://server-ip
访问。运行以下命令获取将用于数据库身份验证的密钥:
sudo pritunl setup-key
将输出的内容复制到浏览器上setup-key输入框内,如下图
您将被重定向到一个登录页面,该页面将请求用户名和密码。使用以下命令从服务器获取凭据:
sudo pritunl default-password
登陆进去后,提示我们可以修改一下用户名和密码,这里只修改一下密码,Public Address 的值改成设备的局域网ip(注意是你设备的局域网ip,通过输入在设备上输入ip address 可以查看),其他参数不知道可以不设置,设置后点击save
使用pritunl配置vpn
登录pritunl -web端
https://server-ip
(之前自己设置的ip)
用户名:xxx 密码:xxx(之前自己设置的用户名和密码)
1.先创建一个组织
填写组织名称,点击 Add添加
2.添加好组织后,添加一个用户![](https://i-blog.csdnimg.cn/direct/f5045b0010c84d7ca576988269abe8af.png)
pin为密码 (客户端连接时需要)
3.添加一个服务 ,绑定组织(服务的端口不能被占用或者禁用)
绑定组织
配置好后点击Start Server就可以启动服务了。
linux下安装并运行OpenVPN客户端
安装 OpenVPN 客户端
sudo yum install epel-release # 如果需要,先安装 EPEL 存储库 sudo yum install openvpn
这将安装 OpenVPN 客户端及其相关依赖项。
获取 OpenVPN 配置文件
从 VPN 提供商获取配置文件: 从你的 VPN 服务提供商处获取 OpenVPN 配置文件(通常为 .ovpn 格式),其中包含服务器地址、端口、协议、证书等配置信息。
登录pritunl -web端
https://server-ip
(之前自己设置的ip)
用户名:xxx 密码:xxx(之前自己设置的用户名和密码)
点击users,选择用户,在用户右边有一个下载按钮,点击下载OpenVPN 配置文件(通常为 .ovpn 格式)后解压。
将配置文件复制到 CentOS 主机: 将从 VPN 服务提供商处获取的 .ovpn 配置文件复制到 CentOS 主机的适当位置。例如,将其放置在 /etc/openvpn/ 目录下。
可创建 /etc/openvpn/目录,然后将OpenVPN 配置文件上传到该目录下。
运行 OpenVPN 客户端
启动 OpenVPN 客户端: 使用以下命令启动 OpenVPN 客户端,并指定配置文件。
sudo openvpn /etc/openvpn/your_config_file.ovpn 这将启动 OpenVPN 客户端并尝试连接到配置文件中指定的 VPN 服务器。 输入凭据: 如果需要用户名和密码进行身份验证,OpenVPN 客户端会提示你输入。
(用户名和密码在pritunl-web端配置用户时需要设置)
验证连接
检查连接状态: 在连接过程中,OpenVPN 客户端会输出连接状态和日志信息。如果连接成功,你应该能够看到相关的成功消息。 验证网络连接: 连接成功后,可以尝试访问互联网或其他资源,确保流量通过 VPN 连接。
设置openvpn客户端开机自启
创建 systemd 服务单元文件
打开终端并使用 vi 编辑器创建一个新的 systemd 服务单元文件:
sudo vi /etc/systemd/system/openvpn-client.service 在 vi 编辑器中输入以下内容来定义服务单元:
[Unit] Description=OpenVPN Client After=network.target
[Service] Type=simple ExecStart=/usr/sbin/openvpn --config /path/to/your_config_file.ovpn
[Install] WantedBy=multi-user.target
Description:服务的描述信息。 After:定义服务启动的依赖关系,这里表示在网络启动后启动服务。 ExecStart:指定服务启动时执行的命令,包括调用 openvpn 客户端并指定配置文件路径。 将 your_config_file.ovpn 替换为你的 OpenVPN 配置文件的实际路径和文件名。 保存并关闭文件: 按 Esc 键退出编辑模式。 输入 :wq 并按 Enter 键保存并退出 vi 编辑器。
启用并启动 systemd 服务
启用新创建的 systemd 服务以使其在系统启动时自动启动:
sudo systemctl enable openvpn-client.service 启动服务以立即启动 OpenVPN 客户端:
sudo systemctl start openvpn-client.service
验证服务状态
检查服务状态以确保服务已成功启动并正在运行:
sudo systemctl status openvpn-client.service 如果服务正常运行,你应该会看到类似以下内容的输出: ● openvpn-client.service - OpenVPN Client Loaded: loaded (/etc/systemd/system/openvpn-client.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2022-05-04 10:00:00 UTC; 1min 30s ago Main PID: 12345 (openvpn) Tasks: 1 (limit: 512) CGroup: /system.slice/openvpn-client.service └─12345 /usr/sbin/openvpn --config /etc/openvpn/your_config_file.ovpn 服务状态显示为 active (running) 表示服务已成功启动并正在运行。
注意事项: 确保将 ExecStart 中的 /etc/openvpn/your_config_file.ovpn 替换为实际的 OpenVPN 配置文件路径。 在编辑和配置 systemd 服务时,请小心检查语法和路径,确保正确设置。 如果出现任何问题或服务无法正常启动,请检查日志以获取更多详细信息:journalctl -xe。