前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Lighthouse搭建OpenVPN轻松访问内网服务

使用Lighthouse搭建OpenVPN轻松访问内网服务

原创
作者头像
小宇-xiaoyu
发布2023-11-28 15:00:54
2.4K0
发布2023-11-28 15:00:54
举报
文章被收录于专栏:玩转Lighthouse.

OpenVPN是一种功能强大的开源虚拟私有网络(VPN)解决方案,可以在多种应用场景下使用。以下是几个常见的OpenVPN应用场景:

  1. 远程访问和远程办公:OpenVPN可以用于建立安全的远程连接,使远程用户能够安全地访问内部资源、文件共享和应用程序,从而实现远程办公和远程访问。
  2. 跨地域网络连接:OpenVPN可用于连接位于不同地理位置的局域网(LAN),通过隧道方式将不同的网络链接起来,构建一个安全的虚拟私有网络。这对于跨越多个办公室、分支机构或数据中心的组织非常有用。 本文将教大家如何使用腾讯云轻量应用服务器搭建OpenVPN服务端以及客户端的配置

一、安装OpenVPN服务端

作者选择的是CentOS7.6镜像,在搭建之前 请前往轻量应用服务器的控制台配置防火墙,将1194端口的TCP协议放通

1.安装软件源

代码语言:javascript
复制
sudo yum install epel-release

2.安装openvpn,easy-rsa

代码语言:javascript
复制
sudo yum install -y openvpn easy-rsa

3.创建目录 生成密钥

