《双雄并发,各司其职》——什么?废旧电脑也可以当开发服务器了?不是挖矿的?妈妈再也不用担心我的服务器被干了!
摘要:本文介绍如何将废旧电脑改造为安全的Docker开发服务器,实现"双机并发"开发模式。通过SSH隧道连接主力笔记本和旧台式机上的Linux虚拟机,在IDEA中远程使用虚拟机Docker服务,同时避免被挖矿病毒入侵。方案包含端口转发配置、SSH加固、fail2ban防护等安全措施,性能测试显示CPU/内存占用显著降低。文中详细说明了网络架构、安全防御模型和常见问题解决方案,让
什么?废旧电脑也可以当开发服务器了?不是挖矿的?妈妈再也不用担心我的服务器被干了!
“我的笔记本风扇转得像个直升机,IDEA索引一次能煎熟三个鸡蛋” —— 这大概就是当代程序员的日常。当你看着16GB内存被Chrome和Docker榨干得渣都不剩时,旁边那台"退休"的i5老电脑突然邪魅一笑:“兄弟,我还能战!”
今天就教大家如何把吃灰的废旧电脑改造成安全的Docker开发服务器,重点是——绝对不让它变成矿机!(拍胸脯)
实现咱们的《双雄(甚至N雄)并发,各司其职》!
一、主角登场:我的"双雄"配置
主开发机:我的主力笔记本(192.168.1.27)
开发服务器:一台8年前的Win10台式机(192.168.1.54),CPU:i5-4590,内存12GB
秘密武器:VMware里跑的Linux虚拟机(192.168.172.101),专门伺候Docker
目标:从笔记本SSH连到台式机的虚拟机,IDEA本地开发,Docker在虚拟机里跑,妈妈再也不用担心我的电脑被挖矿病毒掏空了!
图1-1:双机核心架构(极简)
图1-2:双机核心架构(详细)
二、打通任督二脉:让两台电脑"平通"
1. 基础连通性检查
# 在笔记本上ping一下老伙计
ping 192.168.1.54
# 成功返回:时间<1ms,TTL=128
# 失败返回:Request timed out(快关防火墙!)
# 台式机防火墙投降命令:
netsh advfirewall firewall add rule name="ICMP Allow" protocol=icmpv4:8,any dir=in action=allow
或者:
开放222端口
New-NetFirewallRule -Name "SSH-222" -DisplayName "SSH Server" -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 2222
检查: Get-NetFirewallRule -Name "SSH-2222"
两边电脑都开

2. SSH隧道=地下秘密通道
虚拟机NAT模式就像给服务器装了隐形斗篷,外网直接连不到。咋办?
VMware端口转发配置(关键!):
主机端口:2222
虚拟机IP:192.168.172.101
虚拟机端口:22
协议:TCP
从笔记本连接:
ssh fql@192.168.1.54 -p 2222
成功提示:Welcome to Ubuntu 20.04.4 LTS
失败提示:Connection refused(快检查sshd服务!)
成功截图:
图2-1:SSH隧道原理(一层转发)
图2-2:SSH隧道原理(一层转发-时序图)
三、废旧电脑:“我不是矿机,我是开发服务器!”
1. 安装OpenSSH Server(给老电脑注入灵魂)
# 以管理员PowerShell执行
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
# 如果提示找不到(系统太老?)
# 手动下载:https://github.com/PowerShell/Win32-OpenSSH/releases
.\install-sshd.ps1
Start-Service sshd

2. Linux虚拟机SSH加固
# 禁止密码登录,强制密钥认证(防爆破)
sudo vi /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
# 重启SSH服务
sudo systemctl restart sshd
3. fail2ban:自动封禁"矿机探测器"
sudo apt install fail2ban -y
# 自动监控/var/log/auth.log,3次失败IPban掉
# 妈妈再也不用担心我的服务器被SSH爆破!
四、IDEA:我要本地开发,但Docker在"云端"
1. IDEA Docker配置(黑科技!)
打开IDEA → Services → Docker → 添加Docker连接:
连接方式:SSH
地址:root@192.168.1.54:2222
(实际是SSH隧道转发到虚拟机Docker守护进程)

2. Portainer可视化(浏览器访问)
# 虚拟机中启动Portainer
docker run -d -p 9000:9000 --name portainer \
-v /var/run/docker.sock:/var/run/docker.sock \
portainer/portainer-ce
# 笔记本浏览器访问:http://192.168.1.54:9000
# 实际访问的是192.168.172.101的Portainer

