pve下以lxc模式运行 ipsec (套docker)

因为 安卓和ios 都默认支持ipsec 而不需要另外安装软件。所以 作为内网服务使用还是非常方便。

加上之前openwrt迁移到lxc后,发现自带的ipsec 有问题。所以干脆lxc单独运行一个,独立运行 备份和使用都方便太多了。

lxc 也应该遵守 one 容器 one server

废话到此为止

创建 一个lxc

母盘 我选的 alpine 3.16 , dhcp分配ip,然后在dhcp路由上绑定静态ip 。 系统盘1g就够用 内存随便给一点 swap关闭,cpu给12核心 运行一下命令先安装配置docker

之所以lxc套docker 是因为懒得折腾,而且alpine体积很小。

1
2
3
4
5
sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories
apk add docker 
rc-update add docker boot
service docker start
docker version

准备配置文件

下面的命令 要一次性输入

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
cat > /root/ipsec.env  <<EOF
# Define your own values for these variables
# - DO NOT put "" or '' around values, or add space around =
# - DO NOT use these special characters within values: \ " '
# psk密钥
VPN_IPSEC_PSK=密钥
# 配置用于登陆VPN的账号和密码
VPN_USER=主用户名
VPN_PASSWORD=主用户名的密码
# 如下应该填写本机的外网IP 不强制
# VPN_PUBLIC_IP=10.1.1.45
# (Optional) Define additional VPN users
# - Uncomment and replace with your own values
# - Usernames and passwords must be separated by spaces
# 配置额外的用户名和密码
VPN_ADDL_USERS=用户2 用户3
VPN_ADDL_PASSWORDS=用户2的密码  用户3的密码
# (Optional) Use alternative DNS servers
# - By default, clients are set to use Google Public DNS
# - Example below shows using Cloudflare's DNS service
VPN_DNS_SRV1=1.1.1.1
VPN_DNS_SRV2=223.6.6.6
EOF

启动docker

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
docker run \
    --name ipsec --network=host \
    --env-file  /root/ipsec.env \
    --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

查看状态

1
docker exec -it ipsec  ipsec status

查看用户链接

1
docker exec -it ipsec  ipsec whack --trafficstatus

测试和公网访问

主路由上 或者 dmz上,创建 端口映射 500 和4500 两个端口的 udp即可。

备份

lxc 容器,直接在pve后台备份即可

更多

查看作者的:https://github.com/hwdsl2/docker-ipsec-vpn-server/blob/master/docs/advanced-usage-zh.md

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计