最简单方便的 VPN 搭建使用方式

整个 VPN 体系堪称复杂度地狱,手工配置 VPN,一阶段二阶段各种加密各种协议,不同客户端的支持。还有各种 VPN 的实现。比如 PPTP、IPSec、OpenVPN 等等等等。

整个传统 VPN 体系乱成一锅粥,配置繁复无比,使用起来更是煎熬。后来 Linux 支持 WireGuard 后缓解了一点,配置简单了不少,再也不想去碰传统 VPN 体系了。但是传统 VPN 体系有个好处,比如 IPSec 无论是 Android 还是 iOS 或者 Windows 啥的基本都是内置支持。WireGuard 目前还没有这么通用。

最简单方便的 VPN 搭建使用方式

需求

我使用 VPN 基本就两个场景,外部连接家庭网络和连接工作使用的服务器网络,其他的话最好是内置原生支持,不用额外配置和使用第三方工具。

我的这两个需求其实非常简单,但是因为 VPN 的复杂配置在我尝试自己搭建的时候把我折磨的苦不堪言。

外部连接家庭网络

我的家庭网络已经配置好了透明代理,另外还有工作用的工作站和 NAS 等其他基础设施。如果出门在外需要一个便捷的方式连接回家庭内网,使用这些基础设施。另外在外部不安全的网络环境下使用网络比如酒店或者咖啡店的 WiFi,要保证网络安全。

连接工作线上网络

线上 Server 往往不允许开放端口供公网连接,需要 VPN 或者代理进入内网,连接内网的数据库等服务,或者管理内网的其他服务。

实现

后来在 GitHub 上翻项目,发现受折磨的不止我一个。有几个开源项目致力于解决这些问题。推荐一个在我后来实践中比较满意的一个项目 docker-ipsec-vpn-server。安装使用基本无需配置。

安装

使用 Docker 安装,我比较习惯使用 Docker Compose,以 Docker Compose 配置为例。

创建 docker-compose.yml

version: '3'

services:
  vpn:
    image: hwdsl2/ipsec-vpn-server
    restart: always
    env_file:
      - ./data/vpn.env
    ports:
      - "500:500/udp"
      - "4500:4500/udp"
    privileged: true
    hostname: ipsec-vpn-server
    container_name: ipsec-vpn-server
    volumes:
      - ./data/ipsec.d:/etc/ipsec.d
      - /lib/modules:/lib/modules:ro

data 目录下创建 vpn.env 文件。

VPN_IPSEC_PSK=xx
VPN_USER=xx
VPN_PASSWORD=xx

启动服务。

docker compose pull
docker compose up -d

如果是服务器网络,云服务商后台防火墙开放 500 和 4500 的 UDP 连接即可。

如果是家庭网络,Docker 为了性能一般部署在内网的一个机器上,需要配置下路由器的端口转发,转发 500 和 4500 的 UDP 连接到内网的这台机器。

最简单方便的 VPN 搭建使用方式

使用

绝大多数设备都支持 IPsec,以 macOS 为例添加配置即可。

最简单方便的 VPN 搭建使用方式

总结

目前我在家庭网络和服务器网络都在使用这套配置,配置简单使用也非常简单。完美实现我的需求。

(1)
ChaoChao
上一篇 08/21/2023
下一篇 10/07/2023

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注