Centos配置双公网IP
背景:在centos服务器上配置两个公网IP,希望可以访问两个IP时,可以指向这台机器
环境:
[root@smate-yali224 conf]# cat /etc/redhat-release
CentOS release 6.9 (Final)
配置网卡后 ,系统只支持一个网关。由于公网IP在不同的段,所以需要两个网关。
(注意配置网关,别弄的自己远程不了)
配置两个网关后,发现有且仅且一个公网IP生效,不能两个同时联网
经上网查后,发现在一个叫“Linux内核的 反向路由检查机制” 东西
Linux默认启用了反向路由检查
当Linux IP协议栈收到一个IP包时,会找路由。 本机的包会往上层协议送,而非本机的包会根据路由转发。 为了防止非法的包被转发或送给上层协议,查找路由后Linux还会调用fib_validate_source()以 检查其来源的合法性,基本原理是根据包的源地址查找路由的出接口,然后比较包的原始入接口是 否和查到的出接口一致;如果一致则放过,如果不一致查询skb->dev的rp_filter值,为1时将丢弃这 个包,0时放过。 如果2个网卡在一个Lan里面,那么服务器可能从eth0或者eth1发现网关, 如果一个包从eth0进入了, 而网关在eth1上, 那么从eth1是出不去的, 就不通了. 反向路由检查要求从哪里来的才能回哪去. 关闭反向路由检查(根据自己的情况替换第二第三行的网卡名), rp_filter中为1,默认开启。改为0 就关闭了这个检查。 版权声明:本文为CSDN博主「LeocenaY」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。 |
我的理解就是:你怎么来的 就怎么出去,如果你乱来,不好意思。rp_filter不放过你。
操作如下:
先配置/etc/sysctl.conf 添加下列两行,如果存在就将值改为0:
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
重新加载系统参数
sysctl -p
关闭rp_filter
echo 0 > /proc/sys/net/ipv4/conf/default/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 0 > /proc/sys/net/ipv4/conf/em3/rp_filter #公网IP1所在网卡
echo 0 > /proc/sys/net/ipv4/conf/em1/rp_filter #公网IP2所在网卡
这时通过SSH,两个IP都可以远程上了。设置成功。
参考链接:https://www.cnblogs.com/Cherry-Linux/p/10683525.html
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。
文章标题:Centos配置双公网IP
本文作者:wangzhirui
发布时间:2019-08-14, 18:28:07
最后更新:2025-02-27, 02:03:58
原始链接:https://wangzhirui.com/2019/08/14/Centos配置双公网IP/转载请保留原文链接及作者。