Configure CrossFTP Server
How to setup the CrossFTP Server when it is behind a router/NAT?
Background:
Before you read this guide, some background knowledge can be helpful for your understanding of the problem: the PASV and PORT in FTP protocol. An FTP server has two connections for the FTP protocol: control connection (for commands) and data connection (for data transfer). Shortly, in PASV mode the server's data connection chanel passively listen to the incoming requests, hence the client side's router will not disturb the transfer (best client side experience). In PORT mode, the client's data connection channel passively listen to the incoming requrests, hence the server side's router will not disturb the transfer (best server side experience). It is recommended that the server should be configured to allow PASV mode so that client will not need to do additional configurations.
When the server is sitting behind a router/NAT, to allow the PASV mode transfer, you need to define the port forward on the server side router, so that the incoming command connection and data connection can be forwarded from router to the server's machine.
Step 1: Forward the command connection:
Assuming your FTP is running on port 21 (Configure Button -> General -> Port), then you need to forward port 21 on your router to your computer.
Detailed explanation (optional): This step defines the port forward on your router for the FTP command channel port (this is the port you defined for FTP Server, normally it is 21), i.e., forward the command connection requests from router's IP to your server's IP. After this step, FTP server will able to establish the command connection channel. You can test this by using an FTP client outside the router to connect the server. If the client is not behind a router/firewall, you should be able to do the file transfer by using PORT mode, as described in the background paragraph. If the client is behind a router, in the client's PASV mode, the server can be login, but the file cannot be listed or transferred yet. In this case, the next step is to setup the server to allow PASV mode. This includes to configure server's PASV's port range (by default this port range is any free port at 1~65535), and PASV's external IP address (CrossFTP Server uses this to tell the client where to connect to the server's data connection. By using the router's actual address instead of internal IP, the router can forward the data connection) that CrossFTP Server will tell the client.
Step 2: Forward the data connection:
1). Define the PASV port range 50000-50004 at Configure Button -> Advanced -> PASV Port Range.
2). At the router, please define the port forward for 50000-50004 on your router to your computer.
3). Enter your external IP address (see http://www.whatismyip.com) or your domain name at Configure Button -> Advanced -> External PASV Address.
Detailed explanation (optional): Here the port 50000-50004 is our recommended PASV port. You can choose any port range between 1~65535 as you wish. After the definition of the port range, you need to port forward these ports on your router to your computer so that link can be created. Meanwhile, client needs to know your external IP address to link to your router first. Hence please enter the external IP address or your domain name of your FTP Service at Configure Button -> Advanced -> External PASV Address. You can find this external IP address by surfing to http://www.whatismyip.com. If you are having a dynamic IP address and want to avoid entering the IP address every time, you can input your domain name, and the CrossFTP Server will resolve the domain name to the external IP automatically.
Step 3: Restart the server:
Everything is done. Your FTP server is ready to go!
Background:
Before you read this guide, some background knowledge can be helpful for your understanding of the problem: the PASV and PORT in FTP protocol. An FTP server has two connections for the FTP protocol: control connection (for commands) and data connection (for data transfer). Shortly, in PASV mode the server's data connection chanel passively listen to the incoming requests, hence the client side's router will not disturb the transfer (best client side experience). In PORT mode, the client's data connection channel passively listen to the incoming requrests, hence the server side's router will not disturb the transfer (best server side experience). It is recommended that the server should be configured to allow PASV mode so that client will not need to do additional configurations.
When the server is sitting behind a router/NAT, to allow the PASV mode transfer, you need to define the port forward on the server side router, so that the incoming command connection and data connection can be forwarded from router to the server's machine.
Step 1: Forward the command connection:
Assuming your FTP is running on port 21 (Configure Button -> General -> Port), then you need to forward port 21 on your router to your computer.
Detailed explanation (optional): This step defines the port forward on your router for the FTP command channel port (this is the port you defined for FTP Server, normally it is 21), i.e., forward the command connection requests from router's IP to your server's IP. After this step, FTP server will able to establish the command connection channel. You can test this by using an FTP client outside the router to connect the server. If the client is not behind a router/firewall, you should be able to do the file transfer by using PORT mode, as described in the background paragraph. If the client is behind a router, in the client's PASV mode, the server can be login, but the file cannot be listed or transferred yet. In this case, the next step is to setup the server to allow PASV mode. This includes to configure server's PASV's port range (by default this port range is any free port at 1~65535), and PASV's external IP address (CrossFTP Server uses this to tell the client where to connect to the server's data connection. By using the router's actual address instead of internal IP, the router can forward the data connection) that CrossFTP Server will tell the client.
Step 2: Forward the data connection:
1). Define the PASV port range 50000-50004 at Configure Button -> Advanced -> PASV Port Range.
2). At the router, please define the port forward for 50000-50004 on your router to your computer.
3). Enter your external IP address (see http://www.whatismyip.com) or your domain name at Configure Button -> Advanced -> External PASV Address.
Detailed explanation (optional): Here the port 50000-50004 is our recommended PASV port. You can choose any port range between 1~65535 as you wish. After the definition of the port range, you need to port forward these ports on your router to your computer so that link can be created. Meanwhile, client needs to know your external IP address to link to your router first. Hence please enter the external IP address or your domain name of your FTP Service at Configure Button -> Advanced -> External PASV Address. You can find this external IP address by surfing to http://www.whatismyip.com. If you are having a dynamic IP address and want to avoid entering the IP address every time, you can input your domain name, and the CrossFTP Server will resolve the domain name to the external IP automatically.
Step 3: Restart the server:
Everything is done. Your FTP server is ready to go!
Comments
Post a Comment