魔改 OpenVPN3 支持 SRV,配合打洞连回家

1次阅读

共计 826 个字符,预计需要花费 3 分钟才能阅读完成。

前段时间我的公网 IP 掉了,也引起了大伙的讨论。我懒得跟运营商继续扯皮,所以想自己折腾折腾,用打洞的方式连回家。

首先要感谢 @mikewang @heiher @gdy666 几位大佬提供的 TCP 打洞的程序,不然我可能就只能选择 frp 之类中转的方案了,个人还是比较倾向于直连。

家里 HTTP 的服务通过 302 跳转访问,基本没什么痛点。SSH 连接借鉴的的是 natmap 项目中提出的方案——使用 NATMap 在 NAT-1 私网 IP 宽带上部署 SSH 服务,但是我选择将端口信息保存到 TXT 记录中,个人觉得更方便一点。

唯一比较难受的是,以前有公网 IP 的时候,可以直接用 VPN 连回家里,这样干活(摸鱼)能方便点,但是公网 IP 掉了以后,我就没办法连回家里内网了。

一开始我是想找有没有类似实现的 VPN,但似乎没找到,因为我原来用的就是 OpenVPN,服务端是 Mikrotik 自带的,索性就尝试魔改了一下 OpenVPN 客户端,调研后我选择魔改 OpenVPN 3 这个库,看起来挺多 UI 客户端都依赖这个库。

我修改的方法大概是这样的,需要 ovpn 配置文件中添加一行记录

remote-srv _openvpn._tcp.yourdomain.com

OpenVPN 3 启动时需要读取 ovpn 配置,如果发现有 remote-srv 字段的配置,就会尝试解析 SRV 记录,获取到对应的端口号后,自动覆盖掉端口号的配置。

由于要解析 SRV 记录,所以引入了 ldns 库,现在想想,可能利用 IP4P 格式的记录做解析可能更方便,还不用引入其他库,不过我都写完了才想起来,就懒得改了

本身这是一个核心库,但是它本身带了一个 cli 程序,编译完后用 cli 命令连接即可,我偷懒就没弄 GUI 了(我是废物

这个图是我在公司网络用 cli 连回 Mikrotik 管理页面的截图 魔改 OpenVPN3 支持 SRV,配合打洞连回家

仓库地址在这,欢迎大佬尝试使用,如果 readme 写的不清晰或者有问题,也欢迎提 issue:https://github.com/jdjingdian/openvpn3_srv

正文完
 0