在Fedora 40虚拟机里打造全能开发机:从Node.js、Redis到内网穿透,一条龙配置实录

张开发
2026/5/24 7:11:11 15 分钟阅读
在Fedora 40虚拟机里打造全能开发机:从Node.js、Redis到内网穿透,一条龙配置实录
在Fedora 40虚拟机中构建全栈开发环境从系统配置到服务部署实战指南对于现代开发者而言一个功能完备的开发环境是生产力的核心保障。Fedora 40作为Linux发行版中的前沿选择其稳定的软件生态和最新的技术栈支持使其成为开发环境搭建的理想基础。本文将带你从零开始在VMware Workstation Pro虚拟化的Fedora 40中配置一个覆盖前端、后端、数据库及网络工具的全栈开发环境确保每个组件都能即装即用无缝衔接实际开发流程。1. 基础系统配置与优化1.1 系统安装后的首要配置完成Fedora 40的基础安装后首先需要优化系统配置以提升开发体验。通过SSH远程连接是开发者的刚需执行以下命令启用SSH服务sudo systemctl start sshd sudo systemctl enable sshd接着配置防火墙规则开放必要的端口sudo firewall-cmd --permanent --add-port22/tcp # SSH sudo firewall-cmd --reload开发环境的基础工具链同样不可或缺sudo dnf install -y vim gcc gcc-c make curl git1.2 开发环境依赖管理Fedora的DNF包管理器需要配置国内镜像源以加速软件安装。以下命令将系统源替换为阿里云镜像sudo sed -e s|^metalink|#metalink|g \ -e s|^#baseurlhttp://download.example/pub/fedora/linux|baseurlhttps://mirrors.aliyun.com/fedora|g \ -i.bak \ /etc/yum.repos.d/fedora.repo \ /etc/yum.repos.d/fedora-modular.repo \ /etc/yum.repos.d/fedora-updates.repo \ /etc/yum.repos.d/fedora-updates-modular.repo更新系统并安装基础开发库sudo dnf update -y sudo dnf groupinstall -y Development Tools2. 现代开发工具链配置2.1 Node.js生态安装与管理对于前端和全栈开发者Node.js是必不可少的运行时环境。推荐使用nvm进行多版本管理curl -o- https://raw.gitmirror.com/nvm-sh/nvm/v0.39.7/install.sh | bash source ~/.bashrc nvm install 18 # 安装LTS版本配置npm淘宝镜像加速依赖安装npm config set registry https://registry.npmmirror.com npm install -g yarn pnpm yarn config set registry https://registry.npmmirror.com2.2 Python环境配置Fedora 40默认已安装Python 3但需要单独配置pipsudo dnf install -y python3-pip pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/对于需要多Python版本的项目可使用pyenv进行管理curl https://pyenv.run | bash echo export PYENV_ROOT$HOME/.pyenv ~/.bashrc echo command -v pyenv /dev/null || export PATH$PYENV_ROOT/bin:$PATH ~/.bashrc echo eval $(pyenv init -) ~/.bashrc source ~/.bashrc pyenv install 3.11.4 # 安装特定Python版本3. 数据库服务部署与配置3.1 PostgreSQL关系型数据库PostgreSQL是功能强大的开源关系数据库Fedora 40官方源已包含最新版本sudo dnf install -y postgresql15-server postgresql15-contrib sudo postgresql-setup --initdb sudo systemctl enable --now postgresql关键安全配置修改编辑/var/lib/pgsql/data/postgresql.conf设置listen_addresses *修改/var/lib/pgsql/data/pg_hba.conf添加host all all 0.0.0.0/0 md5创建开发用数据库和用户CREATE USER devuser WITH PASSWORD securepassword; CREATE DATABASE devdb OWNER devuser; GRANT ALL PRIVILEGES ON DATABASE devdb TO devuser;3.2 Redis内存数据库Redis作为高性能键值存储是缓存和消息队列的常见选择sudo dnf install -y redis sudo systemctl enable --now redis配置远程访问需修改/etc/redis/redis.confbind 0.0.0.0 protected-mode no4. 网络服务与开发辅助工具4.1 Nginx反向代理配置Nginx是现代Web开发中不可或缺的反向代理和负载均衡工具sudo dnf install -y nginx sudo systemctl enable --now nginx基础站点配置示例/etc/nginx/conf.d/dev.confserver { listen 80; server_name dev.local; location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } location /api { proxy_pass http://localhost:8000; } }4.2 内网穿透解决方案对于需要外部访问的开发环境可使用Cloudflare Tunnel实现安全的内网穿透sudo rpm -ivh https://pkg.cloudflare.com/cloudflared-ascii.repo sudo dnf install -y cloudflared cloudflared tunnel login cloudflared tunnel create dev-tunnel配置隧道路由规则~/.cloudflared/config.ymltunnel: TUNNEL-ID credentials-file: /home/user/.cloudflared/TUNNEL-ID.json ingress: - hostname: dev.yourdomain.com service: http://localhost:3000 - service: http_status:4045. IDE与开发工具集成5.1 Visual Studio Code配置VS Code是当前最流行的跨平台开发工具Fedora可通过以下方式安装sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc sudo sh -c echo -e [code]\nnameVisual Studio Code\nbaseurlhttps://packages.microsoft.com/yumrepos/vscode\nenabled1\ngpgcheck1\ngpgkeyhttps://packages.microsoft.com/keys/microsoft.asc /etc/yum.repos.d/vscode.repo sudo dnf install -y code推荐安装的开发扩展ESLint- JavaScript代码质量检查Docker- 容器管理工具Remote - SSH- 远程开发支持Python- Python语言支持5.2 数据库管理工具对于数据库开发DBeaver是功能全面的开源解决方案wget https://dbeaver.io/files/dbeaver-ce-latest-stable.x86_64.rpm sudo rpm -ivh dbeaver-ce-latest-stable.x86_64.rpmRedis的可视化管理推荐使用RedisInsightwget https://redis.com/redis-enterprise-software/download-center/redis-insight/ sudo rpm -ivh redisinsight-*.rpm6. 容器化开发环境6.1 Docker引擎安装容器化已成为现代开发的标配Fedora 40安装Docker CE步骤如下sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo sudo dnf install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable --now docker配置用户组以避免sudosudo usermod -aG docker $USER newgrp docker6.2 Podman作为Docker替代Fedora默认集成的Podman是无需守护进程的容器方案sudo dnf install -y podman podman-docker常用命令与Docker兼容podman run -d -p 8080:80 nginx podman ps podman logs container-id7. 生产力工具集成7.1 文档处理方案WPS Office提供良好的Linux版办公套件wget https://wps-linux-license.wpscdn.cn/wps/download/ep/Linux2019/11691/wps-office-11.1.0.11691.XA-1.x86_64.rpm sudo rpm -ivh wps-office-*.rpm7.2 截图与设计工具Flameshot是功能强大的截图工具sudo dnf install -y flameshot设置快捷键Settings → Keyboard Shortcuts添加自定义快捷键flameshot gui→ 设置如CtrlAltA8. 系统监控与优化8.1 资源监控工具安装htop和glances实时监控系统资源sudo dnf install -y htop glances8.2 日志管理journalctl是systemd系统的日志管理利器journalctl -u nginx --since 1 hour ago # 查看Nginx最近1小时日志 journalctl -f # 实时跟踪系统日志对于集中式日志管理可安装LokiPromtailpodman run -d --name loki -p 3100:3100 grafana/loki podman run -d --name promtail --volume /var/log:/var/log grafana/promtail --client.urlhttp://localhost:3100/loki/api/v1/push9. 安全加固措施9.1 防火墙高级配置开发环境需要平衡便利性与安全性sudo firewall-cmd --permanent --new-zonedev sudo firewall-cmd --permanent --zonedev --add-port3000-3999/tcp sudo firewall-cmd --permanent --zonedev --add-port8000-8999/tcp sudo firewall-cmd --permanent --zonedev --add-source192.168.1.0/24 sudo firewall-cmd --reload9.2 SSH安全增强修改/etc/ssh/sshd_config提高SSH安全性PermitRootLogin no PasswordAuthentication no AllowUsers devuser ClientAliveInterval 30010. 自动化部署与CI/CD10.1 GitHub Actions自托管Runner在开发机设置GitHub Actions Runner实现自动化构建mkdir actions-runner cd actions-runner curl -o actions-runner-linux-x64-2.311.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.311.0/actions-runner-linux-x64-2.311.0.tar.gz tar xzf ./actions-runner-linux-x64-2.311.0.tar.gz ./config.sh --url https://github.com/your-repo --token YOUR_TOKEN ./run.sh10.2 本地CI解决方案使用Drone CI搭建轻量级CI系统docker run \ --volume/var/lib/drone:/data \ --envDRONE_GITHUB_CLIENT_IDyour-client-id \ --envDRONE_GITHUB_CLIENT_SECRETyour-client-secret \ --envDRONE_RPC_SECRETyour-rpc-secret \ --envDRONE_SERVER_HOSTyour-domain.com \ --envDRONE_SERVER_PROTOhttps \ --publish80:80 \ --publish443:443 \ --restartalways \ --detachtrue \ --namedrone \ drone/drone:211. 虚拟化与云原生开发11.1 Kubeadm单节点Kubernetes在开发机搭建单节点K8s集群sudo dnf install -y kubernetes-kubeadm kubectl kubelet sudo kubeadm init --pod-network-cidr10.244.0.0/16 mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml11.2 Minikube本地开发环境Minikube提供更轻量的K8s开发体验curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpm sudo rpm -ivh minikube-latest.x86_64.rpm minikube start --driverkvm2 minikube dashboard12. 性能调优实战12.1 系统级调优针对开发负载优化内核参数echo vm.swappiness 10 | sudo tee -a /etc/sysctl.conf echo vm.vfs_cache_pressure 50 | sudo tee -a /etc/sysctl.conf echo net.core.somaxconn 4096 | sudo tee -a /etc/sysctl.conf sudo sysctl -p12.2 开发工具性能优化配置VSCode内存限制~/.config/Code/User/settings.json{ typescript.tsserver.maxTsServerMemory: 4096, javascript.updateImportsOnFileMove.enabled: always, files.autoSave: afterDelay }Node.js应用启动参数优化NODE_OPTIONS--max-old-space-size4096 --heapsnapshot-signalSIGUSR2 npm start13. 跨平台开发支持13.1 Windows子系统配置通过Wine运行必要的Windows工具sudo dnf install -y wine winecfg # 初始化Wine环境13.2 Android开发环境安装Android Studio和命令行工具sudo dnf install -y zlib.i686 ncurses-libs.i686 bzip2-libs.i686 wget https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2023.1.1.24/android-studio-2023.1.1.24-linux.tar.gz tar -xvf android-studio-*.tar.gz ./android-studio/bin/studio.sh配置环境变量~/.bashrcexport ANDROID_HOME$HOME/Android/Sdk export PATH$PATH:$ANDROID_HOME/emulator export PATH$PATH:$ANDROID_HOME/platform-tools14. 备份与恢复策略14.1 系统快照管理利用LVM创建系统快照sudo lvcreate -L 10G -s -n fedora_snapshot /dev/mapper/fedora-root恢复快照步骤sudo umount /dev/mapper/fedora-root sudo lvconvert --merge /dev/mapper/fedora-fedora_snapshot sudo reboot14.2 开发环境容器化备份将开发环境打包为Docker镜像FROM fedora:40 RUN dnf install -y development-tools git nodejs python3-pip COPY . /app WORKDIR /app CMD [/bin/bash]构建并导出镜像podman build -t dev-env . podman save -o dev-env.tar dev-env15. 终端环境增强15.1 Zsh与Oh My Zsh配置替换默认bash为功能更强大的zshsudo dnf install -y zsh util-linux-user chsh -s $(which zsh) sh -c $(curl -fsSL https://raw.gitmirror.com/ohmyzsh/ohmyzsh/master/tools/install.sh)推荐插件配置~/.zshrcplugins( git zsh-autosuggestions zsh-syntax-highlighting docker kubectl )15.2 Tmux终端复用安装并配置终端复用工具sudo dnf install -y tmux echo set -g mouse on ~/.tmux.conf echo set -g history-limit 10000 ~/.tmux.conf常用快捷键Ctrlb c新建窗口Ctrlb %垂直分割Ctrlb 水平分割Ctrlb d分离会话16. 版本控制系统进阶16.1 Git高级配置优化Git配置提升开发效率git config --global alias.co checkout git config --global alias.br branch git config --global alias.ci commit git config --global alias.st status git config --global pull.rebase true git config --global credential.helper store16.2 大文件存储方案配置Git LFS管理二进制文件sudo dnf install -y git-lfs git lfs install在项目中跟踪大文件git lfs track *.psd git lfs track *.bin17. 文档与知识管理17.1 Markdown文档工具链安装现代Markdown编辑工具sudo dnf install -y typora实时预览服务器npm install -g markserv markserv --browser false --port 800017.2 本地Wiki系统使用Wiki.js搭建个人知识库podman run -d \ --name wiki \ -e DB_TYPEsqlite \ -e DB_FILEPATH/var/wiki/db.sqlite \ -v wiki_data:/var/wiki \ -p 3000:3000 \ ghcr.io/requarks/wiki:218. 测试环境搭建18.1 浏览器测试矩阵安装多版本浏览器用于兼容性测试sudo dnf install -y firefox flatpak install -y flathub org.mozilla.firefox flatpak install -y flathub com.google.Chrome18.2 API测试工具安装Insomnia REST客户端echo [insomnia] nameInsomnia Repository baseurlhttps://download.insomnia.rest gpgcheck1 gpgkeyhttps://download.insomnia.rest/signing-key.public enabled1 | sudo tee /etc/yum.repos.d/insomnia.repo sudo dnf install -y insomnia19. 音视频开发支持19.1 FFmpeg多媒体处理安装完整的多媒体工具链sudo dnf install -y ffmpeg ffmpeg-devel常用视频处理命令ffmpeg -i input.mp4 -vf scale1280:720 output.mp4 # 分辨率调整 ffmpeg -i video.mp4 -vn -acodec libmp3lame audio.mp3 # 提取音频19.2 屏幕录制工具安装OBS Studio进行屏幕录制sudo dnf install -y obs-studio20. 虚拟网络配置20.1 多机开发网络使用VirtualBox创建虚拟网络sudo dnf install -y virtualbox virtualbox-guest-additions vboxmanage natnetwork add --netname DevNet --network 192.168.100.0/24 --enable20.2 网络模拟工具安装netem进行网络条件模拟sudo dnf install -y iproute-tc模拟高延迟网络sudo tc qdisc add dev eth0 root netem delay 200ms恢复默认sudo tc qdisc del dev eth0 root

更多文章