加载中…
正文 字体大小:

Mac下Virtualbox端口转发到虚机的问题

(2015-10-22 21:44:31)
标签:

it

端口

宿主机

mac

virtualbox

分类: 工作中-系统

很久没有发博了,先自我检讨一番,不管是工作还是生活中,并非没有东西需要记录,也并非没有过要写的想法,只是每每想要动笔,却又懒于遣词描述。

废话不多说,其实是最近搞了个Macbook pro,想着彻彻底底的装一波,嗯,今天在Mac下搭开发环境,习惯还是跟当前在Windows下的做法一样,不在宿主机搭建环境,一来有洁癖,不喜在宿主机安装那么多东西,二来刚好Windows下的那个虚机什么东西都搞好了,拿来主义。

Mac下装好Virtualbox,把Windows下的vdi镜像直接拷过来,建好虚机,挂好数据空间,写好端口转发,如下:

        [Mac下一定要用Flash传图有没有,简直醉了,华丽的占位符]

问题来了,打开浏览器,访问http://127.0.0.1打不开,虚机里的Debian各项服务正常,telnet 本地80端口也不通,端口转发没生效,实际上是在Linux和Mac下小于1024的端口都是需要root权限才能监听的

 另一个方案是通过pf做“端口映射”,将来自80端口的请求都转发到一个1024以上的指定端口(比如8088),然后在Virtualbox中的端口转发设置本机的8088端口转发到虚机的80端口,如此一来,经过两次转发(127.0.0.1:80=>127.0.0.1:8088=>10.0.2.15:80),成功访问到虚机的nginx。


pf的配置方法如下:

1、创建一个/etc/pf.anchors/virtualbox的anchor文件,内容为

rdr pass on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8088


2、执行  sudo pfctl -vnf /etc/pf.anchors/virtualbox 测试一下anchor文件


3、将刚刚新建的anchor文件添加到主配置文件/etc/pf.conf里,如下


# com.apple anchor point

#

scrub-anchor "com.apple/*"

nat-anchor "com.apple/*"

rdr-anchor "com.apple/*"

rdr-anchor "virtualbox-forwarding"

dummynet-anchor "com.apple/*"

anchor "com.apple/*"

load anchor "com.apple" from "/etc/pf.anchors/com.apple"

load anchor "virtualbox-forwarding" from "/etc/pf.anchors/virtualbox"


加斜加下划线的两行是新加的,需要注意的是,pf.conf文件的内容块是需要按照顺序的,不能直接把新加的两行放到末尾,rdr-anchor行要跟在原有的rdr-anchor行后,load anchor同理。


4、运行 pfctl -ef /etc/pf.conf 打开pf


同时,也可以通过修改LaunchDaemons来在开机的时候自动打开pf,编辑/System/Library/LaunchDaemons/com.apple.pfctl.plist

 


问题解决

Reference: http://openwares.net/linux/mac_tomcat_port_80.html


0

阅读 评论 收藏 转载 喜欢 打印举报
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有