文档章节

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

明舞
 明舞
发布于 2015/12/17 13:15
字数 569
阅读 17109
收藏 33

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


© 著作权归作者所有

明舞
粉丝 229
博文 424
码字总数 516555
作品 0
程序员
私信 提问
加载中

评论(7)

WalleChen
WalleChen
还真是需要执行 “sudo pfctl -evf /etc/pf.anchors/com.pow” 多谢楼主提示。
咕噜咕噜步步
咕噜咕噜步步
如何验证端口转发成功呢?
卡布达灰太狼
非常好,对我很有帮助.公司网站接入了一个系统,要求必须80端口加域名访问....Tomcat 改了80怎么都启动不起来.用了你这种办法转发到8080就可以了.非常好.
明舞
明舞 博主

引用来自“明舞”的评论

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

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

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

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

我都是用root启动nginx,用root启动就好了,不用整转发,麻烦
你得做法也算一种,目前看到的解决方案就这两种,从windows转到mac有点操蛋呢
灵魂架构师
灵魂架构师

引用来自“明舞”的评论

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

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

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

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

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

你试试,不行的哦,mac系统非root用户禁用1024以下的端口的。直接拒绝监听
灵魂架构师
灵魂架构师
把你的tomcat用80启动就可以了
微信公众平台开发系列之必备知识

一、微信公众号开发需要准备的一些资料以及如何搭建一个测试服务器 微信公众号开发之前,首先要有一个公众号,不同类型的公众号具备不同的接口权限。 可以看到,如果想使用微信的很多高级接口...

充电实践
2018/07/07
0
0
Mac安装vagrant

mac 安装vagrant 1)首先安装VirtualBox,傻瓜式安装方法 2)安装vagrant,同上 3)添加.box文件 4)创建开发目录 cd ~/Desktop ,mkdir vagrant,cd vagrant 5)初始化开发环境vagrant init (第3步骤...

eatnothing
2016/10/12
44
0
802.1X、MAC认证方式

接入认证:802.1X、Portal认证、MAC地址认证结合端口安全 802.1X是为了解决无线局域网安全问题提出来的,后来被以太网广泛应用 、2004年完成标准化 802.1X协议是一种基于端口的网络接入控制协...

余二五
2017/11/15
0
0
H3C交换机常用配置命令

一.用户配置: system-view [H3C]super password H3C 设置用户分级密码 [H3C]undo super password 删除用户分级密码 [H3C]localuser bigheap 123456 1 Web网管用户设置,1(缺省)为管理级用户...

BoMister
2014/05/04
0
0
定时任务管理系统 - gocron

gocron - 定时任务管理系统 项目简介 使用Go语言开发的轻量级定时任务集中调度和管理系统, 用于替代Linux-crontab 查看文档 原有的延时任务拆分为独立项目延迟队列 功能特性 Web界面管理定时...

匿名
04/29
5K
8

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
623
10
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
32
0
spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
今天
19
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
56
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
60
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部