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?
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It only takes a minute to sign up.
Sign up to join this communityEdit /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
sudo sysctl -w net.ipv4.ip_forward=1
doesn't make it permanent... @ least on a raspberry pi I tested...
Oct 22, 2017 at 15:37
-w
immediately enables the setting. It does not make it persistent though!
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
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
ed -i 's/#net.ipv4.ip_forward=0/net.ipv4.ip_forward=1/' /etc/sysctl.conf sysctl -p
Dec 14, 2022 at 2:20