整活 · 25 8 月, 2024 0

老毛子固件配置OpenVPN服务器实现公网访问家庭局域网

前言

会点进来的同学对老毛子固件(Padavan)应该不陌生。老毛子固件里有搭建OpenVPN的功能,正确配置可以实现从公网使用移动终端访问自家的局域网。

实现拓扑

本例中希望实现的拓扑如图。使用移动终端,通过OpenVPN从外网连接家用路由器的WAN口地址(需要是公网IP),进而访问内网192.168.10.0/24中搭建的各种服务。

怎么做

1. 启动OpenVPN服务

登录路由器的WebUI管理页面,找到左边的[VPN服务器],将[启用VPN服务器]开启,并在[VPN协议]中选择“OpenVPN”。

2. 访问内网的相关设置

绝大部分设置保持默认即可。设置完成后点击页面最下方的[应用本页面设置]保存设置。需要注意的是这里:

分配子网

这个地方如果选择“是(使用路由选择)”,那么在通过VPN访问上文拓扑图中的家用服务器时,服务器看到的将是源IP为VPN网络10.8.0.x的client在访问自己。
如果选择“是(NAT到LAN)”,那么服务器看到的将是源IP为路由器网关IP,一般情况下也就是192.168.10.1的client在访问自己。
推荐使用路由选择的方式,因为NAT消耗系统资源较多,对家用路由器负担较大。不过此时需要注意服务器的防火墙,需要设置为放行10.8.0.0/16访问

客户端访问

各个选项基本就是字面意思。需要注意的是“完全访问权限”包含了路由器自己。如果不想让外部设备访问到路由器,请按图中所示设置为“内网及互联网”。

3. 生成证书

在[OpenVPN证书和密钥]页面,输入以下信息后点[生成]。

Server CN: 你家路由器的DDNS域名(如果没有就申请一个吧!)
Bits: 非对称加密算法。默认选项是“RSA 1024”,也可以选择“EC ED25519”(椭圆曲线密码),保持安全性的同时生成会比较快一些。
Days valid: 证书过期日。想省事的话可直接设置为3650。

生成结束后,下方的文本框会出现证书信息。

4. 添加客户端账号

打开[客户端账号]选择卡,输入用户名和静态IP(我的版本好像设置了不起作用,但不写又不行),点右边的[+],然后点页面下方的[应用本页面设置]。

5. 连接VPN

点击上图中[导出client.ovpen],将配置文件下载到本地。
移动端下载安装OpenVPN客户端,然后导入下载的ovpen文件就可以连接了。

进阶设置

为客户端指定DNS

在[设置]页面点击[👉 OpenVPN 扩展配置],在最后一行加入以下文本后点击[应用本页面设置]:

push "dhcp-option DNS 8.8.8.8"

本例中,客户端连接OpenVPN后,会使用8.8.8.8作为DNS地址。