iptables只能根据ip地址进行转发,不能识别域名,而dnsmasq-full不仅可以实现域名-IP的映射,还可以把这个映射关系存储在ipset中,所以使用dnsmasq+ipset就可以实现iptables对域名的转发。
  
  Dnsmasq接收到一个DNS查询请求,首先匹配配置文件中的域名列表,如果匹配成功某域名,就把IP的查询结果存储在一个或几个ipset集合中,然后使用iptables对这个ipset中的全部ip进行匹配并做相应的处理,如DROP或者REDIRECT。
  
  ipset是 Linux 防火墙iptables的一个伴随工具。 除了其他众多功能,它允许你建立规则来轻松愉快地屏蔽一组IP地址。
  
  步骤
  
  dnsmasq-2.48没有ipset特性,安装dnsmasq-2.71来支持ipset
  
  wget http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.71.tar.gz
  
  tar xzf dnsmasq-2.71.tar.gz
  
  cd dnsmasq-2.71
  
  make && sudo make install
  
  1.1 加入dnsmasq-full的ipset对应配置
  
  /etc/dnsmasq.conf
  
  conf-dir=/etc/dnsmasq.d
  
  1.2 加入dnsmasq_list.conf到/etc/dnsmasq.d/
  
  git clone https://github.com/ yongshiyule178.com cokebar/gfwlist2dnsmasq.git
  
  cd gfwlist2dnsmasq
  
  python2 gfwlist2dnsmasq.py
  
  mkdir /etc/dnsmasq.d
  
  cp dnsmasq_list.conf /etc/dnsmasq.d
  
  1.3 dnsmasq_list.conf格式
  
  #使用不受污染的DNS解析该域名,可以将此IP改为自己使用的DNS服务器
  
  server=/google.com/127.0.0.1#5353
  
  #将解析出来的IP保存到名为gfwlist的ipset表中
  
  ipset=/google.com/gfwlist
  
  安装SS
  
  https://copr.fedorainfracloud.org/coprs/librehat/shadowsocks/repo/epel-6/librehat-shadowsocks-epel-6.repo
  
  mv librehat-shadowsocks-epel-6.repo www.gcyl152.com /etc/yum.repos.d/
  
  yum update
  
  yum install shadowsocks-libev
  
  wget https://cokebar.info/wp-content/uploads/2014/11/shadowsocks-libev
  
  mv shadowsocks-libev /etc/init.d/
  
  2.1. 修改SS配置文件,并启动
  
  cat /etc/shadowsocks-libev/config.json
  
  {
  
  "server":"x.x.x.x",
  
  "server_port":xxxx,
  
  "local_address":"127.0.0.1",
  
  "local_port":1080,
  
  "password":"********",
  
  "timeout":300,
  
  "method":"rc4-md5"
  
  }
  
  命令行执行并打开debug log来查看
  
  ss-redir -c /etc/shadowsocks-libev/config.www.mcyllpt.com json -b 0.0.0.0 -v
  
  ss-tunnel -c /etc/shadowsocks-libev/ www.tongqt178.com config.json -b 0.0.0.0 -l 5353 -L 8.8.8.8:53 -u -v
  
  安装ipset工具
  
  yum install ipset
  
  3.1 创建对应的ipset
  
  #创建名为gfwlist,格式为iphash的集合
  
  ipset -N gfwlist iphash -!
  
  创建iptables表
  
  #匹配gfwlist中ip的nat流量均被转发到shadowsocks端口
  
  iptables -t nat -A PREROUTING -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 1080
  
  #匹配gfwlist中ip的本机流量均被转发到shadowsocks端口
  
  iptables -t nat -A OUTPUT -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port 1080
  
  NOTE:如果INPUT链被默认DROP还需要打开1080端口
  
  iptables -A INPUT -p tcp -m state -www.ysyl157.com-state NEW -m tcp --dport 1080 -j ACCEPT
  
  iptables -A INPUT -p udp -m udp --dport 1080 -j ACCEP

转载于:https://www.cnblogs.com/qwangxiao/p/10160074.html

