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

相关推荐
我本善良ab5 小时前
PVE使用GRUB如何复位ubuntu的管理员密码?
ubuntu·忘记密码
ι:6 小时前
NUC12 Pro 安装 Ubuntu 24.04 LTS 详细教程
linux·windows·ubuntu·nuc
Databuff8 小时前
五款主流 SSH 免费工具介绍
运维·ssh·运维开发
ITxiaobing202310 小时前
IP 库与 AppsFlyer 国家/地区数据不一致时的对账方法
tcp/ip
虚无的纽扣11 小时前
【Linux】一篇文章带你吃透进程控制:fork、wait、exit到底在做什么
linux·ubuntu
TechWayfarer11 小时前
IP地址查询之后:如何在请求抵达前识别风险
python·tcp/ip·网络安全
别动我齐刘海13 小时前
ROS2 Jazzy + C++ 实战路线——基础学习1
c++·vscode·python·ubuntu·机器学习·自动驾驶·github
浪淘沙jkp14 小时前
全程无人值守完成ubuntu22.04到xubuntu 24.04.5的升级
ubuntu
sean90814 小时前
Ubuntu 26.04 终端显示冗余信息
ubuntu·终端·异常
小小的木头人1 天前
Ubuntu Samba修改端口绕过445封禁挂载
运维·ubuntu