Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
openvpn-install — 在Debian、Ubuntu、Fedora、CentOS、Arch Linux及更多系统上搭建你自己的OpenVPN服务器 | Kitploit
工具/GitHubGitHub/angristan/openvpn-install
加密/解密工具脚本与自动化网络安全隐私保护
GitHubangristan/openvpn-install

openvpn-install

在Debian、Ubuntu、Fedora、CentOS、Arch Linux及更多系统上搭建你自己的OpenVPN服务器

查看仓库网站
16.1k3.3k691个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

openvpn-install

Say Thanks!

适用于 Debian、Ubuntu、Fedora、openSUSE、CentOS、Amazon Linux、Arch Linux、Oracle Linux、Rocky Linux 和 AlmaLinux 的 OpenVPN 安装程序。

该脚本可让您在几秒钟内设置并管理自己的安全 VPN 服务器。

这是什么?

此脚本旨在您自己的服务器上运行,无论是 VPS、专用服务器,甚至是家中的计算机。

设置完成后,您将能够为每个想要接入的设备生成客户端配置文件。

每个客户端都可以将其互联网流量通过服务器路由,全程加密。```mermaid graph LR A[Phone] -->|Encrypted| VPN B[Laptop] -->|Encrypted| VPN C[Computer] -->|Encrypted| VPN

VPN[OpenVPN Server]

VPN --> I[Internet]

## 为什么选择OpenVPN?

在本脚本创建时,OpenVPN 是开源 VPN 的事实标准。WireGuard 后来出现,在大多数用例中更简单、更快。请查看 [wireguard-install](https://github.com/angristan/wireguard-install)。

话虽如此,当您需要以下功能时,OpenVPN 仍然值得考虑:

- **TCP 支持**:在 UDP 被封锁的限制性环境(企业网络、机场、酒店等)中也能工作
- **密码保护的私钥**:WireGuard 配置以明文存储私钥
- **传统兼容性**:几乎每个平台(包括较老系统)都有客户端

## 功能特点

- 安装并配置一个可立即使用的 OpenVPN 服务器
- CLI 接口,支持自动化和脚本编写(非交互模式,支持 JSON 输出)
- 客户端和服务器证书的续期
- 列出并监控已连接的客户端
- 撤销证书后立即断开客户端连接(通过管理接口)
- 尽可能使用[官方 OpenVPN 仓库](https://community.openvpn.net/openvpn/wiki/OpenvpnSoftwareRepos)以获取最新的稳定版本
- 防火墙规则和转发无缝管理(原生 firewalld 和 nftables 支持,iptables 回退)
- 可配置的 VPN 子网(IPv4:默认 `10.8.0.0/24`,IPv6:默认 `fd42:42:42:42::/112`)
- 可配置的隧道 MTU(默认:`1500`)
- 必要时可干净地移除 OpenVPN,包括配置和防火墙规则
- 可自定义的加密设置,增强的默认设置(参见下方的[安全与加密](#security-and-encryption))
- 在可用时使用最新的 OpenVPN 功能(参见下方的[安全与加密](#security-and-encryption))
- 多种 DNS 解析器可供推送给客户端
- 可选择使用 Unbound 自建解析器(支持已存在的 Unbound 安装)
- 可选择 TCP 或 UDP
- 灵活的 IPv4/IPv6 支持:
  - IPv4 或 IPv6 服务器端点(客户端如何连接)
  - 仅 IPv4、仅 IPv6 或双栈客户端(VPN 地址分配和互联网访问)
  - 支持所有组合:4→4、4→4/6、4→6、6→4、6→6、6→4/6
  - 自动防泄漏:在单栈模式下阻止不期望的协议
- 非特权模式:以 `nobody`/`nogroup` 运行
- 在 Windows 10 上阻止 DNS 泄漏
- 随机化的服务器证书名称
- 可选择用密码保护客户端(私钥加密)
- 可选允许多个设备同时使用同一个客户端配置文件(禁用固定 IP 地址)
- **对端指纹认证**(OpenVPN 2.6+):无需 CA 的简化类 WireGuard 认证
- 还有许多其他小功能!

## 兼容性

该脚本支持以下 Linux 发行版:

|                     | 支持情况 |
| ------------------- | ------- |
| AlmaLinux >= 8      | ✅ 🤖   |
| Amazon Linux 2023   | ✅ 🤖   |
| Arch Linux          | ✅ 🤖   |
| CentOS Stream >= 8  | ✅ 🤖   |
| Debian >= 11        | ✅ 🤖   |
| Fedora >= 40        | ✅ 🤖   |
| openSUSE Leap >= 16 | ✅ 🤖   |
| openSUSE Tumbleweed | ✅ 🤖   |
| Oracle Linux >= 8   | ✅ 🤖   |
| Rocky Linux >= 8    | ✅ 🤖   |
| Ubuntu >= 18.04     | ✅ 🤖   |

需要注意的是:

- 该脚本仅定期在标有 🤖 的发行版上进行测试。
  - 仅在 `amd64` 架构上测试。
- 该脚本需要 `systemd`。

### 推荐的 VPS 提供商

- [Vultr](https://umami.stanislas.cloud/q/1HH9Thp8i):全球多地机房,支持 IPv6,每月 2.5 美元起
- [Hetzner](https://umami.stanislas.cloud/q/HdzaOJWq7):全球多地机房,支持 IPv6,20 TB 流量,每月 3.59 欧元起
- [Digital Ocean](https://umami.stanislas.cloud/q/sEVh1l79B):全球多地机房,支持 IPv6,每月 4 美元起

## 使用方式

首先,在您的服务器上下载脚本并使其可执行:```bash
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh

