linux 打开多网络上网功能

ip: RTNETLINK answers: Operation not supported

参考https://www.cnblogs.com/dissipate/p/13741595.html

linux当有多个网络需要同时上网时候需要关闭此功能

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

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

 

Linux内核参数 rp_filter

简介

rp_filter (Reverse Path Filtering)参数定义了网卡对接收到的数据包进行反向路由验证的规则。他有三个值,0、1、2,具体含意如下:

  • 0:关闭反向路由校验
  • 1:开启严格的反向路由校验。对每个进来的数据包,校验其反向路由是否是最佳路由。如果反向路由不是最佳路由,则直接丢弃该数据包。
  • 2:开启松散的反向路由校验。对每个进来的数据包,校验其源地址是否可达,即反向路由是否能通(通过任意网口),如果反向路径不通,则直接丢弃该数据包。

什么是反向路由校验

所谓反向路由校验,就是在一个网卡收到数据包后,把源地址和目标地址对调后查找路由出口,从而得到反身后路由出口。然后根据反向路由出口进行过滤。

当rp_filter的值为1时,要求反向路由的出口必须与数据包的入口网卡是同一块,否则就会丢弃数据包。
当rp_filter的值为2时,要求反向路由必须是可达的,如果反路由不可达,则会丢弃数据包。

rp_filter的配置项

rp_filter是Linux的内核参数,可以针对每个网卡进行配置

 

复制代码

net.ipv4.conf.all.rp_filter
net.ipv4.conf.default.rp_filter
net.ipv4.conf.lo.rp_filter
net.ipv4.conf.eth0.rp_filter
net.ipv4.conf.eth1.rp_filter
net.ipv4.conf.eth2.rp_filter
……

复制代码

 

开启rp_filter参数的作用

  1. 减少DDoS攻击
    校验数据包的反向路径,如果反向路径不合适,则直接丢弃数据包,避免过多的无效连接消耗系统资源。
  2. 防止IP Spoofing
    校验数据包的反向路径,如果客户端伪造的源IP地址对应的反向路径不在路由表中,或者反向路径不是最佳路径,则直接丢弃数据包,不会向伪造IP的客户端回复响应。

配置方式

 

临时生效的配置方式

临时生效的配置方式,在系统重启,或对系统的网络服务进行重启后都会失效。这种方式可用于临时测试、或做实验时使用。

使用 sysctl 指令配置

sysctl 命令的 -w 参数可以实时修改Linux的内核参数,并生效。所以使用如下命令可以修改Linux内核参数中的rp_filter 。

 

sysctl -w net.ipv4.conf.default.rp_filter =1
sysctl -w net.ipv4.conf.all.rp_filter =1
sysctl -w net.ipv4.conf.lo.rp_filter =1
sysctl -w net.ipv4.conf.eth0.rp_filter =1
sysctl -w net.ipv4.conf.eth1.rp_filter =1
……

修改内核参数的映射文件

在Linux文件系统映射出的内核参数配置文件中记录了Linux系统中网络接口 反向路由校验 配置参数 rp_filter 的值。可使用vi编辑器修改文件的内容,也可以使用如下指令修改文件内容:

 

echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter 
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter 
echo 1 > /proc/sys/net/ipv4/conf/lo/rp_filter 
echo 1 > /proc/sys/net/ipv4/conf/eth0/rp_filter 
echo 1 > /proc/sys/net/ipv4/conf/eth1/rp_filter 
……

 

永久生效的配置方式

永久生效的配置方式,在系统重启、或对系统的网络服务进行重启后还会一直保持生效状态。这种方式可用于生产环境的部署搭建。

修改/etc/sysctl.conf 配置文件可以达到永久生效的目的。

在sysctl.conf配置文件中有一项名为可以添加如下面代码段中的配置项,用于配置Linux内核中的各网络接口的 rp_filter 参数。

 

net.ipv4.conf.default.rp_filter =1
net.ipv4.conf.all.rp_filter =1
net.ipv4.conf.lo.rp_filter =1
net.ipv4.conf.eth0.rp_filter =1
net.ipv4.conf.eth1.rp_filter =1
……

 

 

 

内核需要打开选项:

CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_FIB_RULES=y

 

 

  • 在kernel 添加如下选项即可:
Networking support  --->
     Networking options 
        [*]   IP: advanced router
        [*]     IP: policy routing

Read The Fucking Source Code

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux虚拟机中使用NAT模式上网,需要进行以下步骤: 1. 打开虚拟机设置,选择网络适配器,将网络连接方式设置为NAT模式。 2. 在虚拟机中打开终端,输入ifconfig命令查看虚拟机的IP地址。 3. 在虚拟机中配置网络,输入sudo vi /etc/network/interfaces命令打开网络配置文件,将其中的iface eth inet dhcp改为iface eth inet static,并添加以下内容: address 虚拟机IP地址 netmask 子网掩码 gateway 虚拟机网关地址 dns-nameservers DNS服务器地址 4. 保存并退出文件,输入sudo service networking restart命令重启网络服务。 5. 在虚拟机中打开浏览器,即可使用NAT模式上网。 ### 回答2: 在Linux虚拟机上使用NAT模式上网是一种常见的网络连接方式。NAT(网络地址转换)模式可以将虚拟机的网络连接与物理主机的网络连接进行转换,实现虚拟机可以通过宿主机来访问外部网络。 首先,我们需要确保虚拟机的网络适配器已经设置为NAT模式。可以在虚拟机管理界面中对虚拟机的网络设置进行调整。 在Linux虚拟机中,我们需要配置网络参数以使其能够与宿主机进行通信。打开终端,在命令行中输入以下命令: ``` sudo nano /etc/network/interfaces ``` 这将打开网络接口配置文件。在文件中添加以下内容: ``` auto eth0 iface eth0 inet dhcp ``` 保存文件并退出。 然后,我们需要重新启动网络服务,以使更改生效。在终端中输入以下命令: ``` sudo /etc/init.d/networking restart ``` 稍等片刻,网络服务将重新启动。 此时,虚拟机应该能够通过NAT模式访问外部网络了。可以在终端中尝试ping外部网络的IP地址,如: ``` ping 8.8.8.8 ``` 如果出现回应,则表示网络连接正常。 另外,如果需要通过浏览器等应用程序上网,还需要配置代理服务器。可以在浏览器的网络设置中配置代理服务器IP地址和端口号。 总结一下,通过以上的步骤,我们可以使Linux虚拟机通过NAT模式顺利地进行网络访问。记得在配置网络参数后重新启动网络服务,以确保设置的生效。 ### 回答3: 在使用Linux虚拟机进行NAT(网络地址转换)模式上网时,需要进行以下步骤: 1. 首先,确保你的Linux虚拟机已经正确安装,并具备网络连接功能。 2. 打开虚拟机的网络设置,选择NAT模式。NAT模式可以让虚拟机通过宿主机的网络连接上网,同时隐藏虚拟机的IP地址。 3. 在虚拟机的操作系统中,进入网络设置界面,检查网络连接是否已经启用。可以使用指令"ifconfig"来查看当前网络连接状态。 4. 确认网络配置后,使用指令"ping www.baidu.com"来测试网络连接是否正常。如果收到来自baidu.com的应答,则说明网络连接成功。 5. 如果无法连接互联网,可能是因为NAT配置不正确。可以尝试重新启动虚拟机,或者检查宿主机的网络连接设置。 总而言之,使用Linux虚拟机进行NAT模式上网,需要确保虚拟机已正确安装并进行了相关网络设置,同时检查NAT模式是否正确配置。网络连接成功后,可以通过ping命令或者访问网络应用程序来进行测试。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值