loading...
Pixium Digital

Listen on port 80 for node in linux

crimsonmed profile image Médéric Burlet ・1 min read

Node Permission Denied

Today I came across a node error when trying to run a simple express server on a amazon ec2.

Error: listen EACCES: permission denied 0.0.0.0:80

After some commands and research I realized that Linux architechture by default only lets ports lower than 1024 be listened by root.

This means that for running applications such as node which, should not be ran as root, we need to create a port redirect.

Using iptables to fix it

iptables is a user-space utility program that allows a system administrator to configure the tables provided by the Linux kernel firewall.

We will create a redirect of port 80 to 8080 in our scenario.

sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

To check if the route has been added successfully you can execute the following command:

sudo iptables --table nat --list

You should see something like this:

REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 8080

Discussion

pic
Editor guide