前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux下实现服务器多IP进行UDP通讯

Linux下实现服务器多IP进行UDP通讯

作者头像
子润先生
修改2021-06-15 11:02:01
3.3K0
修改2021-06-15 11:02:01
举报
文章被收录于专栏:用户8644135的专栏

文章标题有点绕口,简单解释下,也就是如果服务器存在多个IP,我们进行测试,两个IP的TCP数据包都可以同时到达,但是UDP数据包除了主IP外,其他IP会被本地链路全部丢弃。所以,此文章就是让多个服务器IP的TCP&UDP同时可以工作。

如何实现?

代码语言:javascript
复制
我们需要对非主IP进行UDP-NAT

因为副IP相对于主IP可以看作是内网IP,因此可以做DNAT操作。

假如一个机器存在以下IP:

代码语言:javascript
复制
192.168.100.1
192.168.100.2

网卡情况如下:

代码语言:javascript
复制
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:16:3c:93:d6:09 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.1/24 brd 192.168.100.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet 192.168.100.2/24 brd 192.168.100.255 scope global secondary noprefixroute eth0:0
valid_lft forever preferred_lft forever

主IP为192.168.100.1,副IP为192.168.100.2,我们对传入192.168.100.2的UDP数据包进行DNAT,这样可以实现每个IP的UDP都可以使用。

代码语言:javascript
复制
iptables -t nat -A PREROUTING -p udp --dst 192.168.100.2 -j DNAT --to-destination 192.168.100.1
iptables-save

测试正常后,我们可以将其写入开机自启:

代码语言:javascript
复制
echo 'iptables -t nat -A PREROUTING -p udp --dst 192.168.100.2 -j DNAT --to-destination 192.168.100.1' >>/etc/rc.local
chmod +x /etc/rc.local

这样即可让服务器多个IP都可以正常使用UDP服务。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NAT 网关
NAT 网关(NAT Gateway)提供 IP 地址转换服务,为腾讯云内资源提供高性能的 Internet 访问服务。通过 NAT 网关,在腾讯云上的资源可以更安全的访问 Internet,保护私有网络信息不直接暴露公网;您也可以通过 NAT 网关实现海量的公网访问,最大支持1000万以上的并发连接数;NAT 网关还支持 IP 级流量管控,可实时查看流量数据,帮助您快速定位异常流量,排查网络故障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档