什么?废旧电脑也可以当开发服务器了?不是挖矿的?妈妈再也不用担心我的服务器被干了!

“我的笔记本风扇转得像个直升机,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


OpenSSH

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:故障排查树状图
在这里插入图片描述

九、总结:变废为宝的正确姿势

  1. 别丢废旧电脑:8GB内存+i5就能跑Docker
  2. 别暴露端口:SSH隧道是王道
  3. 别用密码登录:密钥认证更安全
  4. 别在本地跑:资源隔离,互不干扰
  5. 别忘了监控: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"

现在,快去拯救你吃灰的废旧电脑吧!它不想挖矿,它想当你的开发服务器!,只要你有足够多的废旧电脑,都可以变成你的本地“云服务器”!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