IPsec VPN 服务器一键安装脚本

使用 Linux 脚本一键快速搭建自己的 IPsec VPN 服务器。支持 IPsec/L2TP, Cisco IPsec 和 IKEv2 协议。你只需提供自己的 VPN 登录凭证,然后运行脚本自动完成安装。

IPsec VPN 可以加密你的网络流量,以防止在通过因特网传送时,你和 VPN 服务器之间的任何人对你的数据的未经授权的访问。在使用不安全的网络时,这是特别有用的,例如在咖啡厅,机场或旅馆房间。

我们将使用 Libreswan 作为 IPsec 服务器,以及 xl2tpd 作为 L2TP 提供者。

快速使用

首先,在你的 Linux 服务器* 上全新安装以下系统之一:

Ubuntu, Debian, CentOS/RHEL, Rocky Linux, AlmaLinux, Amazon Linux 2 或者 Alpine Linux

使用以下命令快速搭建 IPsec VPN 服务器:

  1. 脚本安装
    搭建方式1:
    wget​​​https://git.io/vpnstart​​ -qO vpn.sh && sudo sh vpn.sh

搭建方式2:

你也可以使用 curl 下载再执行:

curl -fsSL ​​https://git.io/vpnstart​​ -o vpn.sh && sudo sh vpn.sh

你的 VPN 登录凭证将会被自动随机生成,并在安装完成后显示在屏幕上。

  1. docker镜像安装
    另外,你也可以使用预构建的 Docker 镜像。
    docker部署:

docker run

--name ipsec-vpn-server

--restart=always

-v ikev2-vpn-data:/etc/ipsec.d

-v /lib/modules:/lib/modules:ro

-p 500:500/udp

-p 4500:4500/udp

-d --privileged

hwdsl2/ipsec-vpn-server

如果你在上述 docker run 命令中没有指定 env 文件,VPN_USER 会默认为 vpnuser,并且 VPN_IPSEC_PSK 和 VPN_PASSWORD 会被自动随机生成。要获取这些登录信息,可以查看容器的日志:

]# docker logs ipsec-vpn-server

在命令输出中查找这些行:

Connect to your new VPN with these details:

Server IP: 你的VPN服务器IP

IPsec PSK: 你的IPsec预共享密钥

Username: 你的VPN用户名

Password: 你的VPN密码

在命令输出中也会包含 IKEv2 配置信息(如果启用)。要开始使用 IKEv2,请参见 配置并使用 IKEv2 VPN。

[可选步骤] 备份自动生成的 VPN 登录信息(如果有)到当前目录:

docker cp ipsec-vpn-server:/etc/ipsec.d/vpn-gen.env ./

功能特性

  • 新: 增加支持更高效的 IPsec/XAuth ("Cisco IPsec") 和 IKEv2 模式
  • 新: 现在可以下载 VPN 服务器的预构建 Docker 镜像
  • 全自动的 IPsec VPN 服务器配置,无需用户输入
  • 封装所有的 VPN 流量在 UDP 协议,不需要 ESP 协议支持
  • 可直接作为 Amazon EC2 实例创建时的用户数据使用
  • 包含 sysctl.conf 优化设置,以达到更佳的传输性能

系统要求

一个专用服务器或者虚拟专用服务器 (VPS),全新安装以下操作系统之一:

  • Ubuntu 20.04 或者 18.04
  • Debian 11, 10或者 9
  • CentOS 7, Rocky Linux 8 或者 AlmaLinux 8**
  • Red Hat Enterprise Linux (RHEL) 8 或者 7
  • Amazon Linux 2
  • Alpine Linux 3.15 或者 3.14
    这也包括各种公共云服务中的 Linux 虚拟机,比如 DigitalOcean, Vultr, Linode, Microsoft Azure 和 OVH。Amazon EC2 用户可以使用 CloudFormation 或者 用户数据 快速部署。

安装选项:

选项 1: 使用脚本随机生成的 VPN 登录凭证(完成后会在屏幕上显示):

wget ​​https://git.io/vpnsetup​​ -qO vpn.sh && sudo sh vpn.sh

选项 2: 编辑脚本并提供你自己的 VPN 登录凭证。

wget ​​https://git.io/vpnsetup​​ -nv -O vpn.sh

nano -w vpn.sh

[替换为你自己的值: YOUR_IPSEC_PSK, YOUR_USERNAME 和 YOUR_PASSWORD]

sudo sh vpn.sh

在安装成功之后,推荐 配置 IKEv2:

使用默认选项配置 IKEv2

sudo ikev2.sh --auto# 或者你也可以自定义 IKEv2 选项

sudo ikev2.sh

选项3:

将你自己的 VPN 登录凭证定义为环境变量。

所有变量值必须用 '单引号' 括起来

不要 在值中使用这些字符: \ " '

wget ​​https://git.io/vpnsetup​​ -nv -O vpn.sh

sudo VPN_IPSEC_PSK='你的IPsec预共享密钥'

VPN_USER='你的VPN用户名'

VPN_PASSWORD='你的VPN密码'

sh vpn.sh

在安装成功之后,依然推荐 配置 IKEv2选项:

1.使用默认选项配置 IKEv2

sudo ikev2.sh --auto

2.或者你也可以自定义 IKEv2 选项

sudo ikev2.sh

备选方案

如果无法通过wget下载,点这里查看解决方案,你也可以使用curl下载。

例如:

curl -fsSL ​​https://git.io/vpnsetup​​ -o vpn.sh

sudo sh vpn.sh

参考连接:

​https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/README-zh.md​

用户管理

查看或更改 IPsec PSK:

IPsec PSK(预共享密钥)保存在文件 /etc/ipsec.secrets。所有的 VPN 用户将共享同一个 IPsec PSK。该文件的格式如下:

%any %any : PSK "你的IPsec预共享密钥"

1.服务器启停

如果要更换一个新的 PSK,可以编辑此文件。不要在值中使用这些字符:\ " '

更换完成后重启服务:

service ipsec restart

service xl2tpd restart

2.查看 VPN 用户:

cat /etc/ppp/chap-secrets

cat /etc/ipsec.d/passwd # 这个文件中的密码以加盐哈希值的形式保存。该步骤可以借助比如 openssl 工具来完成:

以下命令的输出为:密码1的加盐哈希值

将你的密码用 '单引号' 括起来

openssl passwd -1 '密码1'

  1. 更新用户信息:
    wget -nv -O add_vpn_user.sh​​​https://bit.ly/addvpnuser​​ sudo bash add_vpn_user.sh '要添加的用户名' '密码'

或者

更新用户:

sudo bash add_vpn_user.sh '要更新的用户名' '新密码'

4.删除一个 VPN 用户

下载脚本

wget -nv -O del_vpn_user.sh ​​https://bit.ly/delvpnuser#​​ 运行脚本并按提示操作

删除用户:

sudo bash del_vpn_user.sh '要删除的用户名'

IPsecVPN 服务器一键安装脚本_docker