搭建专属VPN通道:无缝连接远程办公室的实战指南

引言:

在数字化时代,远程工作日益普及,但企业内网的访问限制常成为远程协作的障碍。本文将手把手教你如何利用开源工具frp与OpenVPN,搭建一条安全、稳定的VPN隧道,即使身处异地,也能轻松接入杭州办公室的内部网络。

需求概述

  1. 问题:单位因网络配置无法直接连接内部网络
  2. 解决方案:通过家里已开通外网的Linux服务器,部署frp服务,再配合远程Windows电脑上的frp客户端及OpenVPN服务端,为单位电脑提供安全的远程访问途径。

步骤简述

  • 家中Linux服务器部署frp服务端

    • 安装准备:在Linux服务器上使用Docker安装frp服务端。
    • 配置文件调整:
      • 修改frps.toml,设置通信端口、TLS加密、身份验证等参数。
      • 启动frps容器,并映射所需端口。
    • 验证服务:通过浏览器访问http://服务器公网IP:7500/,确认服务正常运行。
  • 远程Windows电脑配置frp客户端及OpenVPN服务端

    • frp客户端部署

      • Docker安装:在Windows上安装Docker并拉取frpc镜像。
      • 配置文件frpc.toml:设定服务器地址、通信端口、认证令牌等。
      • 启动容器:使用Docker运行frpc,确保服务与家中服务器通讯无碍。
    • OpenVPN服务端设置

      • 文件夹准备:在Windows上新建存放配置文件的目录。
      • Docker Compose配置:编写docker-compose.yml,指定kylemanna/openvpn镜像。
      • 证书生成:通过PowerShell命令行生成OpenVPN所需的配置与证书文件。
      • 注意事项:解决可能的客户端配置文件兼容性问题。
      • 服务启动:最后,通过Docker Compose启动OpenVPN服务。
  • 单位电脑配置OpenVPN客户端

    • 软件安装:在单位电脑上安装OpenVPN客户端软件。
    • 配置导入:将生成的clientX.ovpn文件导入客户端,建立连接。

远程访问详细配置指南

一、家里Linux服务器(FRPS服务端)配置

1. 安装并运行FRPS服务端

  • 创建目录并进入:
mkdir /root/frp &&cd /root/frp
  • 拉取Docker镜像:
docker pull snowdreamtech/frps
  • 运行FRPS容器并生成配置文件:
docker run -ti --rm --network host --name frps snowdreamtech/frps:latest
docker cp frps:/etc/frp/frps.toml .
  • 编辑frps.toml,配置如下:
# frps.toml
bindPort = 7000 # 服务端与客户端通信端口
transport.tls.force = true # 服务端将只接受 TLS链接
auth.token = "public" # 身份验证令牌,frpc要与frps一致
# Server Dashboard,可以查看frp服务状态以及统计信息
webServer.addr = "0.0.0.0" # 后台管理地址
webServer.port = 7500 # 后台管理端口
webServer.user = "admin" # 后台登录用户名
webServer.password = "admin" # 后台登录密码
  • 保存配置文件,启动FRPS服务:
docker run --name frps -p 7000:7000 -p 7500:7500 -p 19000-19100:19000-19100 --publish 11940:11940/udp --restart=always -v /root/frp/frps.toml:/etc/frp/frps.toml -d snowdreamtech/frps:latest
  • 访问管理页面确认服务状态:http://IP:7500/

二、远程Windows电脑(FRPC客户端)配置

1. 安装Docker并配置FRPC客户端

  • 创建目录D:\docker_data\frp并新建frpc.toml,配置如下:
#frpc.toml
transport.tls.enable = true # 从 v0.50.0版本开始,transport.tls.enable的默认值为 true
serverAddr = "你的域名" # 可以是域名,可以是公网IP
serverPort = 7000 # 公网服务端通信端口
auth.token = "public" # 令牌,与公网服务端保持一致
[[proxies]]
name = "vpn"
type = "tcp"
localIP = "127.0.0.1" # 需要暴露的服务的IP
localPort = 1194 # 将本地9000端口的服务暴露在公网的6060端口
remotePort = 19000 # 暴露服务的公网入口
  • 运行FRPC容器:
