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

相关推荐
隐擎fox10 分钟前
解密 HTTP/2 帧时序与流控指纹:Akamai H2 指纹逆向检测与协议重塑工程实战
网络·网络协议·tcp/ip·http
根目录下的猫40 分钟前
ArkTS 代码中如何添加作者信息
linux·运维·ubuntu
梦想出海-Phoebe1 小时前
GitHub 新手入门:账号注册与 SSH Key 配置教程
运维·ssh·github
DevNote_1 小时前
1C1G 服务器从零配置实录(附完整命令)
linux·运维·服务器·javascript·adb·ssh·gmssh
haermosi1 小时前
Ubuntu 下 Flameshot 截图一直闪屏,已找到问题并解决
linux·ubuntu·gnome·问题排查·flameshot·linux 使用记录
IpdataCloud13 小时前
批量查IP的API接口怎么选?免费API配额瓶颈与离线库本地批量方案实测
网络·网络协议·tcp/ip
2601_9498477513 小时前
bcrypt.js 跨端三方库仓颉适配全流程
linux·运维·ubuntu
达~熊迪16 小时前
IP 分配前核查:把在线状态和使用登记一起看
服务器·网络·tcp/ip
靳某某。18 小时前
Ubuntu安装php8.4 及redis ngin
linux·redis·ubuntu
木泽八19 小时前
《Ubuntu系统GRUB引导修复操作记录》
linux·运维·ubuntu