This comprehensive Linux guide expects that you run the following commands as root user but if you decide to run the commands as a different user then ensure that the user has sudo access and that you precede each of the privileged commands with sudo

HTTP is the abbreviation of “HyperText Transfer Protocol”. A protocol is like a language with a simple grammar. The HTTP Server is the implementation of that protocol in a piece of Software.

The HTTP Server “serves” content located in the server, this includes HTML, images, flash and any file related. The server is not restricted to server static content, it also serves dynamic content generated on fly from a database or similar.

This tutorial will guide you about how to serve files or folders from one computer to another over local area network (LAN) using Web Browsers over HTTP.

Using Python Web Server (SimpleHTTPServer)

Python is pre-installed in almost every distribution of UNIX/LINUX system. We can use python to create a web server to serve files or folders over HTTP.

For Python 2.7

If you are using the python 2.7.x, you can use the following command:

root@codesposts:~$ python -m SimpleHTTPServer 8080

Replace the 8080 with your desired port number.

For Python 3

If you are using python 3.x, you can use the following command:

root@codesposts:~$ python -m http.server 8080

Replace the 8080 with your desired port number.

If you don’t specify the port number, the default port it 8000.

Testing Web Server

Open your browser and go to 127.0.0.1:8080 You will see the home page of your web server.

Using Busybox Web Server

Busybox is also called the Swiss Army knife of Embedded Linux. It is preinstalled on Debian Based Distributions.

Installing Busybox

If busybox is not preinstalled on your system, you can install it by running the following command:

root@codesposts:~$ apt-get install busybox

Starting A New Server

To start a new server using busybox on your system, you can run the command like below:

root@codesposts:~$ busybox httpd -p 127.0.0.1:8080 -h /var/www/

Replace 8080 with your desired port number.

Stopping The Server

To stop a running server, run the command like this:

root@codesposts:~$ pkill busybox

Using Webfsd Web Server

This is one of the most lightweight web servers in linux. It is highly configurable and the configurations are stored in /etc/webfsd.conf file which can be edited easily.

Installing Webfsd

Run the following command to install the webfsd server on your system

root@codesposts:~$ apt-get install webfs

Starting The Web Server

Run the following command to start a web server:

root@codesposts:~$ service webfs start

Using netcat Command To Start A Web Server

You can also start a web server using the netcat command on a local host that will open a static web page “sample.html”. To perform this, you can run the command like this

First, make a new file with the name “sample.html” and copy the following code into the file.

<html>
        <head>
                <title>Test Page</title>
        </head>
        <body>
                <h1>Level 1 header</h1>
                <h2>Subheading</h2>
                <p>Normal text here</p>
        </body>
</html>

Then run the following command:

root@codesposts:~$ while true; do nc -lp 80 < sample.html; done

After this, you can access the page on by going to “http://server-IP.com/sample.html”

Using php Web Server

You can easily start a web server on your system if you have installed php 5.4 or above. To do that, you can run the following command on your terminal:

root@codesposts:~$ php -S 127.0.0.1:8080

Replace “8080” with your desired port number.

Using Ruby Web Server

We can also use Ruby to serve files over HTTP.
You can use the instructions below to start a server using ruby on your system.

root@codesposts:~$ ruby -run -ehttpd . -p8080

[2019-08-16 14:03:43] INFO WEBrick 1.4.2
[2019-08-16 14:03:43] INFO ruby 2.5.1 (2018-03-29) [x86_64-linux]
[2019-08-16 14:03:43] INFO WEBrick::HTTPServer#start: pid=5859 port=8080

You can now access the contents of this folder from any remote system using URL: http://your-IP:8080/

You can also change the Port number according to your desire.

Using NodeJS (Http-server)

If you don’t have NodeJS already installed on your system, you can see How to install NodeJS

Installing http-server

After the installation of NodeJS, run the following command to install the http-server

root@codesposts:~$ npm install -g http-server

Serving Files On Web Server

Now, go to the directory whose contents you want to share over HTTP, and run the following command

root@codesposts:~$ http-server -p 8080
Starting up http-server, serving ./
Available on:
  http://127.0.0.1:8080
  http://192.168.150.14:8080
  http://192.168.150.10:8080
Hit CTRL-C to stop the server

You can change the port number according to your desire.