很多ubunto 都有流量限制,使用流量。如每天使用200M ,超过了就要提示信息
原理,在本机 开一个 http 服务, 显示错误信息,哪流量使用完以后,使用 iptables 将 流量转发到 本机的 http 上,
这样用户浏览器上就会显示出来提示信息。
用 python 2.7 。如果你是 python3.x 需要修改一下 print
py_http.py
#!/usr/bin/python #author : ningci dev import socket import signal import errno from time import sleep def HttpResponse(header,context): response = "%s %d\n\n%s\n\n" % (header,len(context),context) return response HOST = "127.0.0.1" PORT = 8000 httpheader = ‘‘‘HTTP/1.1 200 OK Context-Type: text/html Server: Python-Server version 1.0 Context-Length: ‘‘‘ sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock.bind((HOST, PORT)) sock.listen(2) while 1: clientfd,addr = sock.accept() print "connect by ",addr data = clientfd.recv(1024) print data clientfd.send(HttpResponse(httpheader,‘net works is down !‘)) clientfd.close() print ‘Done‘
可以配置到 rc.d 的自启动中。
或者 python py_http.py & 这样测试。
打开浏览器,访问进行测试。
测试成功了。
接下来就是配置 iptables 了。
主要是使用 python 调用 vnstat 流量统计 ,当达到设定的值后,添加 iptables 转发rule。
转发rule
时间: 2024-11-16 07:44:23