Author: BulletProof Software
HOWTO: Getting Started with BulletProof FTP Server
Thank you for your interest in BulletProof FTP Server.
Below is a list of HOWTO articles that have been written over the years to help customers in getting up and running with BulletProof FTP Server.
Note: Some of the screen-shots show older versions of the software. The UI hasn’t changed much between different versions, but you might find some of the buttons labeled differently than what appears.
Download, Install and Adding First User
HOWTO: Downloading BPFTP Server 2010
http://blog.builtbp.com/2010/09/howto-downloading-bpftp-server-2010/
HOWTO: Installing BPFTP Server 2010
http://blog.builtbp.com/2010/09/howto-installing-bpftp-server-2010/
HOWTO: Adding a User
http://blog.builtbp.com/2010/09/howto-adding-a-user/
Opening Your Firewall
It’s VERY common that people think only one-port is needed for ftp (default: tcp/ip 21). However, this is not true.
FTP requires at least two ports, one for the control-port (used to login and issue commands, default tcp/ip 21) and a data-port (default tcp/ip 30000 to 30100). One data-port is needed for every concurrent data-connection, for this reason we suggest using a range of 100 ports which will handle most needs.
HOWTO: Windows Firewall and BPFTP Server 2011
http://blog.builtbp.com/2011/06/windows-firewall-and-bulletproof-ftp-server/
HOWTO: Windows Firewall
http://blog.builtbp.com/2010/09/howto-windows-firewall/
HOWTO: Setting up NAT/Passive/Firewall Support
http://blog.builtbp.com/2010/09/howto-setting-up-natpassivefirewall-support/
Licensing
HOWTO: Enter Your Subscription-Code
http://blog.builtbp.com/2013/05/howto-enter-your-subscription-code/
HOWTO: Purchase an Upgrade to your License
http://blog.builtbp.com/2014/02/howto-purchase-an-upgrade-to-your-license/
HOWTO: Remove Your License-Code
http://blog.builtbp.com/2013/05/howto-remove-your-license-code/
Upgrading
FAQ: Can I Upgrade and retain all my Users, Groups and Settings?
http://blog.builtbp.com/2011/12/faq-can-i-upgrade-and-retail-all-my-users-groups-and-settings/
FAQ: Where does BPFTP Server store the Users, Groups and Settings?
http://blog.builtbp.com/2011/12/faq-where-does-bpftp-server-store-the-users-groups-and-settings/
HOWTO: Overridding the Storage-Path for Settings, Users and Groups
http://blog.builtbp.com/2011/10/howto-override-storage-path-for-settings-users-and-groups/
Windows System Service
HOWTO: Windows System-Service
http://blog.builtbp.com/2011/09/howto-windows-system-service/
FEATURE: Event Manager and Email Variables
[table id=1 /]
FEATURE: “reload” command-line parameter
This HOWTO video shows the process of executing the “reload” command at the command line to reload changes made to the USERS file.
1) BPS currently running as a SERVICE
2) Logging into BPS using “ftp.exe”
3) While the ftp-client is still connected
4) Change the “bpftpserver-users.ini” and edit the password
5) Issue the “bpftpserver -reload” command
6) BPS launches another instance to instruct the current instance to reload the configuration
7) The original ftp-client is still connected
8) Disconnect original ftp-client and try to login as old password (doesn’t work, since it was changed)
9) Try to login as the new password, it works.
HOWTO: Add Anonymous ftp-user to BPFTP Server
ROUTERS: Inactivity-Timeout and Keep-Alives
Inactivity-Timeout and Keep-Alives
426 Connection closed; transfer aborted. Error #10057
During a data-transfer (directory-listings or file-transfers), the control-connection (tcp/ip default 21, used to login and issue commands) is IDLE.
When this control-connection is IDLE, other pieces of networking-equipment between yourself and the ftp-client could choose to close idle connections with a function called “Inactivity Timeout”. This “Inactivity Timeout” can be found in the ftp-client’s first hop to the internet (their wifi/nat router), it could be found in the upstream routers through their ISPs, it can also be found in your own first-hop to the internet. Basically they are everywhere, but the first place is to set this value in your own hardware that provides routing to the internet (example below).
To combat this, the NOOP command (aka Keep-Alive) was made for ftp-clients in the RFC spec. During lengthy transfers, the ftp-client needs to send a NOOP command across the ftp-control-connection; this will keep the connection active with periodic “chatter”.
NOOP command listed in RFC spec of commands:
http://en.wikipedia.org/wiki/List_of_FTP_commands
FEATURE: Allow Multiple Instances
“Allow Multiple Instances” is a new function as of v2014.1.0.15 that allows you to run multiple copies of the software, each with it’s own set of Settings, Users/Groups. This is very useful for organizations which provide ftp-services for their clients and would like to keep the groups of ftp-users in their own separate instance.
It’s also very useful for controlling bandwidth used by each instances, as multiple IPs can be bound to the computer’s NIC, allowing for fine-grained control of bandwidth, traffic shapping, etc in their networking-hardware; each instance would then use the “Multi-IP” setting to only listen to specific IPs. (Management -> Settings -> Multi-IP)
TIPS: Poor Network Performance in Windows under Virtual Machine
TCP Chimney Offload, Receive Side Scaling, and Network Direct Memory Access
Sounds super awesome huh?!? But what is it?
I have around 20 virtual-machines, running under VMware Workstation, they allow me to test BulletProof FTP Server for Windows under all the different versions, editions and flavors of Windows that now exist. It’s exhausting actually, mostly because I need to perform Windows Updates every few months.
The host for all these virtual-machines, as well as my development, runs on a custom built ASUS Rampage III with Intel Core i7 970 with 6/12 physical/logical cores, 24 GB DDR2 RAM, storage is via ARC-1880i in RAID0+1 of 4x Samsung SSD. Why does any of that matter? Because, I’m trying to underscore that it’s a blazing fast computer.
But I noticed some network-speed problems, specially under Windows 2008 R1 and R2. Part of the issue was that “vmware tools” on the machines were not updated (do this asap, it will run much better), but Windows Update was taking almost an hour; just to see if there were updates. I dig some digging and found a bunch of articles, linked below. If you are having network-performance issues, please look to see if you are affected by this feature…
NOTE: TCP Chimney Offload does not appear to be a feature that is unique to Windows 2008, as I’ve found it set to “automatic” in default installs of Windows 7, 8, Server 2008; “disabled” in Vista.
HOWTO: Is the MAGIC on?
c:\] netsh int tcp show global
Querying active state...
TCP Global Parameters
----------------------------------------------
Receive-Side Scaling State : enabled
Chimney Offload State : automatic
NetDMA State : enabled
Direct Cache Acess (DCA) : disabled
Receive Window Auto-Tuning Level : normal
Add-On Congestion Control Provider : none
ECN Capability : disabled
RFC 1323 Timestamps : disabled
** The above autotuninglevel setting is the result of Windows Scaling heuristics
overriding any local/policy configuration on at least one profile.
HOWTO: Turn Off the MAGIC
c:\] netsh interface tcp set global rss=disabled chimney=disabled autotuninglevel=disabled
Ok.
Information about the TCP Chimney Offload, Receive Side Scaling, and Network Direct Memory Access features in Windows Server 2008
http://support.microsoft.com/kb/951037
Poor network performance on Windows 2008 Server virtual machine (1009517)
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009517
Windows Server 2008 R2 Windows updates very slow download time
http://social.technet.microsoft.com/Forums/windowsserver/en-US/ca80c34c-a4e5-4027-880a-9646aa80b352/windows-server-2008-r2-windows-updates-very-slow-download-time
NETSH to disable advanced features
http://social.technet.microsoft.com/Forums/exchange/en-US/968afa2d-e326-49f2-b6a8-1f264e82beea/netsh-to-disable-advanced-features?forum=exchange2010
The effect of TCP Chimney offload on viewing network traffic
http://blogs.technet.com/b/networking/archive/2008/11/14/the-effect-of-tcp-chimney-offload-on-viewing-network-traffic.aspx
HOWTO: Purchase an Upgrade to your License
BulletProof FTP Server is licensed via different Editions and include unique features.
As an example, while using the software you encounter a feature that isn’t available in your current license. You purchased the “Professional Edition”, but you recently discovered the very powerful “Management -> Events Manager”, and you’d like to email someone whenever a file is uploaded.
No problem! We’ve built the software to allow upgrading your license and we’ll apply 100% of your original purchase towards the upgrade! This allows you the flexibility to scale up, at anytime, without a penalty!
KNOWN PROBLEM: Slow Startup after Several Weeks of Heavy Usage
KNOWN PROBLEM: Slow Startup after Several Weeks of Heavy Usage
In order to provide information on Server Monitor -> Files Uploaded/Downloaded, the software writes entries into secondary files stored in the Storage-Location directory. These files contain one-line per file uploaded/downloaded and as the usage of the program increases, these files get bigger and bigger. Start-Up of the program will be effected as these files increase in size and the time to load the file into memory increases (and the footprint in memory increases).
To resolve this problem, it’s necessary to manually archive these files to another location; this will “reset” the statistics found in Server Monitor -> Files Uploaded/Downloaded.
You can manually archive these files:
1) Closing BulletProof FTP Server and ensure the SERVICE is not current running/active
2) Use My Computer or a Command-Prompt and navigate to the Storage-Location.
3) Locate the files named below and move them to some archive directory of your choosing (or delete them):
bpftpserver-common-downloads.ini
bpftpserver-common-uploads.ini
4) Start BulletProof FTP Server
NOTE: In a later version, this will be resolved with a re-organization and re-write of this function in order to save the information in a way that doesn’t affect performance.