使用VirtualBox进行端口转发 连接数据库
转自 http://blog.sina.com.cn/s/blog_484d87770102uxi6.html
使用VirtualBox很久了,很多用法都没有深钻,真的是不虚心学习啊。
由于默认的方式是用NAT来做虚拟机网络的,因此如果从外网想访问虚拟机的应用会比较麻烦。以前一直用桥接的方式,但IP有限,自己指定的IP可能会和局域网的IP冲突,而用DHCP方式获取的IP又可能会发生变化导致不确定,怎么办?网上查了一下,简单有效的解决方法就是用VirtualBox的“端口映射”功能。
下面结合实例来讲讲怎么操做:
应用场景:要将虚拟机的Web 80端口从外面能访问到。
1. 首先要知道虚拟机网卡的“大”IP,惦记网卡查看网络共享中心。
看VirtualBox Host-Only Network的属性,看到了吧分配给它的IP是 192.168.56.1,记住这个地址。
打开CMD窗口ping 192.168.56.1看到可以ping通
2.配置端口转发,打开虚拟机,选中需要访问的虚拟机,点“设置”-“网络”
点“端口转发”,添加Web80项目如图所示,看到没有主机IP填写的是192.168.56.1,子系统IP需要在虚拟机的系统中通过命令查看如Linux中使用ifconfig查看获知。
需要说明的是主机端口可以和子系统端口不一致,比如以上图的Mysql为例,如果把主机的端口配置为6033的话,那么从外网访问虚拟机的MySQL数据库地址就是192.168.56.1 ,端口就是6033,虚拟机会自动转发给子系统中的3306端口(MySQL的默认端口),这样做有利于保护子系统的应用端口不直接暴露给外面。
再说一点题外话,连MySQL时,虽然创建的mysql账号是允许外部连接的,但还是连不上,这时候进入/etc/mysql/my.cnf文件进行编辑。注释掉 # bind-address = 127.0.0.1
然后重新启动mysql,这样就可以从外部连接上了。
另外补充一下,192.168.这个网段没有起作用,需要查看虚拟机的网卡2是否设置为如下图所示的"仅主机(Host-Only)适配器"模式。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库