Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Debian 多IP 配置

Debian 多IP 配置

作者头像
chuchur
发布于 2024-11-21 10:34:14
发布于 2024-11-21 10:34:14
18700
代码可运行
举报
文章被收录于专栏:禅境花园禅境花园
运行总次数:0
代码可运行

我有500个IP ,要绑定在同一台linux机器上, OS为debian .

假如这500个IP分为4个C段.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
192.168.1.128/25
192.168.2.128/25
192.168.3.128/25
192.168.4.128/25

通过计算我们可以得出 192.168.1.128/25 的网关为192.168.1.129 ,掩码为255.255.255.128,第一个可用IP为192.168.1.130 ,最后一个可用IP为 192.168.1.254 , 那么可用IP为 125个 .

下面的pyhotn 脚本可用计算

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os
import ipaddress
def get_ip(ip: str):
    # demo ip 198.23.190.202/29
    # 定义网络
    network = ipaddress.IPv4Network(ip, strict=False)

    # 计算Netmask
    netmask = network.netmask

    # 计算Network Address
    network_address = network.network_address

    # 计算Broadcast Address
    broadcast_address = network.broadcast_address

    # 计算Gateway Address (通常是网络地址的下一个地址)
    gateway_address = network_address + 1

    # 计算First Usable Address (通常是网络地址的下一个地址)
    first_usable_address = network_address + 1

    # 计算Last Usable Address (广播地址的前一个地址)
    last_usable_address = broadcast_address - 1

    # 计算Usable Addresses
    usable_addresses = list(network.hosts())

    ip_list = list(map(lambda x: str(x), usable_addresses))
    # 第一个是网关, 要干掉
    ip_list.pop(0)

    return {
        "netmask": str(netmask), # 掩码
        "gateway": str(gateway_address), # 网关
        "usable_addresses": ip_list, # 可用IP列表
        "first_usable_address": str(first_usable_address), # 第一个可用IP
        "last_usable_address": str(last_usable_address), # 最后一个可用IP
        "prefix": str(network.prefixlen), #掩码长度
    }

查看网络接口

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ip route show

可以看到默认的网口为 eno1:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
default via 10x.xx.xx.1 dev eno1 onlink 
10x.xx.xx.0/25 dev eno1 proto kernel scope link src 10x.xx.xx.x 
10x.xx.xx.0/25 dev eno1 proto kernel scope link src 10x.xx.xx.x

假设我们有200台服务器 ,每台服务器要配置500个IP , 那么我们利用脚本计算:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os
INTERFACE = "eno1"


list_map = {
    "ServerA": [
        '192.168.1.128/25',
    '192.168.2.128/25',
    '192.168.3.128/25',
    '192.168.4.128/25'
    ],
    ...
}

for k in list_map:
    conf_path = os.path.join(os.path.abspath('.'), 'config', f'{k}.conf')

    _list = list_map[k]
    port = 1
    conf = ''
    for ip in _list:
        ips = get_ip(ip)
        ip_list = ips['usable_addresses']
        netmask = ips['netmask']
        for m in ip_list:
            conf += f"auto eno1:{port}\n"
            conf += f"iface eno1:{port} inet static\n"
            conf += f"    address {m}\n"
            conf += f"    netmask {netmask}\n\n"
            port = port+1

    with open(conf_path, 'w') as f:
        f.write(conf)

执行脚本之后 得到 配置文件 ServerA.conf :

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
auto eno1:1
iface eno1:1 inet static
    address 192.168.1.130
    netmask 255.255.255.128
# 省略...
auto eno1:500
iface eno1:500 inet static
    address 192.168.4.254
    netmask 255.255.255.128

我们把生成的 ServerA.conf 文件 拷贝到 服务器 '/etc/network/interfaces.d' 目录下.

然后重启网络服务即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo service networking restart 
#or 
systemctl restart networking.service
#or 
systemctl restart systemd-networkd

验证配置IP是否生效

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hostname -I

