openvpn-install/README.md

135 lines
4.4 KiB
Markdown
Raw Normal View History

2022-10-10 05:21:37 +02:00
[English](README.md) | [中文](README-zh.md) | [Vídeo en Español](https://www.youtube.com/watch?v=99qtaJU2E2k)
2022-05-22 05:10:41 +02:00
2022-05-26 06:08:17 +02:00
# OpenVPN Server Auto Setup Script
2022-05-20 15:36:14 +02:00
2022-10-05 01:06:49 +02:00
[![Build Status](https://github.com/hwdsl2/openvpn-install/actions/workflows/main.yml/badge.svg)](https://github.com/hwdsl2/openvpn-install/actions/workflows/main.yml)  [![License: MIT](docs/images/license.svg)](https://opensource.org/licenses/MIT)
2022-09-03 05:00:01 +02:00
OpenVPN server installer for Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS, Fedora and Amazon Linux 2.
2013-05-14 14:04:19 +02:00
2022-05-27 18:11:24 +02:00
This script will let you set up your own VPN server in just a few minutes, even if you haven't used OpenVPN before. [OpenVPN](https://openvpn.net/community-resources/reference-manual-for-openvpn-2-4/) is an open-source, robust and highly flexible VPN protocol.
2013-05-14 14:04:19 +02:00
2022-10-15 05:07:21 +02:00
[**» See also: WireGuard VPN Server Auto Setup Script**](https://github.com/hwdsl2/wireguard-install)
2022-10-11 08:31:40 +02:00
2022-10-15 05:07:21 +02:00
## Features
2022-10-11 08:31:40 +02:00
2022-10-15 05:07:21 +02:00
- Fully automated OpenVPN server setup, no user input needed
- Supports interactive install using custom options
- Generates VPN profiles to auto-configure Windows, macOS, iOS and Android devices
- Supports managing OpenVPN users and certificates
- Optimizes `sysctl` settings for improved VPN performance
2022-05-26 06:08:17 +02:00
## Installation
2013-05-14 14:04:19 +02:00
2022-10-15 05:07:21 +02:00
First, download the script on your Linux server\*:
2022-10-01 22:36:45 +02:00
```bash
2022-10-03 06:18:07 +02:00
wget -O openvpn.sh https://get.vpnsetup.net/ovpn
2022-10-10 05:21:37 +02:00
```
**Option 1:** Auto install OpenVPN using default options.
```bash
2022-10-01 22:36:45 +02:00
sudo bash openvpn.sh --auto
```
2022-10-03 06:18:07 +02:00
<details>
<summary>
List of default options.
</summary>
```
Protocol: UDP
Port: UDP/1194
Client name: client
Client DNS: Google Public DNS
```
</details>
2022-10-15 05:07:21 +02:00
<details>
<summary>
See the script in action (terminal recording).
</summary>
**Note:** This recording is for demo purposes only. VPN credentials in this recording are **NOT** valid.
<p align="center"><img src="docs/images/demo1.svg"></p>
</details>
2022-10-03 06:18:07 +02:00
For servers with an external firewall (e.g. [EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html)/[GCE](https://cloud.google.com/vpc/docs/firewalls)), open UDP port 1194 for the VPN.
2022-10-01 22:36:45 +02:00
**Option 2:** Interactive install using custom options.
2022-05-20 15:36:14 +02:00
```bash
sudo bash openvpn.sh
```
2022-05-28 22:17:34 +02:00
<details>
<summary>
2022-10-10 05:21:37 +02:00
Click here if you are unable to download.
2022-05-28 22:17:34 +02:00
</summary>
2022-06-03 15:29:43 +02:00
You may also use `curl` to download:
2022-05-28 22:17:34 +02:00
```bash
2022-10-03 06:18:07 +02:00
curl -fL -o openvpn.sh https://get.vpnsetup.net/ovpn
2022-05-28 22:17:34 +02:00
```
2022-10-10 05:21:37 +02:00
Then follow the instructions above to install.
2022-09-20 04:41:25 +02:00
Alternative setup URLs:
2022-06-03 15:29:43 +02:00
```bash
https://github.com/hwdsl2/openvpn-install/raw/master/openvpn-install.sh
2022-09-20 04:41:25 +02:00
https://gitlab.com/hwdsl2/openvpn-install/-/raw/master/openvpn-install.sh
2022-06-03 15:29:43 +02:00
```
2022-05-28 22:17:34 +02:00
If you are unable to download, open [openvpn-install.sh](openvpn-install.sh), then click the `Raw` button on the right. Press `Ctrl/Cmd+A` to select all, `Ctrl/Cmd+C` to copy, then paste into your favorite editor.
</details>
2022-06-02 16:09:14 +02:00
\* A cloud server, virtual private server (VPS) or dedicated server.
## Next steps
2022-05-22 03:16:43 +02:00
After setup, you can run the script again to manage users or uninstall OpenVPN.
2022-05-20 15:36:14 +02:00
2022-10-03 06:18:07 +02:00
Get your computer or device to use the VPN. Please refer to:
**[Configure OpenVPN Clients](docs/clients.md)**
2022-05-22 05:53:14 +02:00
2022-06-02 16:09:14 +02:00
Enjoy your very own VPN! :sparkles::tada::rocket::sparkles:
2013-05-14 14:04:19 +02:00
2022-07-14 05:06:29 +02:00
<details>
<summary>
Like this project? You can show your support or appreciation.
</summary>
2022-09-23 07:11:10 +02:00
<a href="https://ko-fi.com/hwdsl2" target="_blank"><img height="36" width="187" src="docs/images/kofi2.png" border="0" alt="Buy Me a Coffee at ko-fi.com" /></a> &nbsp;&nbsp;<a href="https://coindrop.to/hwdsl2" target="_blank"><img src="docs/images/embed-button.png" height="36" width="145" border="0" alt="Coindrop.to me" /></a>
Supporter-only content is available. [Click to see details](https://ko-fi.com/hwdsl2).
2022-07-14 05:06:29 +02:00
</details>
2022-05-26 06:08:17 +02:00
## Credits
2013-05-14 14:04:19 +02:00
2022-05-24 15:39:21 +02:00
This script is based on the great work of [Nyr and contributors](https://github.com/Nyr/openvpn-install), with enhancements and changes for compatibility with the [Setup IPsec VPN](https://github.com/hwdsl2/setup-ipsec-vpn) project.
2013-05-14 14:04:19 +02:00
2022-09-20 04:41:25 +02:00
<details>
<summary>
List of enhancements over Nyr/openvpn-install.
</summary>
- Improved compatibility with Setup IPsec VPN
- Improved script reliability, user input and output
2022-10-01 22:36:45 +02:00
- Supports auto install using default options
2022-09-20 04:41:25 +02:00
- Added support for Amazon Linux 2
- Supports exporting configuration for an existing VPN client
2022-09-26 05:53:06 +02:00
- Supports listing existing VPN clients
2022-09-20 07:10:54 +02:00
- Supports custom DNS server(s) for VPN clients
2022-10-15 05:07:21 +02:00
- Optimizes `sysctl` settings for improved VPN performance
2022-09-20 04:41:25 +02:00
- Improved creation of client config files when using `sudo`
...and more!
</details>
2022-05-26 06:08:17 +02:00
## License
2014-12-10 23:31:04 +01:00
2022-05-20 15:36:14 +02:00
MIT