我知道我可以通过回显1来启用 IP 转发/proc/sys/net/ipv4/ip_forward,但是我怎样才能使它永久化?
顺便说一下,我想要另一种方法而不是启动脚本,有吗?
Eri*_*lho 71
编辑 /etc/sysctl.conf 并搜索以下行:
# Uncomment the next line to enable packet forwarding for IPv4
#net.ipv4.ip_forward=1
Run Code Online (Sandbox Code Playgroud)
取消注释net.ipv4.ip_forward=1:
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
Run Code Online (Sandbox Code Playgroud)
或者在一行命令中:
sudo sysctl -w net.ipv4.ip_forward=1
Run Code Online (Sandbox Code Playgroud)
Mei*_*jes 22
永久设置使用 /etc/sysctl.conf
如果我们想让这个配置永久化,最好的方法是使用文件/etc/sysctl.conf,我们可以在其中添加一行包含net.ipv4.ip_forward = 1
/etc/sysctl.conf:
net.ipv4.ip_forward = 1
Run Code Online (Sandbox Code Playgroud)
如果您已经有一个net.ipv4.ip_forward值为 0的条目,您可以将其更改为 1。
要启用所做的更改,sysctl.conf您需要运行以下命令:
sudo sysctl -p /etc/sysctl.conf
Run Code Online (Sandbox Code Playgroud)
在基于 RedHat 的系统上,这也会在重新启动网络服务时启用:
service network restart
Run Code Online (Sandbox Code Playgroud)
在 Debian/Ubuntu 系统上,这也可以通过重新启动 procps 服务来完成:
sudo /etc/init.d/procps restart
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您需要在脚本中启用它,您可以使用下面的命令来启用
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
sysctl -p
Run Code Online (Sandbox Code Playgroud)
或禁用:
sed -i 's/net.ipv4.ip_forward=1/net.ipv4.ip_forward=0/' /etc/sysctl.conf
sysctl -p
Run Code Online (Sandbox Code Playgroud)