
已经与 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 2024-03-02 11:15:17 +08:00 可以先手动把系统环境做好,再进行 docker save 打包,或者直接传到 docker hub 上,再模拟分发不同的机房或机器。 |
2 A01514035 2024-03-02 11:17:55 +08:00 docker 我不知道,但是对于模拟自定义机房直接的延迟,宽带,在网络仿真领域有个 ns3 模拟器,你可以了解一下。 |
3 skyqqcc581 OP @A01514035 我要在模拟的机器上执行程序 而不仅仅只是需要一个拓扑 |
4 skyqqcc581 OP @klo424 我不想现在买真的物理机 |
5 Elroooo0Y 2024-03-02 11:37:51 +08:00 |
6 mayooot 2024-03-02 15:08:38 +08:00 CMD ["/usr/sbin/sshd", "-D"] 去掉-D 试试呢 |
8 julyclyde 2024-03-03 11:53:17 +08:00 我觉得你应该先把计算机基础、linux 基础学一下 再尝试用 docker 如果目标是学习网络,就用专业的网络设备模拟器,别在自己做工具这件事上浪费时间 |
9 skyqqcc581 OP @julyclyde 这个问题解决了 Containernet 文档写了 它会替换 CMD 然后 需要手动执行 但是剩下的是 路由这块的问题 没搞定。已经放弃了 不模拟延迟和带宽了 直接在程序内 fakedata |