代码语言:javascript
复制
sudo mkdir /etc/openvpn/easy-rsa
sudo cp -ai /usr/share/easy-rsa/3/* /etc/openvpn/easy-rsa/
cd /etc/openvpn/easy-rsa
sudo ./easyrsa init-pki
sudo ./easyrsa build-ca nopass
sudo ./easyrsa build-server-full server nopass
sudo ./easyrsa gen-dh
sudo cp /etc/openvpn/easy-rsa/pki/ca.crt /etc/openvpn/
sudo cp /etc/openvpn/easy-rsa/pki/issued/server.crt /etc/openvpn/
sudo cp /etc/openvpn/easy-rsa/pki/private/server.key /etc/openvpn/
sudo cp /etc/openvpn/easy-rsa/pki/dh.pem /etc/openvpn/
​

4.创建配置文件

代码语言:javascript
复制
vim /etc/openvpn/server.conf
代码语言:javascript
复制
port 1194                                    #端口
proto tcp                                    #协议
dev tun                                      #采用路由隧道模式
ca ca.crt                                    #ca证书的位置
cert server.crt                              #服务端公钥的位置
key server.key                               #服务端私钥的位置
dh dh.pem                                    #证书校验算法  
server 10.8.0.0 255.255.255.0                #给客户端分配的地址池
​
push "route 10.70.0.0 255.255.0.0"           #允许访问的内网段
​
ifconfig-pool-persist ipp.txt                #地址池记录文件位置,未来让openvpn客户端固定ip地址使用的
keepalive 10 120                             #存活时间,10秒ping一次,120秒如果未收到响应则视为短线
max-clients 100                              #最多允许100个客户端连接
status openvpn-status.log                    #日志位置,记录openvpn状态
log /var/log/openvpn.log                     #openvpn日志记录位置
verb 3                                       #openvpn版本
client-to-client                             #允许客户端与客户端之间通信
persist-key                                  #通过keepalive检测超时后,重新启动VPN,不重新读取
persist-tun                                  #检测超时后,重新启动VPN,一直保持tun是linkup的,否则网络会先linkdown然后再linkup
duplicate-cn                                 #客户端密钥(证书和私钥)是否可以重复
comp-lzo                                     #启动lzo数据压缩格式
client-config-dir /etc/openvpn/ccd           #客户端配置文件目录
​

启动服务端

代码语言:javascript
复制
sudo systemctl start openvpn@server
设置开机自启
sudo systemctl enable openvpn@server

服务端配置完成

二、客户端配置

1.Linux客户端配置

(1)服务端生成客户端的证书
代码语言:javascript
复制
cd /etc/openvpn/easy-rsa
​
./easyrsa build-client-full client_name pwd
​

之后将ca.crt client_name.crt client_name.key都下载下来

文件位置

ca.crt >> /etc/openvpn/easy-rsa/pki

client_name.crt >> /etc/openvpn/easy-rsa/pki/issued

client_name.key >> /etc/openvpn/easy-rsa/pki/private

(2)下载客户端
代码语言:javascript
复制
sudo yum install epel-release
sudo yum -y install openvpn
(3)编辑客户端配置文件
代码语言:javascript
复制
vim /etc/openvpn/client.conf
代码语言:javascript
复制
client
dev tun
proto tcp
remote 服务端ip 1194
resolv-retry infinite
nobind
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client_name.crt
key /etc/openvpn/client_name.key
verb 3
persist-key
comp-lzo

将ca.crt client_name.crt client_name.key上传至/etc/openvpn/

(4)启动客户端
代码语言:javascript
复制
systemctl start openvpn@client
(5)若要使用这台机器作跳板访问内网服务(可选)

1)添加以下iptables规则,其中ens160需要根据实际情况(ifconfig所显示的能访问到内网服务的网卡)进行修改

代码语言:javascript
复制
iptables -t nat -A POSTROUTING -o ens160 -j MASQUERADE
iptables -A FORWARD -i tun0 -o ens160 -j ACCEPT
iptables -A FORWARD -i ens160 -o tun0 -j ACCEPT

2)开启IP转发功能

代码语言:javascript
复制
vim /etc/sysctl.conf

net.ipv4.ip_forward=设为1

3)在服务端openvpn目录下创建ccd目录

代码语言:javascript
复制
mkdir /etc/openvpn/ccd

4)创建一个名为客户端名称的文件

代码语言:javascript
复制
vim /etc/openvpn/ccd/client_name
代码语言:javascript
复制
ifconfig-push 10.8.0.2 255.255.255.0        #固定IP
iroute 10.70.0.0 255.255.0.0                #若访问10.70.0.0/16 网络路由到该客户端。

5)同时在服务端配置文件中加入

代码语言:javascript
复制
push "route 10.70.0.0 255.255.0.0"          #允许访问的内网段

6)重启服务端

代码语言:javascript
复制
sudo systemctl restart openvpn@server

7)重启客户端

代码语言:javascript
复制
systemctl restart openvpn@client

2.Windows客户端配置

(1)下载Windows客户端

官方地址https://openvpn.net/client/client-connect-vpn-for-windows/

(2)服务端生成客户端的证书
代码语言:javascript
复制
cd /etc/openvpn/easy-rsa
​
./easyrsa build-client-full client_name pwd
​

之后将ca.crt client_name.crt client_name.key都下载下来

文件位置

ca.crt >> /etc/openvpn/easy-rsa/pki

client_name.crt >> /etc/openvpn/easy-rsa/pki/issued

client_name.key >> /etc/openvpn/easy-rsa/pki/private

(3)重启 <服务端>
代码语言:javascript
复制
sudo systemctl restart openvpn@server
(4)创建配置文件client_name.ovpn
代码语言:javascript
复制
client
dev tun
proto tcp
remote 服务端ip 1194
resolv-retry infinite
nobind
ca ca.crt
cert client_name.crt
key client_name.key
verb 3
persist-key
comp-lzo

将ca.crt client_name.crt client_name.key与client_name.ovpn放置在同一个文件夹中

双击文件即可链接

3.iOS、Android客户端配置

iOS可前往AppStore下载Open VPN客户端,Android可前往OpenVPN官网下载Android客户端

(1)服务端生成客户端的证书
代码语言:javascript
复制
cd /etc/openvpn/easy-rsa
​
./easyrsa build-client-full client_name pwd
​

之后将ca.crt client_name.crt client_name.key都下载下来

文件位置

ca.crt >> /etc/openvpn/easy-rsa/pki

client_name.crt >> /etc/openvpn/easy-rsa/pki/issued

client_name.key >> /etc/openvpn/easy-rsa/pki/private

(2)重启服务端
代码语言:javascript
复制
sudo systemctl restart openvpn@server
(3)配置文件的创建
代码语言:javascript
复制
client
dev tun
proto tcp
remote 服务端ip 1194
resolv-retry infinite
nobind
<ca>
此处填写ca.crt文件内所有内容
</ca>
​
<cert>
此处填写client_name.crt中的证书内容即可,即:
-----BEGIN CERTIFICATE-----
......
-----END CERTIFICATE-----
</cert>
​
<key>
此处填写client_name.key中的所有内容
</key>
​
verb 3
persist-key
comp-lzo

将client_name.ovpn传至手机后,在openvpn中打开文件即可链接

本文到这里就结束了,在搭建的任何过程中产生问题您可在评论区进行留言

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、安装OpenVPN服务端
  • 二、客户端配置
    • 1.Linux客户端配置
      • (1)服务端生成客户端的证书
      • (2)下载客户端
      • (3)编辑客户端配置文件
      • (4)启动客户端
      • (5)若要使用这台机器作跳板访问内网服务(可选)
    • 2.Windows客户端配置
      • (1)下载Windows客户端
      • (2)服务端生成客户端的证书
      • (3)重启 <服务端>
      • (4)创建配置文件client_name.ovpn
    • 3.iOS、Android客户端配置
      • (1)服务端生成客户端的证书
      • (2)重启服务端
      • (3)配置文件的创建
相关产品与服务
轻量应用服务器
轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、Web应用、小程序/小游戏、游戏服、电商应用、云盘/图床和开发测试环境,相比普通云服务器更加简单易用且更贴近应用,以套餐形式整体售卖云资源并提供高带宽流量包,将热门软件打包实现一键构建应用,提供极简上云体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档