You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让VirtualBox中Ubuntu22.04的MySQL数据库全局可访问?

公网访问Ubuntu虚拟机LAMP服务的配置步骤

核心问题确认

是的,校外访问时你的Ubuntu虚拟机必须处于运行状态——Apache、MySQL等服务都运行在虚拟机内,虚拟机关机后所有服务都会停止,无法对外提供访问。


配置步骤

1. 允许MySQL远程连接

默认MySQL仅允许本地访问,需修改配置开放远程连接:

  • 登录MySQL控制台:
    sudo mysql -u root -p
    
  • 给你的授权用户开放远程访问权限(替换your_user和your_password为实际信息):
    GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%' IDENTIFIED BY 'your_password';
    FLUSH PRIVILEGES;
    

    安全建议:如果能确定校外访问的IP范围,把%换成具体IP段(比如学校的局域网IP段),降低被攻击的风险。

  • 修改MySQL绑定地址:
    编辑配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,找到bind-address = 127.0.0.1,改为bind-address = 0.0.0.0(或直接注释掉该行)。
  • 重启MySQL服务:
    sudo systemctl restart mysql
    

2. 配置Ubuntu防火墙

开放HTTP和MySQL端口的外部访问:

sudo ufw allow 80/tcp
sudo ufw allow 3306/tcp
sudo ufw reload

3. VirtualBox端口转发

把虚拟机的端口映射到物理机:

  • 打开VirtualBox,选中目标虚拟机 → 「设置」→「网络」
  • 选择「NAT」网卡,点击「端口转发」
  • 添加两条规则:
    • 名称:HTTP,主机端口8080(选一个未被占用的自定义端口),子系统端口80
    • 名称:MySQL,主机端口3307(选一个未被占用的自定义端口),子系统端口3306
  • 保存后重启虚拟机。

4. 家庭路由器端口映射

把物理机的端口映射到公网:

  • 登录路由器管理后台(通常为192.168.1.1或192.168.0.1)
  • 找到「端口映射」/「虚拟服务器」选项
  • 添加两条映射规则:
    • 外部端口8080 → 内部端口8080 → 物理机的局域网IP(可通过ip a在物理机查看)
    • 外部端口3307 → 内部端口3307 → 物理机的局域网IP
  • 保存配置。

5. 公网访问测试

  • 查询家庭公网IP:物理机浏览器搜索「我的公网IP」获取
  • 校外访问时:
    • PHP连接数据库的地址填写公网IP,端口用3307
    • 访问网页用http://[你的公网IP]:8080/[你的PHP文件].php

安全提示

  • 避免使用默认的80、3306端口,用自定义非标准端口降低被恶意扫描的风险
  • 定期更新系统和软件包:sudo apt update && sudo apt upgrade
  • 若公网IP是动态的,可使用DDNS服务绑定域名,无需每次更换IP访问
  • 不要暴露MySQL的root用户在公网,仅使用你创建的授权用户

内容的提问来源于stack exchange,提问作者Dawid Piechówka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 08:33:23