portstat

A simple port traffic monitor


Keywords
port, monitor, traffic
License
Apache-2.0
Install
pip install portstat==0.0.6

Documentation

portstat

A simple port traffic monitor

Install

Install pip

For Debian / Ubunut user

apt-get update
apt-get install python-pip

Install portstat

pip install portstat

System setting

Add the following line to /etc/rc.local to run portstat on the startup.

Notice that add it before exit 0 .

/sbin/iptables -N PORTSTAT
/sbin/iptables -A INPUT -j PORTSTAT
/sbin/iptables -A OUTPUT -j PORTSTAT
/bin/bash /etc/portstat.rules

To upload the traffic information every minute, we should add the following line in crontab -e

* * * * * /usr/local/bin/portstat -u

Run it every 5 minutes like the following

*/5 * * * * /usr/local/bin/portstat -u

To activate the new iptables rules, please run the /sbin/iptables command manually or issue a reboot command.

After that, you have installed portstat successfully.

Upgrade

Every new version I will upload it to pypi so that you can upgrade to the latest version with the following code.

pip install -U portstat

For some unexpectable reason, I can NOT promise that you can upgrade to the latest version without change your settings.

So, please come back to see what's new at every upgrade.

Usage

usage: portstat [-h] [-c CONFIG] [-v | -s | -u]

A simple port traffic monitor

optional arguments:
  -h, --help            show this help message and exit
  -c CONFIG, --config CONFIG
                        Path of the config file.
  -v, --version         Show portstat version.
  -s, --sync            Sync the portstat settings and iptables.
  -u, --upload          Upload the port stat with webhook.

Tutorial

First of all, you should install portstat as I mentioned above.

Create a conf in where you like, by default the path is /etc/portstat.conf, just remenber use -c path to declare the config file if you don't use the default path. The conf file should looks like that:

[imlonghao]
Port=80
Webhook=https://imlonghao.com/?imlonghao

[shadowsocks]
Port=10000-10010
Webhook=https://imlonghao.com/?shadowsocks

[test]
Port=22,111,8080
Webhook=https://imlonghao.com/?test

[name] used to distinguish every port you want to monitor.

Port=111 used to declare the port you want to monitor, it should be a int like 111 , or a range like 10000-10010, or 80,81,8080,8888 .

Webhook=https://imlonghao.com/ used to received the traffic information, portstat will post the information to the webhook like that

Then, save the config file.

Run portstat -s to create new iptables rules to monitor the port you just add.

Run portstat -u to upload to port traffic information to webhook manually.

Contribution

License

Licensed under the Apache License, Version 2.0