当前位置: 首页 > news >正文

openVPN+SmartDNS=openDNS or smartVPN?

fa5dec83d78fb04bd589ad8dfc7ba7e5.gif

正文共:777 字 11 图,预估阅读时间:1 分钟

我们现在已经熟练的掌握了openVPN的部署方式和配置方法(带认证的openVPN连接/断开操作指南,还掌握了在CentOS系统部署SmartDNS的方法基于CentOS部署SmartDNS。在某些场景下,我们可能需要使用openVPN服务器来作为DNS服务器进行地址解析,那是不是可以组合一下呢?

首先,还是端口的问题。一般情况下,运营商默认封禁一些知名端口家庭宽带的公网IPv4地址到底封了多少端口?,其中就包括DNS(Domain Name System,域名系统)服务使用的UDP端口53。正常来讲,如果需要使用53端口,都需要向网络运营商提供信息进行报备,之后开通使用。

但是,我们现在不是用的openVPN吗?连接建立之后,理论上我们跟服务器的通信就是内网了,就没有广域网封控的限制了。理论如此,实际呢?我们来测试一下。

跟上次一样,我们登录云主机之后,先下载SmartDNS配套的安装包。

wget https://github.com/pymumu/smartdns/releases/download/Release40/smartdns.1.2023.01.02-1537.x86_64-linux-all.tar.gz

2b0fc54495e96b1404c408e66e2db41e.png

然后解压文件,并切换到smartdns目录下,执行安装命令。

tar zxf smartdns.1.2023.01.02-1537.x86_64-linux-all.tar.gz
cd smartdns
./install -i

7d9005cd7a045070d416def64289e0ca.png

接下来,我们修改SmartDNS的配置文件/etc/smartdns/smartdns.conf,主要是指定IPv4的监听端口、配置配置SmartDNS的上游服务器信息。

1f350b8da984e271d680f42acb8c2514.png

然后我们启动SmartDNS服务,并使能开启自启。

systemctl enable smartdns
systemctl start smartdns

6756eba2d8ba60d86cae5a494746fd94.png

查看服务端口的启动状态。

69c1b4911b916a2580bfa71086068a43.png

这里简单说明一下,虽然我们使用的是UDP协议,并且IPv4仅支持UDP协议基于TCP的DNS传输:操作要求基于TCP的DNS传输:实施要求,但是我们启用了IPv6的TCP监听,这样我们就能比较方便地看到SmartDNS服务是否正常了。

最后,我们还需要修改一下openVPN服务器的配置文件,向客户端推送一条地址为openVPN网关的DNS。

212549470d6cb3797b652bb13633f02f.png

重新加载并启动openVPN服务。

0da453db9717b1ba5a16723f585cbecf.png

通过客户端连接openVPN服务器,连接成功之后,查看客户端的网络连接状态。

c664cbbbcdb204f3b054837b3a5f93e6.png

我们可以看到,客户端已经获取到了下发的配置,并且成功将DNS服务器设置为了网关。然后我们执行命令测试一下,看DNS解析是否生效。

nslookup -querytype=ptr smartdns

84dc676aeed4d2670f3c4db5870aa413.png

可以看到,解析的值为smartVPN,这是我们设置的服务器的名称,表示配置生效。

最后,我们测试一下地址解析情况。

b02aa160598ce71f22bceb8b9d42ecf1.png

解析是正常的,就是时延比较糟糕。

d3a5b4f87c3c979e5ef5e1661dfda495.png

查看解析日志,解析都是正常的,未出现报错信息。

这种openVPN和SmartDNS的组合体,你说是叫openDNS好呢?还是叫smartVPN好一些呢?

bf25f260cadb63e17a2cf73c67ce632d.gif

长按二维码
关注我们吧

e08828c6c5be10cb3733b264bd3b78ff.jpeg

451feaa08c3542d1370a5b3b76a3d51c.png

带认证的openVPN连接/断开操作指南

配置openVPN使用用户名密码认证

基于CentOS部署SmartDNS

使用Python批量处理Excel的内容

如何使用Python提取Excel中固定单元格的内容

解决openVPN的递归路问题还是要从服务器端下手

在SD-WAN网络中应用OpenVPN,chatGPT是这样想的

配置优化:将openVPN的配置文件合4为1

通过Nginx做一个openVPN配置文件下载页面

openAI告诉我要这样运营公众号

听说kaili可以破解WiFi密码,装一个试试!

MSR810-LM快速配置通过LTE模块上网

相关文章:

  • 关于FPGA 使用SPI FLASH固化时如何配置固化参数
  • 多线程基础知识-
  • 游戏逆向工具分析及解决方案
  • Charles-ios无法抓包原因之一证书
  • 反射获取成员变量
  • 单片机按键处理模块
  • PostgreSQL的学习心得和知识总结(一百四十四)|深入理解PostgreSQL数据库之sendTuples的实现原理及功能修改
  • JZ2440笔记:rtc驱动
  • 修改wsl2默认配置使宿主机不能使用localhost或127.0.0.1访问WSL
  • 32. 【Java教程】集合
  • rtl8723DU移植 android4.4 4418
  • Go基础编程 - 03 - init函数、main函数、_(下划线)
  • 练习题-17
  • Spring IoC 的实现机制
  • Linux用户权限管理小实验002
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • “大数据应用场景”之隔壁老王(连载四)
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 3.7、@ResponseBody 和 @RestController
  • CSS居中完全指南——构建CSS居中决策树
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Javascript编码规范
  • JavaScript设计模式之工厂模式
  • Java超时控制的实现
  • mysql 数据库四种事务隔离级别
  • Mysql数据库的条件查询语句
  • nginx 配置多 域名 + 多 https
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • spring boot下thymeleaf全局静态变量配置
  • VUE es6技巧写法(持续更新中~~~)
  • vue脚手架vue-cli
  • 半理解系列--Promise的进化史
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 分享一份非常强势的Android面试题
  • 机器学习 vs. 深度学习
  • 机器学习学习笔记一
  • 利用jquery编写加法运算验证码
  • 前言-如何学习区块链
  • 深度解析利用ES6进行Promise封装总结
  • 听说你叫Java(二)–Servlet请求
  • 通过几道题目学习二叉搜索树
  • 原生Ajax
  • 云大使推广中的常见热门问题
  • 06-01 点餐小程序前台界面搭建
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 正则表达式-基础知识Review
  • #pragma 指令
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (Java数据结构)ArrayList
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016