EdgeRouter 的 GUI 界面功能太多简陋,还好 Cli 功能尚可,我们可以通过 Cli 添加 OpenVPN 隧道。

CLI 添加 openvpn 客户端

首先把 openvpn 客户端配置文件、证书、CA、私钥、账户密码文件(如果需要的话)放在 /config/auth 目录。

.ovpn 配置文件示例(此配置适用于 Mikrotik 搭建的 ovpn 服务端):

client
dev tun
# Mikrotik OVPN 服务端只支持 TCP 方式
proto tcp
remote 192.168.1.1 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca /config/auth/ca.crt
cert /config/auth/client.crt
key /config/auth/client.key
remote-cert-tls server
# auth-user-pass.txt 文件内容应为第一行写账号,第二行写密码
auth-user-pass /config/auth/auth-user-pass.txt
# Mikrotik OVPN 服务端不支持压缩,所以要注释掉 comp-lzo
#comp-lzo
verb 1
reneg-sec 0

cli 界面执行下面的配置:

# 设置 openvpn 使用的虚拟 tun 隧道编号及配置文件路径
set interfaces openvpn vtun0 config-file /config/auth/test.ovpn
# 设置 openvpn 虚拟 tun 隧道的描述
set interfaces openvpn vtun0 description "Private Internet Access VPN"
# 提交变更,并保存,提交之前可以先用 `sudo openvpn --config /config/auth/test.ovpn` 命令测试下是否能连接成功。
commit && save

重启路由,使修改的配置生效。

查看 openvpn 虚拟 tun 隧道状态

我们可以在 GUI 页面 dashbroad 查看网卡状态,也可以通过 cli 查看:

show interfaces openvpn vtun0

EdgeRouter 使用 openvpn 可以做些什么?

  1. 搭梯子
  2. 穿透 nat,实现远程维护

我主要是用来做第2个需求,使用 openvpn 连接到有固定 IP 的服务器,以便维护这些没有固定 IP 的路由器,很方便。