How to make IP forwarding permanent?
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?
Solution 1:
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
Solution 2:
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
Solution 3:
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