openvpn

OPENVPN

这里介绍了使用 openvpn 在 linux 上的使用。

client

安装 openvpn

1
2
3
4
# redhat/centos
yum install openvpn
# ubuntu/debian
apt install openvpn

设置配置 /etc/openvpn,在 client 中设置服务端提供的认证文件,启动连接,输入认证账户。

1
openvpn --config [path to file .ovpn]

[!CAUTION]
连接 openvpn 会给分配新 ip,故服务器远程连接时,推荐在服务器容器中连接,避免影响主机网络环境。

连接

  • 连接参数

1
2
3
4
5
6
openvpn \
--daemon \
--cd /etc/openvpn \
--config client.ovpn \
--auth-user-pass /etc/openvpn/passwd \
--log-append /var/log/openvpn.log
  • 参数说明

1
2
3
4
5
--daemon           # 后台运行
--cd # 配置文件目录路径
--config # 配置文件名称
--auth-user-pass # 指定账号密码文件
--log-append # 日志文件

自动连接配置

  • 创建 user/pass 认证文件

1
echo 'user\npassword' > password
  • 配置 expect 实现自动输入 Private Password: apt/yum install -y expect

  • 配置脚本 connect.sh,并给到执行权限: chmod +x connect.sh

1
2
3
4
5
6
7
8
#!/usr/bin/expect
# connect.sh
spawn openvpn --cd /etc/openvpn/ --config client/client.ovpn --auth-user-pass path-to-password
match_max 100000
expect "*?assword:*"
send -- "private password here"
send -- "\r"
expect eof
1
2
3
4
5
6
#!/bin/sh
#!/usr/bin/env bash
apt install -y --no-install-recommends openvpn expect
cp -r . /etc/openvpn/
cd /etc/openvpn || exit
./connect.sh

reference