Ubuntu 24.04 配置大量ip及ssh远程

温馨提醒:我是在虚拟机上测试的

  • 网段:192.168.233.0/24
  • 网关:192.168.233.2
  • 已有主 IP:192.168.233.3
  • 需要附加 IP 范围:192.168.233.4 ~ 192.168.233.253,一共 250 个附加 IP。

需求:外部任意访问该段任意 IP3-253,都可以 ssh 连接本机

步骤 1:确认网卡名称

bash 复制代码
ip addr

我这里的网卡名是 ens33;如果你的是eth0或者其他的话,下面所有配置把ens33替换成eth0或者其他的

/etc/netplan/ 目录下的文件内容改成下面这种

然后 netplan apply

步骤 2:禁用 cloud‑init 网络

bash 复制代码
cd /etc/cloud/cloud.cfg.d
nano 99-disable-network-config.cfg

再把network: {config: disabled}这串写进上面的文件里面

步骤 3:禁用NetworkManager,启动systemd‑networkd

ubuntu 24.04 默认使用的是NetworkManager服务

bash 复制代码
systemctl stop NetworkManager
systemctl disable NetworkManager

systemctl start systemd-networkd
systemctl enable systemd-networkd

步骤 4:编写脚本

由于192.168.233.4 ~ 192.168.233.253 ip数太多了,不可能一个一个去敲,所以脚本会方便一点

bash 复制代码
nano /usr/local/bin/ipconf.sh

再把下面的这串写进去【ip网段那些换成你自己的就行

bash 复制代码
#!/bin/bash
NET_CONF="/run/systemd/network/20-ens33.network"
INTERFACE="ens33"
PRIMARY_IP="192.168.233.3/24"
GW="192.168.233.2"
SUBNET_BASE="192.168.233"
START_IP=4
END_IP=253

mkdir -p /run/systemd/network

cat > ${NET_CONF} <<EOF
[Match]
Name=${INTERFACE}

[Network]
Address=${PRIMARY_IP}
Gateway=${GW}
DNS=223.5.5.5
DNS=8.8.8.8
KeepConfiguration=static
EOF

for ((i=START_IP;i<=END_IP;i++));do
echo "Address=${SUBNET_BASE}.${i}/24" >> ${NET_CONF}
done
networkctl reload

赋予权限

bash 复制代码
chmod +x /usr/local/bin/ipconf.sh

步骤 5:创建 systemd 服务,在 networkd 启动前生成配置

bash 复制代码
nano /etc/systemd/system/ipconf.service
bash 复制代码
[Unit]
Description=Generate ens33 large ip range config before networkd start
Before=systemd-networkd.service

[Service]
Type=oneshot
ExecStart=/usr/local/bin/ipconf.sh

[Install]
WantedBy=multi‑user.target

启用并执行

bash 复制代码
systemctl daemon-reload
systemctl enable --now ipconf.service
systemctl restart systemd-networkd

步骤 6:测试验证

先模拟网卡up,down的情况

bash 复制代码
ip link set ens33 down
ip addr

从上面结果来看,ip没了

bash 复制代码
ip link set ens33 up
ip addr

我们查看一下/run/systemd/network/20‑ens33.network 这个文件【我们在创建ipconf.sh文件里面有写到】

我们从外面ping 192.168.233.3 ~ 192.168.233.253 任意几个ip是可以通的

重启机器情况

重启机器后,ip依然还在,外面也是能正常ping 通

步骤7:ssh测试验证

安装一下ssh【如果已经安装ssh了,这一步可忽略】

bash 复制代码
apt update
apt install -y openssh-server

安装完成后,/etc/ssh下面会多出sshd_config服务端配置文件

启动并开机自启 ssh 服务

bash 复制代码
systemctl start ssh
systemctl enable ssh

外部测试ssh

如果要允许root远程的话,编辑 /etc/ssh/sshd_config,然后将

PermitRootLogin prohibit-password

改为

PermitRootLogin yes

记得把PermitRootLogin前面的#去掉

修改完重启 ssh

systemctl restart ssh

相关推荐
光电的一只菜鸡7 小时前
ubuntu之坑(二十)——VMware虚拟机系统无法正常进入如何处理
linux·运维·ubuntu
虎王物联8 小时前
工业Modbus TCP协议深度实战:STM32 HAL库实现从机通信与数据上云
stm32·物联网·网络协议·tcp/ip·嵌入式
楷哥爱开发11 小时前
TikTok Shop新加坡本土店入驻:如何选择新加坡本土住宅IP?
网络·网络协议·tcp/ip
Zzzzmo_15 小时前
【网络原理】TCP/IP协议02
网络·tcp/ip
hxhy0016 小时前
异地组网实战:从 frp 中转到 Tailscale 直连,SSH 延迟 410ms → 29ms
运维·ssh
笨笨饿16 小时前
#111_关于FreeRTOS面试的一些题目
linux·ubuntu·面试·职场和发展·centos·rtos
qq_4017004117 小时前
TCP 粘包问题深度解析:嵌入式网络开发的常见坑与解决方案
服务器·网络·qt·网络协议·tcp/ip
IT小白杨17 小时前
2026游戏工作室环境隔离指南:从设备指纹到移动IP的部署实践
前端·经验分享·网络协议·tcp/ip·游戏·安全架构·指纹浏览器