mac os 10.10以上的开启端口转发-解决mac默认不开启1024以下端口权限问题

原创
2015/12/17 13:15
阅读数 6.8W

mac os 10.10以上的开启端口转发-解决mac默认不开启102以上端口权限问题

本人 10.10.2的mac os,tomcat想要在80端口上启动,网上查了N多资料都不行,只有这个方案可行:


老版本的OS X使用的是ipfw设置端口转发,但新的版本特别是在我这个OSX Yosemite (10.10.3)中,已经无法使用ipfw,而是换成了PF。

PF配置端口转发的文章网上也有一大堆,但用下来没能解决问题,反而让我迷惑气愤,下面给出最为正确的配置:

首先在 /etc/pf.anchors/ 新建一个 com.pow 文件内容如下:
rdr pass on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
rdr pass on lo0 inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080

其中lo0为你ifconfig时查询到的网卡的名字  80是tomcat端口,8080为你想转发的端口

注意: 在段落末尾一定要加换行,否则会报syntax error错误。


然后使用 pfctl 命令检测配置文件

sudo pfctl -vnf /etc/pf.anchors/com.pow

添加到主配置文件


pf启动时会自动装载/etc/pf.conf文件,因此将anchor文件链接到/etc/pf.conf,转发规则就会自动建立了。

在rdr-anchor "com.apple/*"下面增加:

rdr-anchor "pow"

在:load anchor "com.apple" from "/etc/pf.anchors/com.apple"后添加:

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

最终修改后的pf.conf文件如内容如下

scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
rdr-anchor "pow"
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
load anchor "pow" from "/etc/pf.anchors/com.pow"


导入并运行PF命令(关键)

一定要注意导入并允许运行 pf的命令,一个是所有现在网上教程里写的下面这个:

sudo pfctl -f /etc/pf.conf

上面这个在OSX Yosemite (10.10)应该没问题,但在我的OSX Yosemite (10.10.3)里是没有用的,要换成下面这个才能成功:

sudo pfctl -evf /etc/pf.anchors/com.pow

设置pf开机自动打开

sudo pfctl -e

添加的为-e参数,即enable


如果你想要关闭pf  ,命令是 :

sudo pfctl -d


展开阅读全文
打赏
5
33 收藏
分享
加载中
还真是需要执行 “sudo pfctl -evf /etc/pf.anchors/com.pow” 多谢楼主提示。
2019/05/06 11:08
回复
举报
如何验证端口转发成功呢?
2018/04/21 15:52
回复
举报
非常好,对我很有帮助.公司网站接入了一个系统,要求必须80端口加域名访问....Tomcat 改了80怎么都启动不起来.用了你这种办法转发到8080就可以了.非常好.
2017/05/19 13:20
回复
举报
明舞博主

引用来自“明舞”的评论

引用来自“灵魂架构师”的评论

把你的tomcat用80启动就可以了

你试试,不行的哦,mac系统非root用户禁用1024以下的端口的。直接拒绝监听

引用来自“灵魂架构师”的评论

我都是用root启动nginx,用root启动就好了,不用整转发,麻烦
你得做法也算一种,目前看到的解决方案就这两种,从windows转到mac有点操蛋呢
2015/12/17 19:24
回复
举报

引用来自“明舞”的评论

引用来自“灵魂架构师”的评论

把你的tomcat用80启动就可以了

你试试,不行的哦,mac系统非root用户禁用1024以下的端口的。直接拒绝监听
我都是用root启动nginx,用root启动就好了,不用整转发,麻烦
2015/12/17 19:21
回复
举报
明舞博主

引用来自“灵魂架构师”的评论

把你的tomcat用80启动就可以了

你试试,不行的哦,mac系统非root用户禁用1024以下的端口的。直接拒绝监听
2015/12/17 19:19
回复
举报
把你的tomcat用80启动就可以了
2015/12/17 19:17
回复
举报
更多评论
打赏
7 评论
33 收藏
5
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部