在断网情况下,通过网线直接连接 Windows 笔记本 和 Ubuntu 服务器上的容器 进行数据传输,可以按照以下步骤操作:
1. 物理连接
- 使用网线直连 :用一根 普通网线(直通线) 连接 Windows 笔记本和 Ubuntu 服务器的网口(现代网卡一般支持自动翻转,无需交叉线)。
- 检查网口状态 :
- Windows:右下角网络图标应显示 "未识别的网络"。
- Ubuntu:运行
ip a
或ifconfig
查看网卡是否已连接(如eth0
或ens33
)。
2. 配置静态 IP(关键步骤)
由于没有 DHCP,需手动设置 同网段 的静态 IP。
Windows 端设置
- 打开"网络和共享中心" → "更改适配器设置" → 右键 以太网 → 属性。
- 选择 "Internet 协议版本 4 (TCP/IPv4)" → 属性。
- 设置:
- IP 地址 :
192.168.1.2
- 子网掩码 :
255.255.255.0
- 默认网关 :可留空(或填服务器 IP
192.168.1.1
)
- IP 地址 :
- 点击 确定 保存。
Ubuntu 服务器端设置
bash
sudo ip addr add 192.168.1.1/24 dev eth0 # 设置 IP
sudo ip link set eth0 up # 启用网卡
(eth0
可能是 ens33
或其他名称,用 ip a
确认)
测试连通性
-
Windows 端 :
cmdping 192.168.1.1
-
Ubuntu 端 :
bashping 192.168.1.2
如果 能 ping 通,说明连接成功。
3. 访问 Ubuntu 服务器上的容器
容器的网络模式影响访问方式:
情况 1:容器使用 bridge
模式(默认)
-
Ubuntu 服务器 需将容器的端口映射到主机:
bashdocker run -d -p 8080:80 nginx # 示例:映射 80 → 8080
-
Windows 访问 :
-
浏览器访问
http://192.168.1.1:8080
-
或用
curl
(需安装):cmdcurl http://192.168.1.1:8080
-
情况 2:容器使用 host
模式
-
容器直接使用服务器网络:
bashdocker run -d --network=host nginx # 直接监听服务器 80 端口
-
Windows 访问 :
cmdcurl http://192.168.1.1:80
4. 数据传输方法
方法 1:SCP(需 Ubuntu 开启 SSH)
-
Ubuntu 启动 SSH 服务 :
bashsudo apt update && sudo apt install openssh-server sudo systemctl start ssh
-
Windows 使用 WinSCP 或命令行 SCP :
cmdscp C:\path\to\file.txt username@192.168.1.1:/home/username/
方法 2:HTTP 临时下载(Python 快速启动)
-
Ubuntu 运行 HTTP 服务器 :
bashpython3 -m http.server 8000 # 默认监听 8000 端口
-
Windows 浏览器访问 :
http://192.168.1.1:8000
或使用
wget
(需安装):cmdwget http://192.168.1.1:8000/file.txt
方法 3:Netcat(无服务传输)
-
Ubuntu 接收文件 :
bashnc -l -p 1234 > received_file
-
Windows 发送文件 :
cmdnc 192.168.1.1 1234 < C:\path\to\file.txt
(Windows 需安装
netcat
或使用ncat
)
方法 4:共享文件夹(Samba)
-
Ubuntu 安装 Samba :
bashsudo apt install samba sudo smbpasswd -a username # 设置 Samba 密码
-
创建共享目录 :
bashsudo nano /etc/samba/smb.conf
添加:
ini[shared] path = /home/username/shared writable = yes valid users = username
-
重启 Samba :
bashsudo systemctl restart smbd
-
Windows 访问 :
-
打开 文件资源管理器 → 地址栏输入:
\\192.168.1.1\shared
-
输入 Ubuntu 的 用户名和 Samba 密码 访问。
-
5. 注意事项
- 防火墙 :
-
Ubuntu 检查
ufw
:bashsudo ufw allow 22/tcp # 允许 SSH sudo ufw allow 8000/tcp # 允许 Python HTTP
-
Windows 防火墙:临时关闭或添加规则。
-
- 网卡名称 :Ubuntu 可能是
ens33
或eth0
,用ip a
确认。 - 容器 IP :如果容器使用自定义网络,需额外路由或
docker exec
进入容器操作。
总结
步骤 | 操作 |
---|---|
1. 物理连接 | 网线直连 Windows 和 Ubuntu |
2. 设置 IP | Windows: 192.168.1.2 ,Ubuntu: 192.168.1.1 |
3. 访问容器 | bridge 模式用 -p 映射端口,host 模式直接访问 |
4. 传文件 | SCP / HTTP / Netcat / Samba |
5. 防火墙 | 确保端口开放 |
这样即使 完全断网,也能通过网线高速传输数据! 🚀