IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

让服务器响应整个网段中的请求

Kxn's eXercise Notes 2021-05-27 07:40:19 累计浏览 2,150 次
本机暂存

最近有个需求是让某个服务器能够响应一整个网段的请求,研究了一下,发现比想象的容易。

假设需要的网段是 172.16.0.0/16 (好多IP!) 我们需要让用户能用这个段里面任何一个 IP 访问我的服务器,服务器IP实际是 192.168.1.4 ,那么分这样两步走就行。

1: 在路由上将 172.16.0.0/16 设置一条静态路由,网关是 192.168.1.4
在别的机器上 ping 172.16 段里面任何一个 IP,肯定现在还 ping 不通,但是在 192.168.1.4 上抓包,保证报文已经被路由到了这台服务器
2: 给本机的 lo 上增加一条 local 表里面的路由
ip route add local 172.16.0.0/16 dev lo

然后就一切正常了。

PS: 这个办法 IPV6 一样可以用,例如
ip route add local fc::/64 dev lo
就可以让 Linux 响应 fc::/64 里面所有的 IP

PS1: 除了路由器上设置服务器为网关,其实还有其他办法让请求报文能到达服务器,V4 可以用 tarpd,V6 可以用 ndppd,但是这些方法都会给网关和服务器的 ARP 表和邻居表里面增加非常多的记录,对性能有很大影响,因此不建议使用,还是用静态路由的方式比较好。

PS2: 不要设置在 eth0 上,可能会造成一些其他问题,lo 就挺好的

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. 从谷歌宕机事件认识互联网工作原理 (累计阅读 8,749)
  2. .htaccess是什么? (累计阅读 7,308)
  3. Linux C语言编程学习材料 (累计阅读 7,087)
  4. TCP/IP 相关总结 (累计阅读 6,250)
  5. php的echo为什么这么慢 (累计阅读 5,377)
  6. 不要在linux上启用net.ipv4.tcp_tw_recycle参数 (累计阅读 4,996)
  7. 重谈IP欺骗技术 (累计阅读 4,343)
  8. OSI 七层模型和 TCP/IP 协议比较 (累计阅读 4,208)
  9. TCP网络协议以及其思想的应用 (累计阅读 4,184)
  10. 开源世界中的算法与数据结构 2 -- Linux Skbuff实现 (累计阅读 4,179)