已经与 chatgpt 进行了深入的沟通!它给的方案是 Containernet
勉强能满足需求,但是这个似乎有个问题 我自己做了一个容器
# 使用官方 Ubuntu 基础镜像
FROM ubuntu:latest
# 安装 SSH 服务
RUN apt-get update && apt-get install -y openssh-server \
iproute2 \
net-tools \
iputils-ping \
traceroute \
nano \
vim \
curl \
wget \
tar \
gzip \
unzip \
htop \
procps \
lsof \
openssl \
git
RUN mkdir /var/run/sshd
# 允许 root 账户通过密码登录
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# 复制启动脚本到容器中
COPY start.sh /start.sh
RUN chmod +x /start.sh
RUN echo "root:root" | chpasswd
# 开放 22 端口
EXPOSE 22
# 启动 SSH 服务
CMD ["/usr/sbin/sshd", "-D"]
手动运行时没问题 但是在 python 中启动时 CMD ["/usr/sbin/sshd", "-D"] 这一行命令就像是没有被执行一样。。。SSH 没能自动启动
还有没有什么更好的方案?例如有没有什么 K8s 的面板
能搞管理容器 交换机 并且设置交换机之前的延迟 宽带啥的,。。?
并且更新容器可能比较麻烦,无法动态添加删除
1
klo424 256 天前
可以先手动把系统环境做好,再进行 docker save 打包,或者直接传到 docker hub 上,再模拟分发不同的机房或机器。
|
2
A01514035 256 天前
docker 我不知道,但是对于模拟自定义机房直接的延迟,宽带,在网络仿真领域有个 ns3 模拟器,你可以了解一下。
|
3
skyqqcc581 OP @A01514035 我要在模拟的机器上执行程序 而不仅仅只是需要一个拓扑
|
4
skyqqcc581 OP @klo424 我不想现在买真的物理机
|
5
Elroooo0Y 256 天前
|
6
mayooot 255 天前
CMD ["/usr/sbin/sshd", "-D"] 去掉-D 试试呢
|
8
julyclyde 255 天前
我觉得你应该先把计算机基础、linux 基础学一下
再尝试用 docker 如果目标是学习网络,就用专业的网络设备模拟器,别在自己做工具这件事上浪费时间 |
9
skyqqcc581 OP @julyclyde 这个问题解决了 Containernet 文档写了 它会替换 CMD 然后 需要手动执行
但是剩下的是 路由这块的问题 没搞定。已经放弃了 不模拟延迟和带宽了 直接在程序内 fakedata |