ButterflyVenus 2015-04-02
ipfw是BSD系统中重要的防火墙和通信控制工具,在MacOSX中也很好用.
因为macosx里1024里的端口都是root权限的所以我们启动tomcat的时候需要用root用户但是我们又不想root下有太多用户数据所以设置下端口转发就可以了用ipfw命令
1.先列出当前有那些设置
sudoipfwlist
2.删除不需要的
sudoipfwdel200
3.增加一条转发
sudoipfwaddfwd127.0.0.1,8080tcpfromanyto127.0.0.180in
然后设置tomcat8080启动用普通用户启动应用浏览器访问80端口都会转发到8080端口执行和访问8080一样
=========升级到MacYosemiteipfw已经弃用需要按下列配置===
http://www.danchex.com/?p=67
http://rabbit52.com/2014/desktopos/mac/yosemite-port-forwarding-at-startup
===
方案二:更新到10.10之后之前使用ipfw命令被彻底移除了,以下是例外一个方案(虚拟机设置的端口转发案例,并开机自动加载)。
下面的命令都是在root用户下执行,推荐执行sudo-i之后完成下面的操作
创建文件/etc/pf.anchors/vbox,添加如下1行,将本地80端口转发到8080端口
rdrpassonlo0inetprototcpfromanytoanyport80->127.0.0.1port8080
以上粗体部分需要注意,OSX默认有个本地网络端口名字叫lo0如果你想通过局域网甚至外网访问80,端口则还需要按照这个格式添加接入网络的端口。
再编辑/etc/pf.conf文件,在如下位置添加新的两行
scrub-anchor"com.apple/*"
nat-anchor"com.apple/*"
rdr-anchor"com.apple/*"
rdr-anchor"vbox"//新加行
dummynet-anchor"com.apple/*"
anchor"com.apple/*"
loadanchor"com.apple"from"/etc/pf.anchors/com.apple"
loadanchor"vbox"from"/etc/pf.anchors/vbox"//新加行
现在可以使用命令
pfctl-ef/etc/pf.conf
测试端口转发是否生效
为了实现开机自启动,需要编辑文件/System/Library/LaunchDaemons/com.apple.pfctl.plist
找到如下位置,添加一行新加行所示,之后重启即可自动设置端口转发
<string>pfctl</string>
<string>-e</string>//新加行
<string>-f</string>
<string>/etc/pf.conf</string>