你需要以 root 身份运行脚本,并且启用 TUN 模块。

交互模式

开始使用的最简单方式是交互式菜单:```bash ./openvpn-install.sh interactive

本指南将带你完成安装和客户端管理。

在你的主目录下,你将看到 `.ovpn` 文件。这些是客户端配置文件。从服务器下载它们(例如使用 `scp`),然后使用你喜欢的 OpenVPN 客户端连接。

如有任何疑问,请先查阅[常见问题](#faq)。如果需要帮助,你可以发起[讨论](https://github.com/angristan/openvpn-install/discussions)。请先搜索已有的问题和讨论。

### CLI 模式

> [!WARNING]
> API 兼容性不保证。版本之间可能发生破坏性变更。如果你以编程方式使用此脚本(例如在自动化或 CI/CD 中),请固定到特定提交,而非使用 master 分支。

对于自动化和脚本编写,请使用 CLI 接口:```bash
# Install with defaults
./openvpn-install.sh install

# Add a client
./openvpn-install.sh client add alice

# List clients
./openvpn-install.sh client list

# Revoke a client (immediately disconnects if connected)
./openvpn-install.sh client revoke alice

命令```text

openvpn-install [options]

Commands: install Install and configure OpenVPN server uninstall Remove OpenVPN server client Manage client certificates server Server management interactive Launch interactive menu

Global Options: --verbose Show detailed output --log Log file path (default: openvpn-install.log) --no-log Disable file logging --no-color Disable colored output -h, --help Show help

运行 `./openvpn-install.sh <command> --help` 以查看命令特定的选项。

#### 客户端管理```bash
# Add a new client
./openvpn-install.sh client add alice

# Add a password-protected client
./openvpn-install.sh client add bob --password

# Revoke a client
./openvpn-install.sh client revoke alice

# Renew a client certificate
./openvpn-install.sh client renew bob --cert-days 365

列出所有客户端:```text $ ./openvpn-install.sh client list ══ Client Certificates ══ [INFO] Found 3 client certificate(s)

Name Status Expiry Remaining


alice Valid 2035-01-15 3650 days bob Valid 2035-01-15 3650 days charlie Revoked 2035-01-15 unknown

用于脚本编写的 JSON 输出:```text
$ ./openvpn-install.sh client list --format json | jq
{
  "clients": [
    {
      "name": "alice",
      "status": "valid",
      "expiry": "2035-01-15",
      "days_remaining": 3650
    },
    {
      "name": "bob",
      "status": "valid",
      "expiry": "2035-01-15",
      "days_remaining": 3650
    },
    {
      "name": "charlie",
      "status": "revoked",
      "expiry": "2035-01-15",
      "days_remaining": null
    }
  ]
}