此时就能看到我们配置的500个IP.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Centos 7 多IP 配置
通过计算我们可以得出 192.168.1.128/25 的网关为192.168.1.129 ,掩码为255.255.255.128,第一个可用IP为192.168.1.130 ,最后一个可用IP为 192.168.1.254 , 那么可用IP为 125个 .
chuchur
2024/11/21
1750
Centos Stream 9 多IP 配置
通过计算我们可以得出 192.168.1.128/25 的网关为192.168.1.129 ,掩码为255.255.255.128,第一个可用IP为192.168.1.130 ,最后一个可用IP为 192.168.1.254 , 那么可用IP为 125个 .
chuchur
2024/11/21
3820
proxmox添加额外IP网段 为虚拟机分配独立网段IP
我之前那篇proxmox的文章关于分配独立IP是通过绑定mac地址完成的。 但有个朋友买了台独立服务器加一个C段,安装了proxmox,是不存在通过绑定mac地址来为虚拟机分配独立IP, 那我们就需要去修改vim /etc/network/interfaces配置文件
博博1998
2022/04/25
4.5K0
单机Linux部署多IP的步骤和方法
网络爬虫最终要的资源就是IP地址,尤其是在各大网站纷纷把自家数据当初看家宝贝的“大数据时代”。即使IP地址多了,爬虫改成分布式,管理那么多服务器上的爬虫也是够头疼的。一种方法就是配置代理服务器,爬虫只在几台机器是跑就可以啦。
会长君
2023/04/25
6810
在 Debian Linux 上设置和配置网桥
如何你想为你的虚拟机分配 IP 地址并使其可从你的局域网访问,则需要设置网络桥接器。默认情况下,虚拟机使用 KVM 创建的专用网桥。但你需要手动设置接口,避免与网络管理员发生冲突。
用户8989785
2021/09/10
5.7K0
LVS+KeepAlived+Nginx高可用实现方案
当我们的服务器意外挂了之后,我们要怎么做? 当然是找一台新的机器,替代现有的机器,然后做新的环境部署,端口映射,域名解析等等一系列的工作,再将服务重新启动;但是如果这一系列的操作都是手动完成的,那么等你把这些工作搞好,可能服务已经停止个把小时了,这会儿估计运营早就提着菜刀架在你脖子上了; 但是如果使用了KeepAlived之后,然后提前将备用机准备好,当主的机器挂掉之后,自动将VIP给你切换到备用机,并且以邮件的形式告诉你说主服务已经挂了,你得赶紧恢复起来;这时候你就可以慢慢的去找主服务的问题,这时候并不会影响到你的正常业务运行。
全栈程序员站长
2022/09/15
7330
LVS+KeepAlived+Nginx高可用实现方案
CentOS 7 下配置ip forward(虚拟路由器)
Linux 中ip forward功能是一个比较方便实用的功能,只需要简单配置,添加几条路由,即可实现ip转发。本文基于CentOS 7下采取一台机器充当虚拟路由,来实现Windows环境与Linux环境中相互通信。具体见下文,供大家参考。
Leshami
2018/08/06
3.3K0
CentOS 7 下配置ip forward(虚拟路由器)
用Python帮你实现IP子网计算
  IP地址目前存在两个版本:IPv4和IPv6,平常我们见到最多的就是IPv4了,如 192.168.1.1/24,当然,IPv4地址池资源紧缺,IPv6已悄然大量部署了。
