我有一个有两个IP地址(比如IP1和IP2)的Linux机器。
我有一个服务器进程监听特定的端口(比如60000)。 现在,我想在上面的Linux机器上运行两个服务器进程的副本。 我怎样才能build立我的系统,我可以让process1处理数据包到IP1:60000,并让process2处理数据包到IP2:60000?
或者我可以吗?
一般来说,大多数守护进程将在configuration中有一个选项来控制绑定或监听哪个IP地址和端口对(请参见man 2 bind了基本的C系统调用级别详细信息)。
在更改configuration并重新启动守护程序之后,可以看到使用netstat -ln命令绑定的内容。 示例输出将如下所示:
Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
0.0.0.0表示所有IP,而:22表示它正在侦听目标TCP端口22.第二列0.0.0.0:*表示接受所有源IP和源端口。
在你的情况下,你应该看到一行有一个像12.12.12.12:6000这样的本地地址,而另一行有一个像13.13.13.13:6000这样的本地地址。
如果你在configuration文件中似乎没有选项,它可能是守护进程本身的命令行开关。 在这种情况下,您可能需要编辑/etc/init.d/whatever的启动文件。 但是,通常不是这种情况。
这个过程本身通常控制着它所监听的IP地址。 例如,在Apache中,您可以在<VirtualHosts>指令中设置监听IP。