我知道我可以通过回显1
来启用 IP 转发/proc/sys/net/ipv4/ip_forward
,但是如何才能使其永久生效?
顺便说一句,我想要另一种方法而不是启动脚本,有吗?
答案1
编辑 /etc/sysctl.conf 并搜索以下行:
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
取消注释net.ipv4.ip_forward=1
:
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
或者在一行命令中:
sudo sysctl -w net.ipv4.ip_forward=1
答案2
永久设置使用/etc/sysctl.conf
如果我们想使这个配置永久生效,最好的方法是使用文件/etc/sysctl.conf
,我们可以在文件中添加一行net.ipv4.ip_forward = 1
/etc/sysctl.conf:
net.ipv4.ip_forward = 1
如果您已经有一个net.ipv4.ip_forward
值为 0 的条目,则可以将其更改为 1。
要启用所做的更改,sysctl.conf
您需要运行以下命令:
sudo sysctl -p /etc/sysctl.conf
在基于 RedHat 的系统上,重新启动网络服务时也会启用此功能:
service network restart
在 Debian/Ubuntu 系统上,也可以通过重新启动 procps 服务来完成此操作:
sudo /etc/init.d/procps restart
答案3
如果你需要在脚本中启用它,你可以使用下面的命令来启用
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
sysctl -p
或禁用:
sed -i 's/net.ipv4.ip_forward=1/net.ipv4.ip_forward=0/' /etc/sysctl.conf
sysctl -p