GithubHelp home page GithubHelp logo

wrtbwmon's Introduction

wrtbwmon

Modified from https://code.google.com/p/wrtbwmon/.

Testers needed for IPv6 support

Experimental release: https://github.com/pyrovski/wrtbwmon/releases/tag/0.37_ipv6

Features

  • "User" column has mouseover text containing MAC and IP addresses
  • "First seen" and "Total" columns in usage table
  • Monitoring of locally generated traffic on a per-interface basis
  • remove function to delete iptables rules

What does it do?

wrtbwmon was designed to track bandwidth consumption on home routers. It accomplishes this with iptables rules, which means you don't need to run an extra process just to track bandwidth. wrtbwmon conveniently tracks bandwidth consumption on a per-IP address basis, so you can easily determine which user/device is the culprit.

Here is an example usage table: image

How do I use it?

  • Install: Download and install ipk from the releases page
  • Setup: wrtbwmon setup
  • Update table: wrtbwmon update /tmp/usage.db (you can place the data table anywhere)
  • Create html page: wrtbwmon publish /tmp/usage.db /tmp/usage.htm
  • Dump table to terminal: wrtbwmon dump /tmp/usage.db
  • Remove: wrtbwmon remove

Installation options

  • Install ipk
    • e.g.,:
      • cd /tmp
      • HTTPS: curl -LO https://github.com/pyrovski/wrtbwmon/releases/download/0.36/wrtbwmon_0.36_all.ipk
      • HTTP: you're on your own :( Busybox wget usually doesn't have SSL support.
      • OpenWrt: opkg install /tmp/wrtbwmon_0.36_all.ipk
  • Install deb from the releases page
  • Or, if you don't want to use an ipk or a deb:
    • cd /tmp
    • HTTPS: curl -L https://github.com/pyrovski/wrtbwmon/archive/0.36.tar.gz | tar xvz
    • cd wrtbwmon-0.36
    • ./install.sh wrtbwmon readDB.awk usage.htm1 usage.htm2 wrtbwmon
      • Currently, this depends on the install program. OpenWrt chose to provide this as the "coreutils-install" package.
  • Or, if you have make, just make install as root after cloning/unpacking.

Configuring the published table

  • wrtbwmon checks a few files for MAC -> name maps:
    • 4th argument to wrtbwmon publish <DB> <userDB>
    • /tmp/dhcp.leases
    • /tmp/dnsmasq.conf
    • /etc/dnsmasq.conf
    • /etc/hosts
  • If all of the above do not yield a match, the script will optionally perform a reverse DNS lookup directed at the DNS server specified in the DNS variable. If DNS is blank or unset, the script will not perform such lookups.

Regular updates

  • Add the following to root's crontab:

      # adapt PATH to your needs
      PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    
      * * * * * <script location> update /tmp/usage.db
      0 * * * * <script location> publish /tmp/usage.db /tmp/usage.htm
    
  • On OpenWRT you need to enable cron as it is disabled by default:

      /etc/init.d/cron start
      /etc/init.d/cron enable
    
  • Enable web serving of the generated page (optional) This varies by environment, but for lighttpd:

      ln -s /tmp/usage.htm /var/www/html/
    

Remove iptables rules

  • wrtbwmon remove

wrtbwmon's People

Contributors

jasonblewis avatar kiougar avatar patrikolausson avatar pyrovski avatar riptidewave93 avatar valentt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wrtbwmon's Issues

Search for hostnames in the `/etc/config/dhcp` file as well

Hey @pyrovski it's me again!

I think it would be great if wrtbwmon could also parse the /etc/config/dhcp file to search for hostnames.
The great thing about this file is that when the user assigns a static IP from the DHCP settings in his router the following entry appears in the file:

config host
	option name 'BradleyDesktop'
	option dns '1'
	option mac '1c:1b:0d:e5:60:f1'
	option ip '192.168.1.69'
	option leasetime 'infinite'