docker run --network host --name frpc --restart=always -v D:\docker_data\frp\frpc.toml:/etc/frp/frpc.toml -d snowdreamtech/frpc:latest

三、远程Windows电脑(OpenVPN服务端)配置

1. 使用Docker部署OpenVPN服务端

  • 在D:\docker_data\openvpn目录下创建docker-compose.yml,配置OpenVPN服务。
services:
 openvpn:
   image: kylemanna/openvpn:latest
   container_name: openvpn
   volumes:
     - D:\docker_data\openvpn:/etc/openvpn
   ports:
     - '1194:1194/tcp'
   cap_add:
     - NET_ADMIN
   restart: always
   privileged: true
  • 管理员打开 Windows PowerShell
cd D:\docker_data\openvpn\
  • 生成 OpenVPN 配置文件,使用 TCP 协议和指定的服务器 IP地址 端口
docker-compose run --rm openvpn ovpn_genconfig -u tcp://公网IP:PORT
  • 生成证书
docker-compose run --rm openvpn ovpn_initpki
Creating openvpn_openvpn_run ... done

init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /etc/openvpn/pki


Using SSL: openssl OpenSSL 1.1.1g  21 Apr 2020

Enter New CA Key Passphrase:【自定义密钥】
Re-Enter New CA Key Passphrase:【自定义密钥】
Generating RSA private key, 2048 bit long modulus (2 primes)
........+++++.....................................................................+++++
e is 65537 (0x010001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:【自定义用户名或服务名】

CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/etc/openvpn/pki/ca.crt


Using SSL: openssl OpenSSL 1.1.1g  21 Apr 2020
Generating DH parameters, 2048 bit long safe prime, generator 2
This is going to take a long time
..................................................................................................................+..................+.............................................................................................................................+...........................................+......................................................................................................................................+......................+...........................................................+............................+.........................................................................+..............................................+.......................................................+...........+........................................................+...........................................................++*++*++*++*

DH parameters of size 2048 created at /etc/openvpn/pki/dh.pem


Using SSL: openssl OpenSSL 1.1.1g  21 Apr 2020
Generating a RSA private key
.......................................................+++++
.................+++++
writing new private key to '/etc/openvpn/pki/easy-rsa-74.HcImoF/tmp.ddaAMO'
-----
Using configuration from /etc/openvpn/pki/easy-rsa-74.HcImoF/tmp.ifnlKb
Enter pass phrase for /etc/openvpn/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:
Certificate is to be certified until Dec 18 06:53:19 2026 GMT (825 days)

Write out database with 1 new entries
Data Base Updated
  • 生成客户端证书
#无需密码的
docker-compose run --rm openvpn easyrsa build-client-full client1 nopass
#有密码的
docker-compose run --rm openvpn easyrsa build-client-full client2
  • 导出证书
docker-compose run --rm openvpn ovpn_getclient client1 > ./client1.ovpn
docker-compose run --rm openvpn ovpn_getclient client2 > ./client2.ovpn
  • 每个client只能一个在线,多人使用请创建多个
    ps: ** windows 电脑有点问题 需要将 client1.ovpn 使用记事本打开 重新创建一个 client1.ovpn 文件 然后将内容复制进去 要不识别不正确**

  • 启动 openvpn 服务

docker-compose up -d openvpn
  • 撤销客户端证书(无需执行)
docker-compose run --rm openvpn easyrsa revoke client1

四、单位电脑(OpenVPN客户端)配置

1. 安装OpenVPN客户端。

openvpn-connect-3.5.0.3818_signed.msi
https://www.alipan.com/s/gavbxvs94wu
提取码: v21s

2. 导入客户端证书(如client1.ovpn)。

3. 连接远程网络。

注:若Windows客户端配置文件遇到识别问题,建议通过记事本新建并粘贴内容来解决。

以上就是从零到一搭建远程访问环境的完整步骤。请按照顺序逐一操作,并在每一步完成后进行测试,以确保整个解决方案的成功实施。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值