Several tools are included in Super Simple Server to help you manage your bandwidth very closely. This can be especially useful if you are sharing your internet connection with other users or services.
A number of charts are available in the admin section of your site, at
mysite.example/admin/bandwidth
. You will also find a place where the throttle control settings can be free-form edited.
At
mysite.example/admin/bandwidth?edit
you can edit the throttle settings. Here is a basic example:
in_limit: 1200K
out_limit: 750K
in_user_limit: 500K
out_user_limit: 300K
The basic format is
name:value
, one per line. Values can use a K, M, G on the end to signify standard units of a thousand, million, or billion.
The total limit for all traffic on the server is set with
in_limit
and
out_limit
.
The limit for individual users is set with
in_user_limit
and
out_user_limit
. This uses the user ID, or the session ID for guests, to enforce the limit.
Here is an example that will create a group for guests, and give them a separate bandwidth allowance, both collectively as a group with the
in_limit
and
out_limit
, and also as individual users. Users are determined by session ID, and will be limited individually with the
in_user_limit
and
out_user_limit
. The user limits will replace any previous user limits, but the group limits imposed with
in_limit
and
out_limit
will be applied after the global limit, so they can only be used to lower bandwidth allowed, not raise it.
group:guests
capture_levels:guest
in_limit: 200K
out_limit: 200K
in_user_limit: 150K
out_user_limit: 150K
When making a group, the first line should be
group:
with a label for the group, then lines that describe the properties of the group, with no blank lines. A blank line denotes the end of a group.
Capture
Only one
capture_
line has to match for a connection to be captured into a group. Groups are evaluated from top to bottom.
capture_levels:
- one or more levels, separated by a comma, such as owner,admin,op,mod,vip,trusted,user,newuser,silent,disabled
capture_ips:
- one or more addresses, with optional prefix length, eg.
192.168.0.0/24,10.1.2.3,2004:9FC2::/32
capture_users:
- a list of user names, comma separated
capture_paths:
- a list of paths, comma separated
capture_sites:
- a list of site host names, comma separated
Match / Exclude Filters
The same criteria used for the
capture_
lines can be used for
match_
and
exclude_
lines. For a connection to be attached to a group, it must first be captured by one
capture_
line, and then match all
match_
lines (if there are any), and then not match any
exclude_
lines. Note that any group that does not have any capture lines will capture all connections by default, which will then be subject to any match/exclude lines as usual.
match_levels:
- one or more levels, separated by a comma, such as owner,admin,op,mod,vip,trusted,user,newuser,silent,disabled
match_ips:
- one or more addresses, with optional prefix length, eg.
192.168.0.0/24,10.1.2.3,2004:9FC2::/32
match_users:
- a list of user names, comma separated
match_paths:
- a list of paths, comma separated
match_sites:
- a list of site host names, comma separated
exclude_levels:
- one or more levels, separated by a comma, such as owner,admin,op,mod,vip,trusted,user,newuser,silent,disabled
exclude_ips:
- one or more addresses, with optional prefix length, eg.
192.168.0.0/24,10.1.2.3,2004:9FC2::/32
exclude_users:
- a list of user names, comma separated
exclude_paths:
- a list of paths, comma separated
exclude_sites:
- a list of site host names, comma separated
During normal operation, the bandwidth throttle file is re-loaded from disk every few minutes. When loading, sections of the file can be selectively included or excluded based on the current time and/or date. This is done by adding one of the following lines, which will cause all lines after to be effective or not depending on whether the time or date matches the parameters.
times:
- a list if 24h time ranges, eg.
1800-0000,0500-0830
days:
- one or more of mon,tue,wed,thu,fri,sat,sun OR one or more day of the month ranges, eg.
1-10,18,22-25
months:
- one or more of jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec
years:
- a list of one or more years, comma separated
For any time/date filtering lines, you can later add the same line with the value
all
to stop the filtering. So for example if you wanted to filter a small section in the middle of a file to only be effective from midnight to 5 AM, you would put
times:0000-0500
above it and
times:all
below it.