我只是好奇,有没有办法将任何 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