如何使用具有多个IP地址的服务器?
我有一个监听特定端口(例如 60000)的服务器进程,并且我的 Linux 机器有两个 IP 地址(例如 ip1 和 ip2)。
我可以以某种方式在我的linux机器中启动两个进程,这样Process1可以接收发送到ip1:60000的所有数据包,而Process2可以接收发送到ip2:60000的所有数据包。
谢谢,
I have a server-process that listen to a specific port (say 60000), and my linux box has two ip-address (say ip1, and ip2).
Can I somehow start two processes in my linux box, such that Process1 can receive all packets sent to ip1:60000 and Process2 can receive all packets sent to ip2:60000.
Thanks,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的。您需要在指定侦听 IP 地址的侦听套接字上使用
bind
系统调用,而不是(更常见的)INADDR_ANY。 [参考1]然后,在一个进程中使用一个IP 地址,在第二个进程中使用一个IP 地址。两者将能够共享相同的侦听端口。
参考文献:
Yes. You'll want to use the
bind
system call on the listening socket that specifies the listening IP address, instead of the (more usual) INADDR_ANY. [Reference 1]Then, use one IP address in one process, and one IP address in the second process. Both will be able to share the same listening port.
References: