如何将任意 IP(如果有多个 IP)分配给任意进程?

如何将任意 IP(如果有多个 IP)分配给任意进程?

我只是好奇,有没有办法将任何 IP(多个 IP 中的)分配给任何应用程序?这里我有两个 IP,一个来自wireless网络接口,另一个通过wired网络接口。

 $ ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:26:55:b6:36:b3  
              inet addr:192.168.1.15  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::226:55ff:feb6:36b3/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:4680 errors:0 dropped:0 overruns:0 frame:0
              TX packets:4685 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:1940449 (1.9 MB)  TX bytes:840513 (840.5 KB)
              Interrupt:17 

    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:3367 errors:0 dropped:0 overruns:0 frame:0
              TX packets:3367 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:295745 (295.7 KB)  TX bytes:295745 (295.7 KB)

    wlan0     Link encap:Ethernet  HWaddr 00:1e:65:4f:c4:ca  
              inet addr:192.168.1.8  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::21e:65ff:fe4f:c4ca/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:59170 errors:0 dropped:0 overruns:0 frame:0
              TX packets:52111 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:64119125 (64.1 MB)  TX bytes:7433147 (7.4 MB)

有没有办法将这两个 IP 分配给各个进程?我该怎么做?还有一个问题,普通用户笔记本电脑最多可以有多少个 IP?

答案1

根据您的操作方式,您可以拥有 32768 或 4294967296 个 IP。

Linux 内核支持 32768 个接口,根据网上的这个随机讨论,支持net/core/dev.c

 *    duplicates.
 *    Limited to bits_per_byte * page size devices (ie 32K on most platforms).
 *    Returns the number of the unit assigned or a negative errno code.
 */

static int __dev_alloc_name(struct net *net, const char *name, char *buf)

因此,如果每个接口只有一个地址,那就是限制。您可以为接口分配别名 IP,因此也许您可以将所有可用的 IPv4 地址分配给它。(或者对于 IPv6 来说可能是 3.4×10^38)。

(当然,对于物理接口,每个接口一个 IP,答案取决于您的主板。)

答案2

应用程序使用的 IP 地址取决于应用程序“绑定”的 IP 地址。通常(除非它是服务器应用程序)绑定到 0.0.0.0。这意味着内核将决定使用哪个 IP 地址。

关于 IP 地址的最大数量。实际上没有限制。IP 地址基于软件,没有实际限制。436 声誉 210

相关内容