dnsmasq-2.48没有ipset特性,安装dnsmasq-2.71来支持ipset相关推荐

  1. 端口如何支持非localhost访问_新特性解读 | MySQL 8.0.19 支持 DNS SRV

    转载自公众号:玩转MySQL 作者:洪斌 MySQL Router 是 InnoDB Cluster 架构的访问入口,在架构部署上,官方给出的建议是 router 与应用端绑定部署,避免 router ...

  2. vim8支持的linux版本,Vim 8.0 版本安装方法及添加Python支持

    利用Git安装 最简单也是最有效的方法 1. 获取Vim仓库: git clone https://github.com/vim/vim.git 2. 升级到最新的版本: cd vim git pul ...

  3. 不少朋友在安装IDES 4.71的过程中都遇到了下面的出错提示:

    不少朋友在安装IDES 4.71的过程中都遇到了下面的出错提示: " Copying SAPinst... This may last several minutes. Cannot ext ...

  4. Thinkpad 笔记本VMware Workstation 安装虚拟机出现“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”解决方法

    Thinkpad 笔记本VMware Workstation 安装虚拟机出现"此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态"解决方法 参考文章: (1) ...

  5. 解决VMware下安装Ubuntu 16.04 不支持1920X1080分辨率的问题

    解决VMware下安装Ubuntu 16.04 不支持1920X1080分辨率的问题 参考文章: (1)解决VMware下安装Ubuntu 16.04 不支持1920X1080分辨率的问题 (2)ht ...

  6. 非华为电脑安装华为电脑管家(支持多屏协同)

    非华为电脑安装华为电脑管家(支持多屏协同) 数码 1.下载文件包. 百度网盘链接:https://pan.baidu.com/s/1O8WUs_OisNoUpibHpeEchQ 提取码:454c 阿里 ...

  7. Win7使用金山毒霸提示“安装引擎失败,不支持此接口”的解决方法

    很多Win7系统用户在使用金山毒霸的时候,会遇到金山毒霸提示示"安装引擎失败,不支持此接口"的情况.那么,金山毒霸提示安装引擎失败该怎么办呢?下面小编为大家带来Win7使用金山毒霸 ...

  8. awstats mysql_AWstats7.4在Windows 10 64位下的安装与配置,以支持Apache 2.4的日志分析...

    1.AWstats7.4在Windows 10 64位下的安装与配置,以支持Apache 2.4的日志分析: 2.安装perl,打开:https://www.perl.org/ ,如图1,在Windo ...

  9. ubuntu 安装dnsmasq dnscrypt-proxy

    考虑目前DNS污染等情况. 安装了DNSMASQ等软件解决一下. 1 2 3 4 sudo apt-get install python-software-properties sudo add-ap ...

  10. linux安装nas4free,FreeNAS的Linux支持与utorrent等Linux软件的安装与设置

    5 }9 O  r  _4 q1 k3 {' A( TFreeNAS装完之后是建议另外安装一个BT软件,虽然FreeNAS内置了transmission,理应是非常好的一个BT软件,但是,网上说它不支 ...

最新文章

  1. 2010中国大陆×××指南,满足你的欲望!
  2. Codeforces 847C - Sum of Nestings
  3. foreach php,详解PHP中foreach的用法和实例
  4. python输入完怎么运行-教你如何编写、保存与运行Python程序的方法
  5. 实战:搭建CA认证中心,使用CA证书搭建HTTPS
  6. 2020蓝桥杯省赛---java---B---7(分类计数)
  7. 岳阳鸿蒙数学培优阶梯训练,鸿蒙应用-呼吸训练app部分练习展示(开始)
  8. phash图像识别应用
  9. 用Github的Api发现stars最多开源项目
  10. 数据结构——二叉链表
  11. war包还原成项目_war包反编译成整个java项目
  12. 英语期刊写作-通往国际学术舞台的阶梯第六章答案
  13. 开源扫描仪软件_适用于Windows的优秀开源免费扫描仪软件?
  14. 修改文件类型(txt文件改为bat、sh文件)
  15. 找回HDFS corrupted文件残留数据
  16. 参观一家买过十年货的淘宝店是怎样的体验?——新魔术8000生产基地探秘
  17. Salesforce中reRender和rendered控件的使用
  18. oracle表空间不足影响,oracle表空间不足
  19. 有三顶红帽子和两顶蓝帽子逻辑推理
  20. cad角度命令怎么输入_怎么对角度进行尺寸标识 CAD钝角标注技巧

热门文章

  1. 6.4Spring环境配置等级和优先级
  2. [渝粤教育] 西南科技大学 机械设计基础 在线考试复习资料(1)
  3. 【渝粤教育】广东开放大学 演绎娱乐经验管理 形成性考核 (49)
  4. 协同过滤之ALS-WR算法
  5. 从实例入手,讲解 CMake 的常见用法。demo1-demo8
  6. eclipse 添加jar (servlet api)
  7. 使用xadmin更新数据时,报错expected string or bytes-like object
  8. [转]亿万富翁对大学生的18句话
  9. dp P1103 书本整理 洛谷
  10. Java web 第一天