服务器管理```bash

Renew server certificate

./openvpn-install.sh server renew

Uninstall OpenVPN

./openvpn-install.sh uninstall

显示已连接的客户端(数据每60秒刷新一次):```text
$ ./openvpn-install.sh server status
══ Connected Clients ══
[INFO] Found 2 connected client(s)

   Name    Real Address          VPN IP      Connected Since   Transfer
   ----    ------------          ------      ---------------   --------
   alice   203.0.113.45:52341    10.8.0.2    2025-01-15 14:32  ↓1.2M ↑500K
   bob     198.51.100.22:41892   10.8.0.3    2025-01-15 09:15  ↓800K ↑200K

[INFO] Note: Data refreshes every 60 seconds.

安装选项

install 命令支持许多自定义选项:```bash

Custom port and protocol

./openvpn-install.sh install --port 443 --protocol tcp

Custom DNS provider

./openvpn-install.sh install --dns quad9

Custom encryption settings

./openvpn-install.sh install --cipher AES-256-GCM --cert-type rsa --rsa-bits 4096

Custom VPN subnet

./openvpn-install.sh install --subnet-ipv4 10.9.0.0

Enable dual-stack (IPv4 + IPv6) for clients

./openvpn-install.sh install --client-ipv4 --client-ipv6

IPv6-only clients (no IPv4)

./openvpn-install.sh install --no-client-ipv4 --client-ipv6

IPv6 endpoint (server listens on IPv6, clients connect via IPv6)

./openvpn-install.sh install --endpoint-type 6 --endpoint 2001:db8::1

Custom IPv6 subnet for dual-stack setup

./openvpn-install.sh install --client-ipv6 --subnet-ipv6 fd00🔢5678::

Skip initial client creation

./openvpn-install.sh install --no-client

Full example with multiple options

./openvpn-install.sh install
--port 443
--protocol tcp
--dns cloudflare
--cipher AES-256-GCM
--client mydevice
--client-cert-days 365

**网络选项:**

- `--endpoint <host>` - 客户端的公网 IP 或主机名(默认:自动检测)
- `--endpoint-type <4|6>` - 端点 IP 版本(默认:`4`)
- `--ip <addr>` - 服务器监听 IP(默认:自动检测)
- `--client-ipv4` - 为 VPN 客户端启用 IPv4(默认:启用)
- `--no-client-ipv4` - 禁用 VPN 客户端的 IPv4
- `--client-ipv6` - 为 VPN 客户端启用 IPv6(默认:禁用)
- `--no-client-ipv6` - 禁用 VPN 客户端的 IPv6
- `--subnet-ipv4 <x.x.x.0>` - IPv4 VPN 子网(默认:`10.8.0.0`)
- `--subnet-ipv6 <prefix>` - IPv6 VPN 子网(默认:`fd42:42:42:42::`)
- `--port <num>` - OpenVPN 端口(默认:`1194`)
- `--port-random` - 使用随机端口(49152-65535)
- `--protocol <udp|tcp>` - 协议(默认:`udp`)
- `--mtu <size>` - 隧道 MTU(默认:`1500`)

**DNS 选项:**

- `--dns <provider>` - DNS 提供商(默认:`cloudflare`)。选项:`system`、`unbound`、`cloudflare`、`quad9`、`quad9-uncensored`、`fdn`、`dnswatch`、`opendns`、`google`、`yandex`、`adguard`、`nextdns`、`custom`
- `--dns-primary <ip>` - 自定义主 DNS(需要 `--dns custom`)
- `--dns-secondary <ip>` - 自定义辅助 DNS(需要 `--dns custom`)

**安全选项:**
下载工具