UCS2501-Computer Networks-Team 2-Establishing a Home PC Server: Enabling Remote File Retrieval via FTP
This project demonstrates the creation of a FTP server on one's home PC, and allows users across the Internet to retrieve files from it.
This project aims to address the challenges of establishing a secure FTP server in network environments with restrictions on NAT, port forwarding, and firewall configurations. Leveraging Python for server-side scripting and ngrok for secure external access, the project offers a solution that bypasses traditional obstacles. The accompanying front-end, built with HTML, JavaScript, jQuery, and AJAX, provides a user-friendly interface for seamless interaction.
Client: HTML, JavaScript, JQuery, TailwindCSS
Server: Python3
If you're using a Windows PC, it is necessary to make some changes to enable FTP on your PC.
Enabling FTP: To enable FTP on a Windows system, one must do the following: First, navigate to the "Control Panel" and select "Programs and Features." From there, choose "Turn Windows features on or off" and locate "Internet Information Services." Expand the "FTP Server" option, check "FTP Extensibility" and "FTP Service," and proceed with the installation. Once installed, configure FTP settings within IIS, specifying authentication methods and access permissions for enhanced security. This integration allows for the seamless utilization of FTP protocols, transforming the Windows machine into an FTP server.
Circumventing Firewalls: When dealing with rigid firewall settings, it might be necessary to temporarily disable or adjust the firewall to facilitate smooth communication. In Windows, access the "Control Panel" and navigate to "System and Security" and then "Windows Defender Firewall." Here, one can either create specific inbound rules to permit FTP traffic on the designated port or, in situations where FTP access is impeded, temporarily disable the firewall for testing purposes.
Download Ngrok for Windows/MacOs/Linux
Clone the project
git clone https://github.com/PoojaPremnath2003/NetworksProject_TeamNo2
Go to the project directory where the FTP server Python file is present
cd ..\Simple_FTP_Server
Start the server
python ftpserver.py
Run Ngrok by clicking on the Application file downloaded
Establish a connection with Ngrok, using the port number specified in the code
ngrok tcp 1515
Copy the link created in the Ngrok terminal into a web browser
http://0.tcp.in.ngrok.io:12584
Run Python script to start the server