在斷網情況下,通過網線直接連接 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 服務器端設置
sudo ip addr add 192.168.1.1/24 dev eth0 # 設置 IP
sudo ip link set eth0 up # 啟用網卡
(eth0
可能是 ens33
或其他名稱,用 ip a
確認)
測試連通性
- Windows 端:
ping 192.168.1.1
- Ubuntu 端:
ping 192.168.1.2
如果 能 ping 通,說明連接成功。
3. 訪問 Ubuntu 服務器上的容器
容器的網絡模式影響訪問方式:
情況 1:容器使用 bridge
模式(默認)
- Ubuntu 服務器 需將容器的端口映射到主機:
docker run -d -p 8080:80 nginx # 示例:映射 80 → 8080
- Windows 訪問:
- 瀏覽器訪問
http://192.168.1.1:8080
- 或用
curl
(需安裝):curl http://192.168.1.1:8080
- 瀏覽器訪問
情況 2:容器使用 host
模式
- 容器直接使用服務器網絡:
docker run -d --network=host nginx # 直接監聽服務器 80 端口
- Windows 訪問:
curl http://192.168.1.1:80
4. 數據傳輸方法
方法 1:SCP(需 Ubuntu 開啟 SSH)
- Ubuntu 啟動 SSH 服務:
sudo apt update && sudo apt install openssh-server sudo systemctl start ssh
- Windows 使用 WinSCP 或命令行 SCP:
scp C:\path\to\file.txt username@192.168.1.1:/home/username/
方法 2:HTTP 臨時下載(Python 快速啟動)
- Ubuntu 運行 HTTP 服務器:
python3 -m http.server 8000 # 默認監聽 8000 端口
- Windows 瀏覽器訪問:
或使用http://192.168.1.1:8000
wget
(需安裝):wget http://192.168.1.1:8000/file.txt
方法 3:Netcat(無服務傳輸)
- Ubuntu 接收文件:
nc -l -p 1234 > received_file
- Windows 發送文件:
(Windows 需安裝nc 192.168.1.1 1234 < C:\path\to\file.txt
netcat
或使用ncat
)
方法 4:共享文件夾(Samba)
- Ubuntu 安裝 Samba:
sudo apt install samba sudo smbpasswd -a username # 設置 Samba 密碼
- 創建共享目錄:
添加:sudo nano /etc/samba/smb.conf
[shared] path = /home/username/shared writable = yes valid users = username
- 重啟 Samba:
sudo systemctl restart smbd
- Windows 訪問:
- 打開 文件資源管理器 → 地址欄輸入:
\\192.168.1.1\shared
- 輸入 Ubuntu 的 用戶名和 Samba 密碼 訪問。
- 打開 文件資源管理器 → 地址欄輸入:
5. 注意事項
- 防火墻:
- Ubuntu 檢查
ufw
:sudo ufw allow 22/tcp # 允許 SSH sudo ufw allow 8000/tcp # 允許 Python HTTP
- Windows 防火墻:臨時關閉或添加規則。
- Ubuntu 檢查
- 網卡名稱: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. 防火墻 | 確保端口開放 |
這樣即使 完全斷網,也能通過網線高速傳輸數據! 🚀