I know that I can enable IP forward by echoing 1 to /proc/sys/net/ipv4/ip_forward, but how can I make this permanent?

By the way I want another method rather than start up scripts, is there any?

3 Answers

Edit /etc/sysctl.conf and search for the following lines:

# Uncomment the next line to enable packet forwarding for IPv4 #net.ipv4.ip_forward=1 

Uncomment net.ipv4.ip_forward=1:

# Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1 

Or in one line command :

sudo sysctl -w net.ipv4.ip_forward=1 
4

Permanent setting using /etc/sysctl.conf

If we want to make this configuration permanent the best way to do it is using the file /etc/sysctl.conf where we can add a line containing net.ipv4.ip_forward = 1

/etc/sysctl.conf: net.ipv4.ip_forward = 1 

If you already have an entry net.ipv4.ip_forward with the value 0 you can change that to 1.

To enable the changes made in sysctl.conf you will need to run the command:

sudo sysctl -p /etc/sysctl.conf 

On RedHat based systems this is also enabled when restarting the network service:

service network restart 

and on Debian/Ubuntu systems this can be also done restarting the procps service:

sudo /etc/init.d/procps restart 

Source: How to Enable IP Forwarding in Linux

If you need to enable it in script you can use commands below to enable

sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf sysctl -p 

or disable:

sed -i 's/net.ipv4.ip_forward=1/net.ipv4.ip_forward=0/' /etc/sysctl.conf sysctl -p 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy