frp内网穿透基本用法

实现智能dns为用户分配最佳线路

妙音 posted @ 2019年3月24日 09:43 in network with tags 智能dns , 2133 阅读
 

说明

 
服务器放在国外,不同线路质量不一样。如何根据访问者的所在地、运营商,智能的分配线路呢?
 
有些域名服务器上提供线路优先级,比如阿里云,如果是国外域名服务商,一般都不会提供。
 
所以通常要我们自己实现自动分配线路的功能。
 
 

例如

 
有一个网站www.yongqingking.top,它的真实服务器ServerA在海外。网站的部分用户在国内。
由于各种原因,在国内访问海外服务器的质量不是很好。为了改善状态,打算为国内用户提供多条访问线路。
 
用户访问时,自动分配合适线路,提供网站访问质量。
 
 

待解决问题

 
要解决上面问题,需要解决下面几个问题
 
1.如何实现多条访问线路?
 
2.如何自动分配线路?
 
3.如何知道线路质量最好?
 
 

如何实现多条访问线路?--端口映射

 
在合适的地区新建节点NodeA,将NodeA的80端口转发给ServerA的80端口。
 
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=ServerA的ip:toport=80  --permanent
 

如何自动分配线路?--bind视图

 
1.分配给用户合适的节点ip就等于分配了线路。
 
2.分配ip是dns干的事情,我们必须要弄个自己的dns服务器。
 
3.dns服务器有很多,我们可以自己写一个,也可以用dnsmasq,chinadns,smartdns等,但是都不适合
 
4.最终我选择的是bind,比较常用的一个dns服务器,利用它的视图功能
 
  • 安装
 
yum install bind
 
  • 修改配置允许外部访问
 
options {
        listen-on port 53 { 127.0.0.1; 主机ip;};
        allow-query     { any;};
}
 
  • 配置acl+视图
 
介绍bind视图的文章很多
 
 
  • 定制bind视图
 
开发功能接口修改bind视图,并且bind支持热加载,不需要重启
 
 

如何知道线路质量呢?--反向扫描

 
1.通常的方法是,在各个地区布置探测节点。付出成本太高,不现实。
 
2.借助第三方的服务,例如站长工具等。
 
3.系统中记录了访问者ip,在节点上ping所有ip或扫描端口
 
定时扫描线路质量,然后再更新dns配置。
 

来源

 
 

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter