linux开启内部路由转发、关闭ICMP重定向功能

一、开启路由转发

转自http://blog.51cto.com/zouqingyun/1697571

一组内部机器需要连接外网,则需要找一台机器,即可以连接外网,内网机器也可以连接。

因此将这台外网机器当做路由器,做路由转发

1、在需要做路由转发的机器上执行下面命令

1

 [root@shx ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

若是ipv6则执行

echo 1 > /proc/sys/net/ipv6/conf/all/forwarding

但一般不建议,下次开机它又会变为0

修改它的配置文件,把net.ipv4.ip_forward = 1

1

2

3

4

5

6

7

8

9

[root@shx-web150 ~]# vim /etc/sysctl.conf

# Kernel sysctl configuration file for Red Hat Linux

#

# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and

# sysctl.conf(5for more details.

# Controls IP packet forwarding

net.ipv4.ip_forward = 1

# Controls source route verification

net.ipv4.conf.default.rp_filter = 1

若是ipv6,则添加net.ipv6.conf.all.forwarding=1 配置项的值

让它立即生效,就执行

1

[root@shx-web150 ~]# sysctl -p

2、紧接着我就把内网机器网关指向A的内网IP地址,结果,还是不能连接到外网,纠结许久。后面想到,才想起要在A做一个NAT转发

1

[root@shx-web150 ~]#iptables -t nat -A POSTROUTING -s 10.1.2.0/24 -j MASQUERADE

若是ipv6,则使用ip6tables

可参考https://blog.csdn.net/hcancientmoon/article/details/40158969 

ipv6相关信息可参考https://www.cnblogs.com/xiangxisheng/p/6415568.html

二、关闭ICMP重定向

ipv4:

# 关闭 icmp 的重定向

echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects

echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects

echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects

ipv6:

echo 0 > /proc/sys/net/ipv6/conf/all/accept_redirects

echo 0 > /proc/sys/net/ipv6/conf/default/accept_redirects

echo 0 > /proc/sys/net/ipv6/conf/eth0/accept_redirects

linux内核相关可参考:https://blog.csdn.net/l0605020112/article/details/42837093?locationNum=7&fps=1

 

永久生效(未验证):

ipv4:

# vim /etc/sysctl.conf
net.ipv4.conf.eth0.send_redirects= 0
net.ipv4.conf.eth1.send_redirects= 0
net.ipv4.conf.lo.send_redirects= 0
net.ipv4.conf.default.send_redirects= 0
net.ipv4.conf.all.send_redirects= 0

或者是accept_redirects 。

ipv6:

# vim /etc/sysctl.conf
net.ipv4.conf.eth0.accept_redirects= 0
net.ipv4.conf.eth1.accept_redirects= 0
net.ipv4.conf.lo.accept_redirects= 0
net.ipv4.conf.default.accept_redirects= 0
net.ipv4.conf.all.accept_redirects= 0

参考:https://blog.csdn.net/u010391029/article/details/46441811

 

疑问:accept_redirects和send_redirects的区别。

为什么v6里面只有accept_redirects,而v4里面两者都有,两者作用分别是什么。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Linux开启路由转发功能的方法有很多种,其中一种是在终端中运行以下命令: ``` sudo sysctl -w net.ipv4.ip_forward=1 ``` 这会立即在内核中开启路由转发。如果要永久开启路由转发,可以将上述命令添加到/etc/sysctl.conf文件中。还有其他的方法,比如使用iptables或者配置网络接口文件等。 ### 回答2: Linux开启路由转发功能可以让我们的Linux系统成为一个可以接收和转发网络数据包的路由器,可以将来自一个网络段的数据包转发到另一个网络段,实现不同网络间的通信。以下是具体的步骤: 1. 确认系统是否已安装iptables,如果没有则需要安装。在终端输入以下命令来安装Iptables: ``` sudo apt-get install iptables ``` 2. 确认系统的网络接口名,可以在终端输入以下命令查看: ``` ifconfig ``` 3. 通过修改内核参数来开启路由转发功能。在终端输入以下命令: ``` sudo sysctl net.ipv4.ip_forward=1 ``` 这将立即使内核参数生效。 4. 配置iptables规则。在终端输入以下命令: ``` sudo iptables -t nat -A POSTROUTING -o your_interface_name -j MASQUERADE ``` 其中“your_interface_name”需要替换成你的网络接口名。 5. 保存iptables规则,以便在下一次系统启动时生效。在终端输入以下命令: ``` sudo iptables-save > /etc/iptables.rules ``` 6. 修改/etc/rc.local文件以便iptables规则在系统启动时自动生效。在终端输入以下命令: ``` sudo vim /etc/rc.local ``` 然后在文件末尾添加以下命令: ``` iptables-restore < /etc/iptables.rules ``` 保存并退出文件。 7. 重启系统。在终端输入以下命令来重启系统: ``` sudo reboot ``` 完成以上步骤后,我们的Linux系统就拥有了路由转发功能,可以实现不同网络间的通信。但需要注意的是,如果直接将Linux系统暴露在公共网络中,则需要采取一系列安全措施,以防止被攻击。 ### 回答3: Linux操作系统是一个开源的操作系统,它的网络功能非常强大,支持路由转发功能路由转发是指在网络中实现不同网段之间的通信,需要通过路由器来进行转发。在Linux系统中,可以通过一些简单的命令来开启路由转发功能,具体步骤如下: 1. 打开Terminal终端(终端的开启方式略有不同,可以根据自己的Linux版本进行操作),使用root用户登录。 2. 输入以下命令来开启路由转发功能: echo 1 > /proc/sys/net/ipv4/ip_forward 这个命令的含义是将ipv4路由转发功能打开,1表示开启,0表示关闭。 3. 可以通过以下命令来查看路由转发是否开启: cat /proc/sys/net/ipv4/ip_forward 如果返回的结果是1,表示路由转发功能已经开启,如果返回的是0,表示没有开启。 4. 在开启路由转发功能后,可以通过以下命令来配置网络: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 其中,“eth0”表示本地网络接口的名称,可以根据实际情况进行修改。这个命令的作用是将本地网络的IP地址转换为公网IP地址,从而实现本地网络和公网的通信。 5. 配置完成后,可以使用ping命令来测试是否能够访问到目标主机。如果能够访问到,说明路由转发功能已经成功开启。 总的来说,在Linux系统中开启路由转发功能比较简单,只需要使用几个命令即可完成。开启路由转发后,可以实现不同网段之间的通信,从而实现网络的互联互通。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值