点滴技术
2019/09/07
2.7K0
用Python帮你实现IP子网计算
Ubuntu 20.04 设置静态IP
服务器环境需要有静态的 IP 用于SSH登陆,本文记录 ubuntu 系统下设置静态IP的方法。 解决方案 确定上网使用的网卡 修改 NetworkManager 配置文件内容 确定网卡 ifconfig 命令可以查看当前网络配置 $ ifconfig enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.4 netmask 255.255.255.0 broadcast 192.16
为为为什么
2022/08/06
3K0
KVM简介,安装及常见使用详解
查看状态操作结果,如Active: active (running),说明运行情况良好
用户8851537
2021/07/21
3.4K0
Linux学习笔记之Centos7设置Linux静态IP
这里以CentOS 7系列为例设置静态IP,原来RedHat系列的Linux发行版可以通过setup工具方便的设置静态IP,但是在版本7之后setup工具的功能就逐渐减弱了,所以这时候采用修改配置文件的方式来设置静态IP,方法如下:
Jetpropelledsnake21
2018/10/18
2.5K0
Linux学习笔记之Centos7设置Linux静态IP
Ubuntu 12.04 安装使用DHCP Server
在创建HDFS集群的时候,深感/etc/hosts中添加配置的不方便,容易不一致导致错误,工作量也大。
星哥玩云
2022/07/01
5270
Ubuntu 配置虚拟机网络桥接模式
在开启虚拟机时,需要宿主与虚拟机网络连通并可以上互联网,需要配置网络桥接模式,本文记录配置方法。 桥接模式 桥接模式就是将主机网卡与虚拟的网卡利用虚拟网桥进行通信。 类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的网卡与网卡都是交换模式的,相互可以访问而不干扰。 在桥接模式下,虚拟机IP地址需要与主机在同一网段,如果需要联网,则网关与DNS需要与主机网卡一致。 桥接模式下的所有虚拟机都是和主机
为为为什么
2022/08/06
5.3K0
Ubuntu 配置虚拟机网络桥接模式
手把手教你用Python实现IP子网计算
网络前缀长度通常用于 IP 地址的子网划分和路由表中。它表示了 IP 地址中网络部分的长度,即网络前缀中连续的比特位数。IPv4 地址通常由 32 位二进制数表示,而 IPv6 地址通常由 128 位二进制数表示。网络前缀长度指示了 IP 地址中网络部分的长度,即从左边开始的连续比特位数。例如,在 IPv4 地址 "192.168.1.0/24" 中,"/24" 表示了网络前缀长度,意味着前 24 位用于表示网络部分,剩下的 8 位用于表示主机部分。
查拉图斯特拉说
2024/01/05
3250
手把手教你用Python实现IP子网计算
Ubuntu 配置网络命令
# The primary network interface,  # use DHCP to find our address auto eth0 iface eth0 inet dhcp
阳光岛主
2019/02/19
5.6K0
linux ip 配置及配置保存
#利用route 命令配置路由 如将192.168.20.X 的ip路由到192.168.20.254网关
全栈程序员站长
2022/08/31
10.8K0
ubuntu 18及以上版本配置IP的方法,你get了吗
本文讲讲 Ubuntu 18 及以上版本配置 IP 的方法,为什么它值得一讲,因为以 Ubuntu 16 为首的版本的配置方法已经不适用了,如果你还不知道,那本文正好 get 一个新技能。
伍工
2022/05/07
4410
ubuntu 18及以上版本配置IP的方法,你get了吗
【项目案例】中小型企业网络DHCP搭建综合实验
本实验模拟公司网络场景,母公司A下面有分公司1和分公司2。路由器R3,R4和R6是这几个公司的出口网关,分公司的电脑主机由母公司A的DHCP主服务器通过DHCP中继服务分配IP地址。另外,为了增强网络的稳定性。各公司都使用了MSTP配置。并且公司内部通过划分不同VLAN来隔离不同部门间的通信,同时也能实现跨VLAN的通信。
网络工程师笔记
2022/10/31
9980
CentOS7的网络配置与网络客户端
CentOS6之前基于传统的命名方式如:eth1,eth0.... Centos7提供了不同的命名规则,默认是基于固件、拓扑、位置信息来分配。这样做的优点是命名是全自动的、可预知的,缺点是比eth0、wlan0更难读。比如enp5s0
小柒吃地瓜
2020/04/22
8K0
OVH/SYS/KS 通过vmware esxi 配置虚拟机IP地址以访问网络
桥接网络可用于配置您的虚拟机。需要进行一些调整才能使网络配置在我们的 网络上正常工作。
暮城
2022/03/03
2K0
OVH/SYS/KS  通过vmware esxi 配置虚拟机IP地址以访问网络
相关推荐
Centos 7 多IP 配置
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验