SSH隧道方案更香:
# 笔记本执行端口转发
ssh -L 9000:192.168.172.101:9000 fql@192.168.1.54 -p 2222
# 浏览器访问:http://localhost:9000
# 流量全程加密,挖矿病毒都嗅探不到!
图4:不同网段连接方案对比
图5:完整开发工作流
五、数据说话:性能提升有多爽?
| 指标 | 改造前(单电脑) | 改造后(双电脑) | 提升 |
|---|---|---|---|
| 主开发机CPU占用 | 45-80% | 5-12% | 10倍 |
| 内存占用 | 14GB/16GB | 3GB/16GB | 4.6倍 |
| IDEA索引速度 | 卡成PPT | 丝般顺滑 | 3倍 |
| Docker构建时间 | 8分钟 | 5分钟 | 1.6倍 |
| 风扇噪音 | 直升机起飞 | 安静如鸡 | ∞倍 |
真实体验:以前开个SpringBoot+MySQL+Redis,风扇能把我家猫吓跑。现在?笔记本冷静静谧,台式机在角落默默搬砖,岁月静好。
六、安全大赏:为什么不会被挖矿?
传统暴露Docker端口的死法:
# 危险操作!别学!
dockerd -H tcp://0.0.0.0:2375
# 24小时内必被扫描,48小时内开始挖矿
我们的安全架构:
笔记本 → SSH加密隧道(2222) → 台式机 → 虚拟机 → Docker(sock)
- 无公网暴露:端口只在内网监听
- SSH加密:流量全程加密,嗅探无效
- 密钥认证:密码被禁用,爆破无门
- fail2ban:3次失败自动ban IP
- 资源限制:虚拟机CPU/Memory上限,矿机想跑满?没门!
图3:安全防御模型(攻击视角)
七、扩展玩法:让老电脑更值钱
1. 一键启动所有服务
# ~/.bashrc 添加别名
alias start-dev='ssh -L 9000:192.168.172.101:9000 -L 8080:192.168.172.101:8080 fql@192.168.1.54 -p 2222'
# 执行 start-dev 就打通所有隧道
2. VS Code Remote SSH
VS Code直接SSH到虚拟机,所有插件在远程运行,笔记本只负责显示。
3. Jupyter Notebook转发
# 虚拟机启动Jupyter
jupyter notebook --ip=0.0.0.0 --port=8888 --no-browser
# SSH隧道
ssh -L 8888:192.168.172.101:8888 fql@192.168.1.54 -p 2222
# 浏览器访问:http://localhost:8888
4. 数据库管理工具
# MySQL
ssh -L 3306:192.168.172.101:3306 fql@192.168.1.54 -p 2222
# 用DBeaver连接localhost:3306,访问虚拟机MySQL
八、踩坑记录:那些年我们犯过的错
❌ 坑1:在HGFS挂载点创建符号链接
ln -sf /mnt/hgfs /home/fql
# 报错:不支持的操作
# 正解:mount --bind /mnt/hgfs /home/fql/shared
❌ 坑2:NetworkManager抢网卡
# 症状:重启后网络没IP
# 正解:/etc/sysconfig/network-scripts/ifcfg-ens33
# 添加:NM_CONTROLLED=no
systemctl disable NetworkManager
❌ 坑3:忘记配置开机自启
# 症状:虚拟机重启后,docker服务没启动
# 正解:systemctl enable docker
# systemctl enable sshd
# docker run --restart=always ...
图6:故障排查树状图
九、总结:变废为宝的正确姿势
- 别丢废旧电脑:8GB内存+i5就能跑Docker
- 别暴露端口:SSH隧道是王道
- 别用密码登录:密钥认证更安全
- 别在本地跑:资源隔离,互不干扰
- 别忘了监控:Portainer看资源,fail2ban防攻击
最终效果:
主开发机轻如燕,虚拟机稳如山,挖矿病毒哭晕在厕所,妈妈再也不用担心我的电脑被干了!
🎁 附:一键部署脚本
#!/bin/bash
# 在虚拟机中执行,一键配置开发环境
# 1. 安装Docker
curl -fsSL https://get.docker.com | sh
# 2. 安装Portainer
docker run -d -p 9000:9000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
portainer/portainer-ce
# 3. 配置SSH密钥
mkdir -p ~/.ssh
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI... 主开发机公钥" >> ~/.ssh/authorized_keys
# 4. 安装fail2ban
yum install -y epel-release fail2ban
systemctl enable --now fail2ban
# 5. 输出访问信息
echo "开发环境部署完成!"
echo "Portainer: http://192.168.1.54:9000"
echo "SSH: ssh fql@192.168.1.54 -p 2222"
现在,快去拯救你吃灰的废旧电脑吧!它不想挖矿,它想当你的开发服务器!,只要你有足够多的废旧电脑,都可以变成你的本地“云服务器”!
更多推荐

所有评论(0)