also, when the user sets a custom hostname from the Hostnames page the following entry appears:

config domain
	option name 'TestDeviceName'
	option ip '192.168.1.167'

What do you think? Is this PR worthy?


You can read the whole discussion that led to this solution in Kiougar/luci-wrtbwmon#13

openwrt ChaosCalmer help setup?

+ wrtbwmon.sh setup /tmp/usage.db
+ trap rm -f /tmp/*_20017.tmp; kill 20017 INT
+ binDir=/usr/sbin
+ dataDir=/usr/share/wrtbwmon
+ lockDir=/tmp/wrtbwmon.lock
+ pidFile=/tmp/wrtbwmon.lock/pid
+ chains=INPUT OUTPUT FORWARD
+ DEBUG=1
+ interfaces=br-lan
+ DB=/tmp/usage.db
+ mode=
+ header=#mac,ip,iface,in,out,total,first_date,last_date
+ newChain INPUT
+ chain=INPUT
+ iptables -t mangle -N RRDIPT_INPUT
+ grep+ iptables -t mangle -L INPUT --line-numbers -n
 RRDIPT_INPUT
+ [ 0 -ne 0 ]
+ newChain OUTPUT
+ chain=OUTPUT
+ iptables -t mangle -N RRDIPT_OUTPUT
+ grep RRDIPT_OUTPUT
+ iptables -t mangle -L OUTPUT --line-numbers -n
+ [ 0 -ne 0 ]
+ newChain FORWARD
+ chain=FORWARD
+ iptables -t mangle -N RRDIPT_FORWARD
+ grep RRDIPT_FORWARD
+ iptables -t mangle -L FORWARD --line-numbers -n
+ [ 0 -ne 0 ]
+ detectWAN
+ [ -n  ]
+ detectIF wan
+ which uci
+ uci=/sbin/uci
+ [ -n /sbin/uci -a -x /sbin/uci ]
+ /sbin/uci get network.wan.ifname
+ IF=eth0.2
+ [ 0 -eq 0 ]
+ echo eth0.2
+ return
+ wan=eth0.2
+ [ -n eth0.2 ]
+ echo eth0.2
+ return
+ wan=eth0.2
+ [ -z eth0.2 ]
+ interfaces=br-lan eth0.2
+ [ -n br-lan ]
+ [ -e /sys/class/net/br-lan ]
+ newRuleIF INPUT br-lan
+ chain=INPUT
+ IF=br-lan
+ + iptablesgrep -t  br-lan  mangle
 -nvL RRDIPT_INPUT
+ [ 0 -ne 0 ]
+ [ -n 1 ]
+ echo DEBUG: table mangle chain INPUT rule br-lan already exists?
DEBUG: table mangle chain INPUT rule br-lan already exists?
+ [ -n eth0.2 ]
+ [ -e /sys/class/net/eth0.2 ]
+ newRuleIF INPUT eth0.2
+ chain=INPUT
+ IF=eth0.2
+ grep  eth0.2
+ iptables -t mangle -nvL RRDIPT_INPUT
+ [ 0 -ne 0 ]
+ [ -n 1 ]
+ echo DEBUG: table mangle chain INPUT rule eth0.2 already exists?
DEBUG: table mangle chain INPUT rule eth0.2 already exists?
+ [ -n br-lan ]
+ [ -e /sys/class/net/br-lan ]
+ newRuleIF OUTPUT br-lan
+ chain=OUTPUT
+ IF=br-lan
+ grep  br-lan
+ iptables -t mangle -nvL RRDIPT_OUTPUT
+ [ 0 -ne 0 ]
+ [ -n 1 ]
+ echo DEBUG: table mangle chain OUTPUT rule br-lan already exists?
DEBUG: table mangle chain OUTPUT rule br-lan already exists?
+ [ -n eth0.2 ]
+ [ -e /sys/class/net/eth0.2 ]
+ newRuleIF OUTPUT eth0.2
+ chain=OUTPUT
+ IF=eth0.2
+ grep  eth0.2
+ iptables -t mangle -nvL RRDIPT_OUTPUT
+ [ 0 -ne 0 ]
+ [ -n 1 ]
+ echo DEBUG: table mangle chain OUTPUT rule eth0.2 already exists?
DEBUG: table mangle chain OUTPUT rule eth0.2 already exists?
+ update
+ [ -z /tmp/usage.db ]
+ [ ! -w /tmp/usage.db ]
+ [ -z eth0.2 ]
+ lock
+ attempts=0
+ [ 0 -lt 10 ]
+ mkdir /tmp/wrtbwmon.lock
+ break
+ mkdir /tmp/wrtbwmon.lock
+ echo 20017
+ [ -n 1 ]
+ echo 20017 got lock after 0 attempts
20017 got lock after 0 attempts
+ trap  INT
+ [ ! -f /tmp/usage.db ]
+ iptables -nvxL -t mangle -Z
+ awk -v mode= -v interfaces=br-lan eth0.2 -f /usr/sbin/readDB.awk /tmp/usage.db /proc/net/arp /tmp/iptables_20017.tmp
iptables v1.4.21: host/network `pkts' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network `pkts' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network `540' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network `540' not found
Try `iptables -h' or 'iptables --help' for more information.
Bad argument `RETURN'
Try `iptables -h' or 'iptables --help' for more information.
Bad argument `RETURN'
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network `Chain' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network `Chain' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network `330' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network `330' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network `452' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network `452' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network `358' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network `358' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network `Zeroing' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network `Zeroing' not found
Try `iptables -h' or 'iptables --help' for more information.
awk: can't open '': No such file or directory
+ unlock
+ rm -rf /tmp/wrtbwmon.lock
+ [ -n 1 ]
+ echo 20017 released lock
20017 released lock
+ trap rm -f /tmp/*_20017.tmp; kill 20017 INT
+ rm -f /tmp/iptables_20017.tmp

Can't install on LEDE

The ipk won't install on LEDE:

[root@lede:~] # cat /etc/openwrt_release
DISTRIB_ID='LEDE'
DISTRIB_RELEASE='SNAPSHOT'
DISTRIB_REVISION='r2709-b7677f0'
DISTRIB_CODENAME='reboot'
DISTRIB_TARGET='brcm47xx/mips74k'
DISTRIB_DESCRIPTION='LEDE Reboot SNAPSHOT r2709-b7677f0'
DISTRIB_TAINTS='no-all'

[root@lede:~] # opkg install ./wrtbwmon_0.35_all.ipk
Collected errors:

  • pkg_init_from_file: Malformed package file ./wrtbwmon_0.35_all.ipk.

iptables v1.4.21: host/network `eth1' not found when trying to use old usage.db

Hi - I have updated my wrtbwmon script with rev 208c412.

I'm not sure which version I used before but I remember I installed the previous version on 17 JAN).

The new version works but I have problems getting it to work with my old usage.db.

When I tried an update, I get these errors:
root@OpenWrt:~# /transfer/wrtbwmon# wrtbwmon.sh update /tmp/usage.db
iptables v1.4.21: host/network eth1' not found Tryiptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network eth1' not found Tryiptables -h' or 'iptables --help' for more information.

If I start with a fresh usage.db then all works:

root@OpenWrt:# /transfer/wrtbwmon# rm /tmp/usage.db
root@OpenWrt:
# /transfer/wrtbwmon# wrtbwmon.sh setup /tmp/usage.db
root@OpenWrt:# /transfer/wrtbwmon# wrtbwmon.sh update /tmp/usage.db
root@OpenWrt:
#

But when I restore the old usage.db and try an update, then it fails again:

root@OpenWrt:# /transfer/wrtbwmon# cp /tmp/usage.db-bak /tmp/usage.db
root@OpenWrt:
# /transfer/wrtbwmon# wrtbwmon.sh update /tmp/usage.db
iptables v1.4.21: host/network eth1' not found Tryiptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network eth1' not found Tryiptables -h' or 'iptables --help' for more information.

Has there been a change in the DB layout since JAN? If not, how can I merge the old and new usage.db?

Doesn't work :(

Any ideas why it doesn't work on OpenWrt?

Here is output with debugging in bash turned on:

./wrtbwmon.sh update /root/usage.db 
+ trap unlock; exit 1 SIGINT
+ chains=INPUT OUTPUT FORWARD
+ DEBUG=
+ tun=
+ DB=/root/usage.db
+ header=#mac,ip,iface,peak_in,peak_out,offpeak_in,offpeak_out,total,first_date,last_date
+ [ -z /root/usage.db ]
+ [ ! -f /root/usage.db ]
+ [ ! -w /root/usage.db ]
+ lock
+ attempts=0
+ [ 0 -lt 10 ]
+ [ -f /tmp/wrtbwmon.lock ]
+ echo 8948
+ read lockPID
+ [[ 8948 -eq 8948 ]]
+ break
+ iptables -t mangle -L RRDIPT_INPUT -vnxZ
+ iptables -t mangle -L RRDIPT_OUTPUT -vnxZ
+ iptables -t mangle -L RRDIPT_FORWARD -vnxZ
+ [ -n  ]
+ detectWAN
+ [ -n  ]
+ detectIF wan
+ which uci
+ uci=/sbin/uci
+ [ -n /sbin/uci -a -x /sbin/uci ]
+ /sbin/uci get network.wan.ifname
+ IF=eth0
+ [ 0 -eq 0 ]
+ echo eth0
+ return
+ wan=eth0
+ [ -n eth0 ]
+ echo eth0
+ return
+ wan=eth0
+ [ -n eth0 ]
+ readIF eth0
+ IF=eth0
+ grep  eth0  /tmp/traffic_INPUT_8948.tmp
+ read PKTS BYTES TARGET PROT OPT IFIN IFOUT SRC DST
+ [ INPUT = OUTPUT ]
+ [ INPUT = INPUT ]
+ [ eth0 = eth0 ]
+ IN=0
+ grep  eth0  /tmp/traffic_OUTPUT_8948.tmp
+ read PKTS BYTES TARGET PROT OPT IFIN IFOUT SRC DST
+ [ OUTPUT = OUTPUT ]
+ [ eth0 = eth0 ]
+ OUT=0
+ [ OUTPUT = INPUT ]
+ echo 0 0
+ IN_OUT=0 0
+ cut -d  -f1
+ echo 0 0
+ IN=0
+ echo 0 0
+ cut -d  -f2
+ OUT=0
+ [ 0 -gt 0 -o 0 -gt 0 ]
+ grep -vi ^IP\|0x0 /proc/net/arp
+ read IP _ _ MAC _ IFACE
+ IN=0
+ OUT=0
+ grep 192.168.0.1 /tmp/traffic_FORWARD_8948.tmp
+ read _ BYTES _ _ _ IFIN IFOUT SRC DST
+ [ 0.0.0.0/0 = 192.168.0.1 ]
+ [ 192.168.0.1 = 192.168.0.1 ]
+ OUT=0
+ read _ BYTES _ _ _ IFIN IFOUT SRC DST
+ [ 192.168.0.1 = 192.168.0.1 ]
+ IN=0
+ [ 0.0.0.0/0 = 192.168.0.1 ]
+ read _ BYTES _ _ _ IFIN IFOUT SRC DST
+ [ 0 -gt 0 -o 0 -gt 0 ]
+ read IP _ _ MAC _ IFACE
+ sed s/|$//
./wrtbwmon.sh: line 1: can't open /tmp/updated_8948.tmp: no such file
+ tr \n |
+ egrep -v /root/usage.db

interface improvements?

hey, great to know you have continued on wrtbwmon script. I really don't know why something like this isn't built in OpenWRT! really!

  1. I've added IP column next to User column following your code. I didn't find any reason to not showing it. I haven't taken a look at the "awk" branch although, so I stopped from pulling a request to master on that little change.

  2. are you planning to improve the design a bit? bootstrap? maybe integrate with luci interface as luci-app-wrtbwmon?

  3. if I do wrtbwmon publish /tmp/usage.db /tmp/usage.htm every minute instead of an hour inside my cronjob, would it be resource consuming? would it be possible to only publish when accessing the html file? and maybe include an autorefresh feature?

sorry, lot of questions :)

postinst is not included in ipk

The postinst file is not included in the control archive of the ipk package. It sets up a useful cron job for updating the database and the web page.

Also, on openwrt there is no wrtbwmon user, so either one needs to be created or the cron job needs to be set up in /etc/cronjobs/root instead of /etc/cronjobs/wrtbwmon.

Repeated rules in iptables

Hi
been using this utility for a while (actually also forked it as I'm creating a version that sends all the data to a Pi or other Linux device for storing in a sqlite database), and have noticed a small issue. The RRDIPT_FORWARD rules have many repeated entries.
As I understand it the newRule(arp_ip) function will add rules to this section when it detects an IP address that it thinks isn't in there already. I think the issue is with this section of code:
# for hosts without rules
for(host in hosts){
if(!inInterfaces(host))
newRule(host)
}

If I understand this code correctly, if the IP exists in the usage.db but NOT in the arps table, then the specific host won't be removed from the hosts array; then when we get to this section of code, it treats it like a host that hasn't been entered in the RRDIPT_FORWARD ruleset and adds it again.

I've got a few ideas on how to fix this, but don't want to break anything (not knowing the full intent of this code section.)

Power cut

I live in a place where there is a lot of power cut.
So I've setup the database on a USB stick. But it looks like, because of the cut, the file became empty (0 bytes).
So I'm thinking of 2 improvements : during an update, make backups. At least 3, or maybe configurable. Example : usage.db.3 would be deleted, usage.db.2 renamed usage.db.3, usage.db.1 renamed usage.db.2, usage.db copied usage.db.1 and then finally usage.db could be updated.

Then at setup, do something like if usage.db is valid, use it. If not delete it, rename usage.db.1 to usage.db and try it, and so forth if usage.db.1 is not valid.

Now, how to know if a file is valid ? Maybe just add in the file a last line containing FileSize=xxx. If, when opening the usage.db (for setup or update), you can't find FileSize, or FileSize doesn't match, it's invalid.

Food for though, let me know what you think. Thanks.

IP not expanded correctly

Hi,

Thanks for the wonderful utility! It's certainly very useful! I am running the latest release of openwrt, and I see this kind of output: (I've obfuscated some personal details)

User Download Upload Total First seen Last seen
cgi-bin index.html luci-static 1.934 G 298 M 2.232 G 01-02-2016_19:41:30 04-02-2016_17:00:15
ss-ubuntu 1.469 G 373 M 1.842 G 01-02-2016_19:41:29 04-02-2016_17:00:16
08:.....:a8 1.095 G 35 M 1.13 G 01-02-2016_19:41:29 03-02-2016_00:00:00
android-2......f5870fa 834 M 16 M 850 M 01-02-2016_21:00:00 04-02-2016_10:00:00
cgi-bin index.html luci-static 404 M 77 M 481 M 01-02-2016_19:41:30 04-02-2016_14:00:00
cgi-bin index.html luci-static 340 M 32 M 373 M 02-02-2016_20:00:00 04-02-2016_17:00:00

Is this something you've seen already, and would you please be able to help?

Best,
Sumit.

How to build into openwrt?

Dear Pyrovski,

To build wrtbwmon packages into openwrt firmware, I added the following line to the feeds.conf in the OpenWrt buildroot:

src-git wrtbwmon https://github.com/pyrovski/wrtbwmon.git

Then I update and install feeds.

But when I run "make menuconfig", I cannot see any wrtbwmon package to be selected. If I run "make V=s", it generate a firmware, but without wrtbwmon.

Is it possible to build wrtbwmon package to be included into the openwrt firmware?

Thanks a lot for any idea!

Usage is too low compared to the real usage

in very short, after I installed wrtbwmon as well as the luci addon, I tried it by mass downloading stuff just to see how it would react, weirdly enough I could not get more than about 300KB/s download speed to show and a total download of 3MB was noted which is inaccurate considering I've been downloading about 1GB of stuff during my tests at a speed of around 2MBps.

I off course kept the page running during the whole process to keep an eye out, I also noted that it sometimes would even go as far as to say I had 0 B/s on each refresh while I was downloading.

presumptions

First thanks for updating wrtbwmon script, it worked for me once but now it is giving me lots of errors.
I looked at your code and one thing I don't like is that you have make is to take too much presumtions and don't leave choice to users.

For example I would like to track wifi interface which is in network called also wifi, with your current script I can't do that without heavily modifying whole code.

Original script has nice variables that let users choose which interface to monitor.

Will you consider going back more to original authors idea of being more flexible?

Thanks!

Problem with WAN Detection OPENWRT

Thanks for updating this script,
Compared to the Master branch, the AWK branch seems to have a problem with the way it writes out the detected WAN into the DB file.
For debugging purposes i just ran the Master branch and then the AWK branch with the following
MASTER
(WAN),NA,eth1,46508,22835,0,0,69343,04-05-2015_08:53:33,04-05-2015_08:53:34

AWK
eth1,NA,eth1,32,1672,,,1704,04-05-2015_09:47:25,04-05-2015_09:47:25

The extra three columns result in the quotes being in the wrong placed in the array when published, and the entire table then fails to load.
Array in Javascript in AWK generated HTML
new Array("eth1",
32.000000,1672,1704,04-05-2015_09:47:25,04-05-2015_09:47:25,"",""),

Hope this helps

cheers

Not seeing names in usage.htm

I've generated a users.txt file and am using it when publishing, but there's no change to the html page. What should I be seeing? Is my users format is messed up?

## /opt/wrtbwmon/users.txt
00:AA:11:BB:22:BC,black-cisco-router
74:AA:11:BB:22:10,xps
BC:AA:11:BB:22:10,server
...
F8:AA:11:BB:22:D9,iPod-touch
10:AA:11:BB:22:4E,printer
/opt/sbin/wrtbwmon publish /tmp/usage.db /opt/share/www/custom/usage.htm /opt/wrtbwmon/users.txt

2015-11-26 21_07_22-traffic

(As a general note, maybe instructions should refer to machine names as well as or instead of users, since the lookup is by ip and some devices have multiple users.)

eth1 wan interface is backwards?

For eth1, which is actually my wan interface shows download 147mb and upload 4.451GB. This is actually backwards. 4.451GB has been downloaded to the router via transmission, not uploaded to the Internet.

iptables errors on setup

Linksys WRT1900AC
OpenWrt Chaos Calmer 15.05.1 / LuCI 15.05-142-gb6330a1 Release (git-15.363.78009-956be55)

root@connect:# wrtbwmon.sh remove
root@connect:
# wrtbwmon.sh setup /tmp/usage.db
iptables v1.4.21: host/network pkts' not found Try iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network pkts' not found Try iptables -h' or 'iptables --help' for more information.
Bad argument RETURN' Try iptables -h' or 'iptables --help' for more information.
Bad argument RETURN' Try iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network Chain' not found Try iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network Chain' not found Try iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network Zeroing' not found Try iptables -h' or 'iptables --help' for more information.
iptables v1.4.21: host/network Zeroing' not found Try iptables -h' or 'iptables --help' for more information.
awk: can't open '': No such file or directory
root@connect:~#

What could be causing these errors?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.