海运的博客

ROS通过DNAT实现推送PUSH广告、通知等服务

发布时间:November 1, 2012 // 分类:ROS // No Comments

实现:ROS下客户第一次打开网页时重定向到自定义页面,可用于推送广告、PPPOE用户到期提醒等服务。
1.在postrouting链添加规则:

add action=add-src-to-address-list address-list=LAN address-list-timeout=5m chain=postrouting dst-port=80 protocol=tcp
#经过postrouting链时添加IP至地址列表

2.在NAT表prerouting链添加DNAT,判断条件为源地址不在LAN列表,DNAT后经过postrouting链会添加IP至LAN列表,再次访问网络正常。

add action=dst-nat chain=dstnat dst-port=80 in-interface=bridge-local protocol=tcp src-address-list=!LAN to-addresses=192.168.1.4 to-ports=80
#DNAT至192.168.1.4:80
ip firewall nat add chain=srcnat action=masquerade dst-address=192.168.1.4
#添加相应SNAT

如果客户端使用PPPOE拨号可用以下脚本判断客户端是否在线,如不在线从LAN列表中将IP移除。

#https://www.haiyun.me
{:local ip
/ip firewall address-list
:foreach i in=[find list=LAN] do={
#遍历LAN列表内IP赋值ip
:set ip [get $i address]
:if ([:len [/ip address find dynamic=yes network=$ip]]=0) do={remove $i}}
#查找相应IP是否在线,不在线则IP位数为0,删除相应IP。
}

标签:iptables, ros, dnat, ros实现通知、广告推送, ros路由push广告

评论已关闭

分类
最新文章
最近回复
  • 海运: 网络,找到相应的url编辑重发请求,firefox有此功能,其它未知。
  • knetxp: 用浏览器F12网络拦截或监听后编辑重发请求,修改url中的set为set_super,将POS...
  • Albert: 啊啊啊啊啊啊啊啊啊 我太激动了,终于好了英文区搜索了半天,翻遍了 pve 论坛没找到好方法,博...
  • jiangker: good, very helpful to me
  • fengfeng: N1 armbian 能有编译下内核吗。。我要开启can 不懂怎么操作
  • 1: 方法一ngtcp2要改下:./configure PKG_CONFIG_PATH=/usr/l...
  • 海运: 关闭服务器
  • 海风: override.battery.charge.low以及override.battery.r...
  • koldjf: 不能过滤
  • 杰迪武士: 此文甚好甚强巨,依照此文在树莓派2 + Rasbian上部署成功 感谢博主美文共赏